다음을 통해 공유


DrvStrokePath 함수(winddi.h)

DrvStrokePath 함수는 경로를 스트로크(윤곽선)합니다.

구문

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
);

매개 변수

[in, out] pso

그릴 표면을 식별하는 SURFOBJ 구조체에 대한 포인터입니다.

[in] ppo

PATHOBJ 구조체에 대한 포인터입니다. GDI PATHOBJ_Xxx 서비스 루틴은 경로를 구성하는 선, 베지어 곡선 및 기타 데이터를 열거하기 위해 제공됩니다. 이는 그릴 내용을 나타냅니다.

[in] pco

CLIPOBJ 구조체에 대한 포인터입니다. GDI CLIPOBJ_Xxx 서비스 루틴은 클립 영역을 사각형 집합으로 열거하기 위해 제공됩니다. 필요에 따라 경로의 모든 줄이 CLIPOBJ 구조체에 미리 열거될 수 있습니다. 즉, 드라이버는 GDI가 모든 줄 클리핑 계산을 수행하게 할 수 있습니다.

[in, optional] pxo

XFORMOBJ 구조체에 대한 포인터입니다. 이는 기하학적 와이드 선을 그릴 때만 필요합니다. 월드 좌표를 디바이스 좌표에 매핑하는 변환을 지정합니다. 이는 경로가 디바이스 좌표로 제공되지만 기하학적 와이드 라인이 실제로 월드 좌표로 확장되기 때문에 필요합니다.

XFORMOBJ 구조체를 쿼리하여 변환을 찾을 수 있습니다.

[in] pbo

경로를 그릴 때 사용할 브러시를 지정하는 BRUSHOBJ 구조체에 대한 포인터입니다.

[in] pptlBrushOrg

디바이스에서 브러시 패턴을 맞추는 데 사용되는 브러시 원점을 지정하는 POINTL 구조체에 대한 포인터입니다.

[in] plineattrs

LINEATTRS 구조체에 대한 포인터입니다. 줄 스타일이 지정된 경우 이 구조체의 elStyleState 멤버를 이 함수의 일부로 업데이트해야 합니다. 또한 단일 픽셀 너비의 코스메틱 선이 그려지는 경우 ptlLastPel 멤버를 업데이트해야 합니다.

[in] mix

브러시에 사용할 전경 및 배경 래스터 작업을 정의하는 혼합 모드입니다. 혼합 모드에 대한 자세한 내용은 비고를 참조하세요.

반환 값

드라이버가 경로를 스트로크할 수 있는 경우 반환 값은 TRUE 입니다. GDI가 경로를 스트로크해야 하는 경우 반환 값은 FALSE이지만 오류 코드는 기록되지 않습니다. 드라이버에 오류가 발생하면 반환 값이 DDI_ERROR 오류 코드가 보고됩니다.

설명

드라이버가 함수를 연결하고 적절한 GCAPS가 설정된 경우 GDI는 GDI가 특성 집합으로 선 또는 곡선을 그릴 때 DrvStrokePath 를 호출합니다.

드라이버가 이 진입점을 지원하는 경우 임의의 클리핑을 사용하여 코스메틱 와이드 선의 그리기도 지원해야 합니다. 제공된 GDI 함수를 사용하여 호출을 미리 계산된 클리핑이 있는 단일 픽셀 너비 선 집합으로 세분화할 수 있습니다.

이 함수는 디바이스 관리 표면에서 그리기를 수행해야 하는 경우에 필요합니다.

고급 디바이스용 드라이버는 필요에 따라 이 호출을 수신하여 베지어 곡선과 기하학적 와이드 라인을 포함하는 경로를 그릴 수 있습니다. GDI는 DEVINFO 구조체의 flGraphicsCaps 멤버의 GCAPS_BEZIERS 및 GCAPS_GEOMETRICWIDE 플래그를 테스트하여 이 함수를 호출할지 여부를 결정합니다. (비트의 네 가지 조합은 이 호출에 대한 네 가지 기능 수준을 결정합니다.) 드라이버가 베지어 곡선 또는 기하학적 와이드 라인을 포함하는 고급 호출을 받으면 호출을 처리하지 않고 FALSE를 반환할 수 있습니다. 이 문제는 디바이스가 처리하기에 경로 또는 클리핑이 너무 복잡한 경우에 발생할 수 있습니다. 호출이 FALSE를 반환하는 경우 GDI는 호출을 보다 쉽게 처리할 수 있는 더 간단한 호출로 분할합니다.

디바이스 관리 표면의 경우 이 함수는 단색 브러시를 사용하여 단일 픽셀 너비의 단색 및 스타일이 지정된 화장품 라인을 최소한으로 지원해야 합니다.

혼합 모드는 들어오는 패턴을 디바이스 화면에 이미 있는 데이터와 혼합하는 방법을 정의합니다. MIX 데이터 형식은 단일 ULONG으로 압축된 두 개의 ROP2(이진 래스터 작업) 값으로 구성됩니다. 가장 낮은 순서 바이트는 포그라운드 래스터 작업을 정의합니다. 다음 바이트는 백그라운드 래스터 작업을 정의합니다. 래스터 작업 코드에 대한 자세한 내용은 Microsoft Windows SDK 설명서를 참조하세요.

요구 사항

요구 사항
대상 플랫폼 데스크톱
머리글 winddi.h(Winddi.h 포함)

추가 정보

CLIPOBJ

DEVINFO

DrvFillPath

LINEATTRS

PATHOBJ

XFORMOBJ