PFND3D11_1DDI_CLEARVIEW función de devolución de llamada (d3d10umddi.h)

PFND3D11_1DDI_CLEARVIEW establece todos los elementos de una vista de recursos en un valor. Una vista de recursos es un descriptor de superficie que indica un formato y posiblemente un subconjunto del recurso.

Sintaxis

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

Identificador del dispositivo de visualización (contexto de gráficos).

viewType

Valor de tipo D3D11DDI_HANDLETYPE que identifica el tipo de identificador de vista que admite esta operación clara. Los tipos posibles son los siguientes.

  • D3D10DDI_HT_RENDERTARGETVIEW
  • D3D11DDI_HT_UNORDEREDACCESSVIEW
  • Cualquier tipo D3D11_1DDI_HT_VIDEOXXX

hView

Puntero a la vista de recursos que se va a borrar.

Color[4]

pRect

Matriz de estructuras RECT para los rectángulos de la vista de recursos que se van a borrar. Si es NULL, ClearView borra toda la superficie.

NumRects

Número de rectángulos de la matriz que especifica el parámetro pRect .

Valor devuelto

None

Observaciones

ClearView solo funciona en vistas de destino de representación (RTV), vistas de acceso desordenado (UAV) o cualquier vista de vídeo de una superficie Texture2D . Los rectángulos vacíos de la matriz pRect son sin operación. Un rectángulo está vacío si el valor superior es igual al valor inferior o el valor izquierdo es igual al valor derecho.

ClearView no admite texturas 3D.

ClearView aplica el mismo valor de color a todos los segmentos de matriz de una vista; todos los rectángulos de la matriz pRect corresponden a cada segmento de matriz. La matriz pRect de rectángulos es un conjunto de áreas que se borrarán en una sola superficie. Si la vista es una matriz, ClearView borra todos los rectángulos de cada segmento de matriz individualmente.

Cuando el controlador en modo de usuario aplica rectángulos a los búferes, debe establecer el valor superior en 0 y el valor inferior en 1 y establecer el valor izquierdo y el valor derecho para describir la extensión dentro del búfer. Cuando el valor superior es igual al valor inferior o el valor izquierdo es igual al valor derecho, el rectángulo está vacío y se logra una operación sin operación.

El controlador debe convertir y restringir los valores de color al formato de destino según corresponda según las reglas de conversión de Direct3D. Por ejemplo, si el formato de la vista es DXGI_FORMAT_R8G8B8A8_UNORM, comprima las entradas a 0,0f a 1,0f (+INF -> 1,0f (0XFF)/NaN -> 0,0f).

Si el formato es entero, como DXGI_FORMAT_R8G8B8A8_UINT, tome entradas como valores flotantes enteros. Por lo tanto, 235.0f se asigna a 235 (redondea a cero, fuera de la fijación de valores de intervalo/INF al intervalo de destino y NaN a cero).

Estas son las asignaciones de colores:

  • Color[0]: R (o Y para vídeo)
  • Color[1]: G (o U/Cb para vídeo)
  • Color[2]: B (o V/Cr para vídeo)
  • Color[3]: A

En el caso de las vistas de vídeo con formatos YUV o YCbBr, ClearView no convierte los valores de color. En situaciones en las que el nombre de formato no indica _UNORM, _UINT, etc., ClearView asume _UINT. Por lo tanto, 235.0f se asigna a 235 (redondea a cero, fuera de la fijación de valores de intervalo/INF al intervalo de destino y NaN a cero).

Para las vistas de Microsoft Direct3D de las superficies de vídeo RTV o UAV submuestreos, tenga en cuenta que las dimensiones de la vista se basan en cuántos píxeles están en el formato de vista en lugar del número lógico subyacente de píxeles de vídeo. Por ejemplo, supongamos que la superficie tiene formato YUY2 con dimensión 1920 en 1080 píxeles y un RTV usa el formato DXGI_FORMAT_R8G8B8A8_UINT. La vista aparece en Direct3D como si tuviera 1920/2 = 960 R8G8B8A8 píxeles en la dirección horizontal. Por lo tanto, los rectángulos pasados a ClearView se interpretan en este espacio. Además, el valor claro se toma para los 4 componentes, R8G8B8A8, como si no fuera diferente de un verdadero R8G8B8A8 superficie. En este caso, R, G, B y A no significan valores de color RGBA estándar; en su lugar, identifican una ubicación en la memoria y el autor de la llamada es responsable de comprender lo que significa colocar datos en esa ubicación en el contexto de una superficie de vídeo.

Sin embargo, las vistas de vídeo de una superficie de vídeo (como las vistas proporcionadas a la función CreateVideoDecoderOutputView y otras funciones XxxInputView y XxxOutputView ) aparecen en las dimensiones lógicas completas. En este caso, la dimensión horizontal es de 1920 píxeles de ancho, por lo que las estructuras RECT pasadas a ClearView respetan eso. Estos RECTdeben alinearse para que no se muestren bloques submuestreos; de lo contrario, el tiempo de ejecución quitará la llamada a esta función. En el caso de las vistas de vídeo, los colores YUV deben replicarse correctamente para formatos submuestreos. Por ejemplo, YUV en la llamada a ClearView tiene el valor Y duplicado para cada bloque en una superficie YUY2.

La estructura D3D10_DDI_RECT se define como una estructura RECT .

typedef RECT D3D10_DDI_RECT;

Requisitos

Requisito Value
Cliente mínimo compatible Windows 8
Servidor mínimo compatible Windows Server 2012
Plataforma de destino Escritorio
Encabezado d3d10umddi.h (incluya D3d10umddi.h)

Consulte también

CreateVideoDecoderOutputView

D3D11DDI_HANDLETYPE

RECT