EngGradientFill 함수(winddi.h)
EngGradientFill 함수는 지정된 기본 형식을 음영으로 표시합니다.
구문
ENGAPI BOOL EngGradientFill(
SURFOBJ *psoDest,
CLIPOBJ *pco,
XLATEOBJ *pxlo,
TRIVERTEX *pVertex,
ULONG nVertex,
PVOID pMesh,
ULONG nMesh,
RECTL *prclExtents,
POINTL *pptlDitherOrg,
[in] ULONG ulMode
);
매개 변수
psoDest
그릴 표면을 식별하는 SURFOBJ 구조체에 대한 포인터입니다.
pco
CLIPOBJ 구조체에 대한 포인터입니다. CLIPOBJ_Xxx 서비스 루틴은 클립 영역을 사각형 집합으로 열거하기 위해 제공됩니다. 이 열거형은 수정된 대상의 영역을 제한합니다. 가능하면 GDI는 관련된 클리핑을 간소화합니다.
pxlo
XLATEOBJ 구조체에 대한 포인터입니다. 이 구조체는 32bpp RGB 형식과 대상 간에 색 인덱스를 변환하는 방법을 나타냅니다. 드라이버는 입력 COLOR16 색 값을 RGB로 변환해야 합니다.
pVertex
각 항목에 위치 및 색 정보가 포함된 TRIVERTEX 구조체 배열에 대한 포인터입니다. TRIVERTEX 구조체는 Microsoft Windows SDK 설명서에 설명되어 있습니다.
nVertex
pVertex가 가리키는 배열의 TRIVERTEX 구조체 수를 지정합니다.
pMesh
pVertex가 가리키는 TRIVERTEX 요소의 연결을 정의하는 구조체 배열에 대한 포인터입니다.
사각형을 그릴 때 pMesh 는 각각 사각형을 정의하는 두 개의 TRIVERTEX 요소를 지정하는 GRADIENT_RECT 구조체 배열을 가리킵니다. TRIVERTEX 요소는 대각선으로 반대되는 사각형 꼭짓점 쌍을 나타낼 수 있습니다. 직사각형 그리기는 오른쪽 아래에 배타적입니다. TRIVERTEX와 GRADIENT_RECT 모두 Windows SDK 설명서에 정의되어 있습니다.
삼각형을 그릴 때 pMesh 는 각각 삼각형을 정의하는 3개의 TRIVERTEX 요소를 지정하는 GRADIENT_TRIANGLE 구조체 배열을 가리킵니다. 삼각형 그리기는 오른쪽 아래에 배타적입니다. GRADIENT_TRIANGLE 구조체는 Windows SDK 설명서에 정의되어 있습니다.
nMesh
pMesh가 가리키는 배열의 요소 수를 지정합니다.
prclExtents
그라데이션 드로잉이 발생할 영역을 정의하는 RECTL 구조체에 대한 포인터입니다. 점이 대상 표면의 좌표계에 지정됩니다. 이 매개 변수는 그리기 작업의 크기를 예측하는 데 유용합니다.
pptlDitherOrg
디더링을 위해 표면의 원점을 정의하는 POINTL 구조체에 대한 포인터입니다. 디더 패턴의 왼쪽 위 픽셀이 이 점에 맞춰 정렬됩니다.
[in] ulMode
현재 그리기 모드와 pMesh 가 가리키는 배열을 해석하는 방법을 지정합니다. 이 매개 변수는 다음 값 중 하나일 수 있습니다.
GRADIENT_FILL_RECT_H
pMesh 매개 변수는 GRADIENT_RECT 구조체의 배열을 가리킵니다. 각 사각형은 왼쪽에서 오른쪽으로 음영 처리됩니다.
GRADIENT_FILL_RECT_V
pMesh 매개 변수는 GRADIENT_RECT 구조체의 배열을 가리킵니다. 각 사각형은 위에서 아래로 음영 처리되어야 합니다.
GRADIENT_FILL_TRIANGLE
pMesh 매개 변수는 GRADIENT_TRIANGLE 구조체의 배열을 가리킵니다.
반환 값
EngGradientFill은 성공하면 TRUE 를 반환합니다. 그렇지 않으면 오류를 보고하고 FALSE를 반환합니다.
설명
드라이버가 DrvGradientFill을 후크하고 지원하지 않는 작업을 수행하도록 호출된 경우 EngGradientFill을 호출해야 합니다.
각 픽셀의 색 값을 계산하는 데 사용되는 수식은 다음과 같이 ulMode 값에 따라 달라집니다.
GDI는 꼭짓점의 알파 값을 무시하고 알파를 지원하는 표면에 대해 알파 채널을 변경하지 않습니다.
요구 사항
지원되는 최소 클라이언트 | Windows 2000 이상 버전의 Windows 운영 체제에서 사용할 수 있습니다. |
대상 플랫폼 | 유니버설 |
헤더 | winddi.h(Winddi.h 포함) |
라이브러리 | Win32k.lib |
DLL | Win32k.sys |