D2D1_GRADIENT_STOP 구조체(d2d1.h)
그라데이션 중지점의 위치와 색을 포함합니다.
구문
typedef struct D2D1_GRADIENT_STOP {
FLOAT position;
D2D1_COLOR_F color;
} D2D1_GRADIENT_STOP;
멤버
position
형식: FLOAT
브러시에서 그라데이션 중지점의 상대 위치를 나타내는 값입니다. 그라데이션 중지가 명시적으로 표시될 경우 이 값은 [0.0f, 1.0f] 범위에 있어야 합니다.
color
형식: D2D1_COLOR_F
그라데이션 중지점의 색입니다.
설명
그라데이션 중지점이 다른 위치에 있는 경우 임의의 순서로 지정할 수 있습니다. 두 개의 중지점이 위치를 공유할 수 있습니다. 이 경우 지정된 첫 번째 중지는 "낮은" 중지(0.0f에 가까워짐)로 처리되고 후속 중지는 "높음"(1.0f에 가까워짐)으로 처리됩니다. 이 동작은 호출자가 중지 중간에 즉시 전환하려는 경우에 유용합니다.
일반적으로 컬렉션에는 두 개 이상의 지점이 있지만 중지가 하나만 있는 생성은 허용됩니다. 예를 들어 한 지점은 0.0f 위치에 있고 다른 점은 1.0f 위치에 있고 추가 지점은 [0, 1] 범위에 분산됩니다. 그라데이션 진행률이 [0, 1] 범위를 벗어나면 중지점이 저장되지만 그라데이션에 영향을 줄 수 있습니다.
그리면 [0, 1] 위치 범위가 브러시 종속 방식으로 브러시에 매핑됩니다. 자세한 내용은 ID2D1LinearGradientBrush 및 ID2D1RadialGradientBrush를 참조하세요.
[0, 1] 범위를 벗어난 위치가 있는 그라데이션 정지는 명시적으로 볼 수 없지만 [0, 1] 범위에서 생성된 색에 계속 영향을 줄 수 있습니다. 예를 들어 2스톱 그라데이션 {{0.0f, Black}, {2.0f, White}}은(는) {{0.0f, Black}, {1.0f, 중간 수준 회색}}과 시각적으로 구별할 수 없습니다. 또한 색은 보간 전에 고정됩니다.
예제
다음 예제에서는 그라데이션 중지점 배열을 만든 다음, 이를 사용하여 ID2D1GradientStopCollection을 만듭니다.
// Create an array of gradient stops to put in the gradient stop
// collection that will be used in the gradient brush.
ID2D1GradientStopCollection *pGradientStops = NULL;
D2D1_GRADIENT_STOP gradientStops[2];
gradientStops[0].color = D2D1::ColorF(D2D1::ColorF::Yellow, 1);
gradientStops[0].position = 0.0f;
gradientStops[1].color = D2D1::ColorF(D2D1::ColorF::ForestGreen, 1);
gradientStops[1].position = 1.0f;
// Create the ID2D1GradientStopCollection from a previously
// declared array of D2D1_GRADIENT_STOP structs.
hr = m_pRenderTarget->CreateGradientStopCollection(
gradientStops,
2,
D2D1_GAMMA_2_2,
D2D1_EXTEND_MODE_CLAMP,
&pGradientStops
);
다음 코드 예제에서는 ID2D1GradientStopCollection 을 사용하여 ID2D1LinearGradientBrush를 만듭니다.
// The line that determines the direction of the gradient starts at
// the upper-left corner of the square and ends at the lower-right corner.
if (SUCCEEDED(hr))
{
hr = m_pRenderTarget->CreateLinearGradientBrush(
D2D1::LinearGradientBrushProperties(
D2D1::Point2F(0, 0),
D2D1::Point2F(150, 150)),
pGradientStops,
&m_pLinearGradientBrush
);
}
요구 사항
지원되는 최소 클라이언트 | Windows 7, Windows Vista SP2 및 Windows Vista용 플랫폼 업데이트 [데스크톱 앱 | UWP 앱] |
지원되는 최소 서버 | Windows Server 2008 R2, Windows Server 2008 SP2 및 Windows Server 2008용 플랫폼 업데이트 [데스크톱 앱 | UWP 앱] |
머리글 | d2d1.h |