función de devolución de llamada PFND3D11_1DDI_CLEARVIEW (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 de 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
Ninguno
Observaciones
ClearView solo funciona en vistas de destino de representación (RTV), vistas de acceso sin ordenar (UAV) o cualquier vista de vídeo de una superficie de Texture2D. Los rectángulos vacíos de la matriz de pRect son un no-op. 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. El pRect matriz de rectángulos es un conjunto de áreas que se van a borrar 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 un no-op.
El controlador debe convertir y fijar 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, las entradas de abrazadera 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 floats enteros. Por lo tanto, 235.0f se asigna a 235 (redondea a cero, fuera de la abrazadera de valores range/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 supone _UINT. Por lo tanto, 235.0f se asigna a 235 (redondea a cero, fuera de la abrazadera de valores range/INF al intervalo de destino y NaN a cero).
Para las vistas de Microsoft Direct3D de las superficies de vídeo RTV o UAV submuestadas, 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 parece que Direct3D tiene 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 una superficie de R8G8B8A8 verdadera. 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 las funciones CreateVideoDecoderOutputView y otras 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 rect estructuras pasadas a ClearView respetarlo. Estos RECTs deben alinearse para que no se alineen los 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 adecuadamente 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 | Valor |
---|---|
cliente mínimo admitido | Windows 8 |
servidor mínimo admitido | Windows Server 2012 |
de la plataforma de destino de | Escritorio |
encabezado de | d3d10umddi.h (incluya D3d10umddi.h) |