Compartir a través de


PFND3DDDI_CLEAR función de devolución de llamada (d3dumddi.h)

La función Clear realiza la desactivación asistida por hardware en el destino de representación, el búfer de profundidad o el búfer de galería de símbolos.

Sintaxis

PFND3DDDI_CLEAR Pfnd3dddiClear;

HRESULT Pfnd3dddiClear(
  [in] HANDLE hDevice,
       const D3DDDIARG_CLEAR *unnamedParam2,
       UINT unnamedParam3,
       const RECT *unnamedParam4
)
{...}

Parámetros

[in] hDevice

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

unnamedParam2

pData [in]

Puntero a una estructura de D3DDDIARG_CLEAR que describe los parámetros de la operación de borrado asistido por hardware.

unnamedParam3

NumRect [in]

Número de rectángulos de la matriz en pRect que se va a borrar. Si el número de rectángulos se establece en cero, Clear debe borrar todo el destino de representación, el búfer de profundidad y el búfer de galería de símbolos. En esta situación, el contenido de la matriz en pRect no está definido y el controlador no debe intentar leerlos.

unnamedParam4

pRect [in]

Matriz de estructuras RECT que indican las áreas rectangulares del búfer que el controlador debe borrar.

Valor devuelto

Clear devuelve S_OK o un resultado de error adecuado si la operación de borrado asistida por hardware no se realiza correctamente.

Comentarios

La forma en que el controlador realiza la operación clara depende del número de áreas rectangulares especificadas en el parámetro NumRect y de los valores establecidos en el miembro Flags de D3DDDIARG_CLEAR. Los valores de D3DCLEAR_TARGET, D3DCLEAR_STENCIL y D3DCLEAR_ZBUFFER (definidos en D3d8types.h) indican el tipo de búfer que se va a borrar. El valor D3DCLEAR_COMPUTERECTS (definido en D3dhal.h) indica cómo borrar el búfer. La siguiente configuración indica cómo el controlador debe borrar el tipo de búfer especificado:

  • Si NumRect se establece en 0 (NumRect== 0) y D3DCLEAR_COMPUTERECTS no se establece en Flags, el controlador borra 0 píxeles (es decir, una operación sin operación).
  • Si NumRect se establece en 0 y D3DCLEAR_COMPUTERECTS se establece en Flags, el controlador borra toda la ventanilla (no toda la superficie).
  • Si NumRect se establece en un valor mayor que 0 (NumRect!= 0) y D3DCLEAR_COMPUTERECTS se establece en Flags, el controlador recorta las áreas rectangulares que pRect especifica en la ventanilla actual.
Las pruebas de scissor también afectan a la forma en que el controlador realiza la operación clara. Una aplicación establece el estado de representación D3DRS_SCISSORTESTENABLE en una llamada al método IDirect3DDevice9::SetRenderState para habilitar las pruebas de tijeras. Para obtener más información sobre las pruebas de tijeras, consulte Scissor Test. Si se establece el estado de representación D3DRS_SCISSORTESTENABLE y se establece la marca D3DCLEAR_COMPUTERECTS, el controlador debe recortar las áreas rectangulares que pRect especifica en el área rectangular del tijera.

Si NumRect se establece en un valor mayor que 0 (NumRect> 0) y D3DCLEAR_COMPUTERECTS se establece en Flags, el controlador recorta las áreas rectangulares especificadas en la ventanilla actual y en el rectángulo scissor si una aplicación estableció previamente D3DRS_SCISSORTESTENABLE. Si no se establece NumRect> 0 y D3DCLEAR_COMPUTERECTS, el controlador determina que el tiempo de ejecución de Direct3D ya ha recortado las áreas rectangulares especificadas en la ventanilla actual y en el rectángulo scissor si una aplicación estableció previamente D3DRS_SCISSORTESTENABLE.

Requisitos

Requisito Value
Plataforma de destino Escritorio
Encabezado d3dumddi.h (incluya D3dumddi.h)

Consulte también

D3DDDIARG_CLEAR

D3DDDI_DEVICEFUNCS

RECT