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

La función SetViewports establece ventanillas.

Sintaxis

PFND3D10DDI_SETVIEWPORTS Pfnd3d10ddiSetviewports;

void Pfnd3d10ddiSetviewports(
       D3D10DDI_HDEVICE unnamedParam1,
  [in] UINT NumViewports,
  [in] UINT ClearViewports,
       const D3D10_DDI_VIEWPORT *unnamedParam4
)
{...}

Parámetros

unnamedParam1

hDevice [in]

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

[in] NumViewports

Número total de ventanillas que especifica el parámetro pViewports .

[in] ClearViewports

Número de ventanillas después del número de ventanillas que NumViewports especifica que se va a establecer en NULL. Este número representa la diferencia entre el número anterior de ventanillas (es decir, cuando el tiempo de ejecución de Microsoft Direct3D anteriormente denominado SetViewports) y el nuevo número de ventanillas.

Tenga en cuenta que el número que especifica ClearViewports es solo una ayuda de optimización porque el controlador de pantalla en modo de usuario podría calcular este número.

unnamedParam4

pViewports [in]

Matriz de estructuras de D3D10_DDI_VIEWPORT para las ventanillas que se van a establecer.

Valor devuelto

None

Observaciones

El controlador puede usar la función de devolución de llamada pfnSetErrorCb para establecer un código de error.

Las ventanillas especifican el clip posterior de transformación al destino de representación de salida y a los recursos de galería de símbolos de profundidad. Las ventanillas que no están definidas en una llamada a SetViewports se establecen en NULL. Una ventanilla NULL se define de la siguiente manera.

struct D3D10_DDI_VIEWPORT {
  FLOAT  TopLeftX = NaN;
  FLOAT  TopLeftY = NaN;
  FLOAT  Width = NaN;
  FLOAT  Height = NaN;
  FLOAT  MinDepth = NaN;
  FLOAT  MaxDepth = NaN;
} D3D10_DDI_VIEWPORT;</pre>

Esta definición implica que la ventanilla está desactivada.

El controlador de pantalla en modo de usuario debe establecer todas las ventanillas de forma atómica como una operación.

Aunque el parámetro NumViewports especifica el número de ventanillas de la matriz que especifica el parámetro pViewports , algunos valores de la matriz pueden ser NULL.

El intervalo de ventanillas entre el número que especifica NumViewports y el número máximo de ventanillas permitidas es necesario que contengan todos los valores NULL o sin enlazar. El número que especifica el parámetro ClearViewports informa al controlador sobre cuántas ventanillas debe borrar el controlador para la operación atómica actual.

Si la llamada anterior a SetViewports pasó un valor de 2 en el parámetro NumViewports y la llamada actual a SetViewports pasa un valor de 4 en NumViewports, la llamada actual a SetViewports también pasa un valor de 0 en el parámetro ClearViewports . Si la siguiente llamada sucesiva a SetViewports pasa un valor de 1 en NumViewports, la llamada sucesiva también pasa un valor de 3 (4 - 1) en ClearViewports.

Cuando se solicita el valor de las ventanillas claras durante las operaciones de consulta en modo de usuario, el valor es la diferencia entre el número máximo de ventanillas y el valor de las ventanillas.

SetViewports garantiza que las ventanillas sean válidas. Es decir, SetViewports garantiza que las dimensiones de las ventanillas estén dentro del intervalo (D3D10_VIEWPORT_BOUNDS_MIN, D3D10_VIEWPORT_BOUNDS_MAX, D3D10_MIN_DEPTH y D3D10_MAX_DEPTH). SetViewports también garantiza que ninguna coordenada sea NaN y vacía los valores flotantes desnormalizados en cero.

El controlador no debe encontrar ningún error, excepto por D3DDDIERR_DEVICEREMOVED. Por lo tanto, si el controlador pasa algún error, excepto por D3DDDIERR_DEVICEREMOVED, en una llamada a la función pfnSetErrorCb , el tiempo de ejecución de Microsoft Direct3D determinará que el error es crítico. Incluso si se quitó el dispositivo, no es necesario que el controlador devuelva D3DDDIERR_DEVICEREMOVED; Sin embargo, si la eliminación del dispositivo interfirió con el funcionamiento de SetViewports (que normalmente no debería ocurrir), el controlador puede devolver D3DDDIERR_DEVICEREMOVED.

Requisitos

Requisito Value
Cliente mínimo compatible Disponible en Windows Vista y versiones posteriores de los sistemas operativos Windows.
Plataforma de destino Escritorio
Encabezado d3d10umddi.h (incluya D3d10umddi.h)

Consulte también

D3D10DDI_DEVICEFUNCS

D3D10_DDI_VIEWPORT

pfnSetErrorCb