Função DrvStrokePath (winddi.h)
A função DrvStrokePath traça (contornos) um caminho.
Sintaxe
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
Ponteiro para uma estrutura SURFOBJ que identifica a superfície na qual desenhar.
[in] ppo
Ponteiro para uma estrutura PATHOBJ . As rotinas de serviço GDI PATHOBJ_Xxx são fornecidas para enumerar as linhas, as curvas de Bezier e outros dados que compõem o caminho. Isso indica o que deve ser desenhado.
[in] pco
Ponteiro para uma estrutura CLIPOBJ . As rotinas de serviço GDI CLIPOBJ_Xxx são fornecidas para enumerar a região de clipe como um conjunto de retângulos. Opcionalmente, todas as linhas no caminho podem ser enumeradas previamente em uma estrutura CLIPOBJ. Isso significa que os drivers podem fazer com que o GDI execute todos os cálculos de recorte de linha.
[in, optional] pxo
Ponteiro para uma estrutura XFORMOBJ . Isso é necessário somente quando uma linha larga geométrica deve ser desenhada. Ele especifica a transformação que mapeia as coordenadas do mundo para as coordenadas do dispositivo. Isso é necessário porque o caminho é fornecido nas coordenadas do dispositivo, mas uma linha de largura geométrica é realmente ampliada em coordenadas mundiais.
A estrutura XFORMOBJ pode ser consultada para localizar a transformação.
[in] pbo
Ponteiro para uma estrutura BRUSHOBJ que especifica o pincel a ser usado ao desenhar o caminho.
[in] pptlBrushOrg
Ponteiro para uma estrutura POINTL que especifica a origem do pincel usada para alinhar o padrão de pincel no dispositivo.
[in] plineattrs
Ponteiro para uma estrutura LINEATTRS . Observe que o membro elStyleState dessa estrutura deve ser atualizado como parte dessa função se a linha for estilizada. Observe também que o membro ptlLastPel deve ser atualizado se uma linha cosmética de largura de pixel única estiver sendo desenhada.
[in] mix
O modo de combinação que define as operações de raster em primeiro plano e plano de fundo a serem usadas para o pincel. Para obter mais informações sobre o modo de combinação, consulte Comentários.
Retornar valor
O valor retornado será TRUE se o driver for capaz de traçar o caminho. Se o GDI deve, em vez disso, traçar o caminho, o valor retornado será FALSE, mas nenhum código de erro será registrado. Se o driver encontrar um erro, o valor retornado será DDI_ERROR e um código de erro será relatado.
Comentários
Se o driver tiver fisgado a função e se o GCAPS apropriado estiver definido, a GDI chamará DrvStrokePath quando a GDI desenhar uma linha ou curva com qualquer conjunto de atributos.
Se um driver der suporte a esse ponto de entrada, ele também deverá dar suporte ao desenho de linhas largas cosméticas com recorte arbitrário. Usando as funções GDI fornecidas, a chamada pode ser dividida em um conjunto de linhas de largura de pixel único com recorte pré-compilado.
Essa função será necessária se algum desenho for feito em uma superfície gerenciada pelo dispositivo.
Os drivers para dispositivos avançados podem, opcionalmente, receber essa chamada para desenhar caminhos que contêm curvas de Bézier e linhas de largura geométricas. O GDI testará os sinalizadores GCAPS_BEZIERS e GCAPS_GEOMETRICWIDE do membro flGraphicsCaps da estrutura DEVINFO para decidir se ela deve chamar essa função. (As quatro combinações dos bits determinam os quatro níveis de funcionalidade dessa chamada.) Se o driver receber uma chamada avançada contendo curvas bezier ou linhas largas geométricas, ele poderá decidir não manipular a chamada, retornando FALSE. Isso pode acontecer se o caminho ou o recorte for muito complexo para o dispositivo processar. Se a chamada retornar FALSE, o GDI dividirá a chamada em chamadas mais simples que podem ser tratadas com mais facilidade.
Para superfícies gerenciadas por dispositivos, a função deve dar suporte mínimo a linhas cosméticas sólidas e estilizadas de pixel único usando um pincel de cor sólida.
O modo de combinação define como o padrão de entrada deve ser misturado com os dados que já estão na superfície do dispositivo. O tipo de dados MIX consiste em dois valores roP2 (operação de raster binário) empacotados em um único ULONG. O byte de ordem mais baixa define a operação de raster em primeiro plano; o próximo byte define a operação de raster em segundo plano. Para obter mais informações sobre códigos de operação de raster, consulte a documentação do SDK do Microsoft Windows.
Requisitos
Requisito | Valor |
---|---|
Plataforma de Destino | Área de Trabalho |
Cabeçalho | winddi.h (inclua Winddi.h) |