Compartir a través de


Función DrvStrokePath (winddi.h)

La función DrvStrokePath traza (esquemas) una ruta de acceso.

Sintaxis

BOOL DrvStrokePath(
  [in, out]      SURFOBJ   *pso,
  [in]           PATHOBJ   *ppo,
  [in]           CLIPOBJ   *pco,
  [in, optional] XFORMOBJ  *pxo,
  [in]           BRUSHOBJ  *pbo,
  [in]           POINTL    *pptlBrushOrg,
  [in]           LINEATTRS *plineattrs,
  [in]           MIX       mix
);

Parámetros

[in, out] pso

Puntero a una estructura SURFOBJ que identifica la superficie en la que se va a dibujar.

[in] ppo

Puntero a una estructura PATHOBJ . Las rutinas de servicio GDI PATHOBJ_Xxx se proporcionan para enumerar las líneas, las curvas Bezier y otros datos que componen la ruta de acceso. Esto indica lo que se va a dibujar.

[in] pco

Puntero a una estructura CLIPOBJ . Las rutinas de servicio CLIPOBJ_Xxx de GDI se proporcionan para enumerar la región del clip como un conjunto de rectángulos. Opcionalmente, todas las líneas de la ruta de acceso se pueden enumerar previamente en una estructura CLIPOBJ. Esto significa que los controladores pueden hacer que GDI realice todos los cálculos de recorte de línea.

[in, optional] pxo

Puntero a una estructura XFORMOBJ . Esto solo es necesario cuando se va a dibujar una línea ancha geométrica. Especifica la transformación que asigna las coordenadas del mundo a las coordenadas del dispositivo. Esto es necesario porque la ruta de acceso se proporciona en coordenadas del dispositivo, pero una línea ancha geométrica se amplía realmente en coordenadas del mundo.

Se puede consultar la estructura XFORMOBJ para encontrar la transformación.

[in] pbo

Puntero a una estructura BRUSHOBJ que especifica el pincel que se va a usar al dibujar la ruta de acceso.

[in] pptlBrushOrg

Puntero a una estructura POINTL que especifica el origen del pincel usado para alinear el patrón de pincel en el dispositivo.

[in] plineattrs

Puntero a una estructura LINEATTRS . Tenga en cuenta que el miembro elStyleState de esta estructura debe actualizarse como parte de esta función si se aplica estilo a la línea. Tenga en cuenta también que el miembro ptlLastPel debe actualizarse si se dibuja una línea cosmética de ancho de píxel único.

[in] mix

Modo de combinación que define las operaciones de trama en primer plano y en segundo plano que se van a usar para el pincel. Para obtener más información sobre el modo de combinación, vea Comentarios.

Valor devuelto

El valor devuelto es TRUE si el controlador puede trazar la ruta de acceso. Si GDI en su lugar debe trazar la ruta de acceso, el valor devuelto es FALSE, pero no se registra ningún código de error. Si el controlador encuentra un error, se DDI_ERROR el valor devuelto y se notifica un código de error.

Comentarios

Si el controlador ha conectado la función y, si se establece el GCAPS adecuado, GDI llama a DrvStrokePath cuando GDI dibuja una línea o curva con cualquier conjunto de atributos.

Si un controlador admite este punto de entrada, también debe admitir el dibujo de líneas anchas cosméticas con recorte arbitrario. Con las funciones GDI proporcionadas, la llamada se puede dividir en un conjunto de líneas de ancho de un solo píxel con recorte precalentado.

Esta función es necesaria si se va a realizar algún dibujo en una superficie administrada por el dispositivo.

Opcionalmente, los controladores para dispositivos avanzados pueden recibir esta llamada para dibujar trazados que contengan curvas Bezier y líneas anchas geométricas. GDI probará las marcas de GCAPS_BEZIERS y GCAPS_GEOMETRICWIDE del miembro flGraphicsCaps de la estructura DEVINFO para decidir si debe llamar a esta función. (Las cuatro combinaciones de los bits determinan los cuatro niveles de funcionalidad de esta llamada). Si el controlador obtiene una llamada avanzada que contiene curvas Bezier o líneas anchas geométricas, puede decidir no controlar la llamada y devolver FALSE. Esto puede ocurrir si la ruta de acceso o el recorte es demasiado complejo para que el dispositivo se procese. Si la llamada devuelve FALSE, GDI divide la llamada en llamadas más sencillas que se pueden controlar más fácilmente.

En el caso de las superficies administradas por dispositivos, la función debe admitir mínimamente líneas cosméticas sólidas de un solo píxel y estilo mediante un pincel de color sólido.

El modo de combinación define cómo se debe mezclar el patrón entrante con los datos que ya están en la superficie del dispositivo. El tipo de datos MIX consta de dos valores de operación de ráster binario (ROP2) empaquetados en un único ULONG. El byte de orden más bajo define la operación de trama en primer plano; el byte siguiente define la operación de trama en segundo plano. Para obtener más información sobre los códigos de operación de trama, consulte la documentación de Microsoft Windows SDK.

Requisitos

Requisito Value
Plataforma de destino Escritorio
Encabezado winddi.h (incluya Winddi.h)

Consulte también

CLIPOBJ

DEVINFO

DrvFillPath

LINEATTRS

PATHOBJ

XFORMOBJ