다음을 통해 공유


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] 위치 범위가 브러시 종속 방식으로 브러시에 매핑됩니다. 자세한 내용은 ID2D1LinearGradientBrushID2D1RadialGradientBrush를 참조하세요.

[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

추가 정보

브러시 개요

CreateGradientStopCollection

선형 그라데이션 브러시를 만드는 방법

방사형 그라데이션 브러시를 만드는 방법

ID2D1GradientStopCollection

ID2D1LinearGradientBrush

ID2D1RadialGradientBrush