ID2D1DeviceContext::CreateGradientStopCollection 메서드(d2d1_1.h)

그라데이션 중지 컬렉션을 만들어 그라데이션이 [0,1] 이외의 값을 가진 색 채널을 포함할 수 있도록 하고 sRGB 공간에서 보간을 사용하여 고색 렌더링 대상에 렌더링을 사용하도록 설정합니다.

구문

HRESULT CreateGradientStopCollection(
        const D2D1_GRADIENT_STOP      *straightAlphaGradientStops,
        UINT32                        straightAlphaGradientStopsCount,
        D2D1_COLOR_SPACE              preInterpolationSpace,
        D2D1_COLOR_SPACE              postInterpolationSpace,
        D2D1_BUFFER_PRECISION         bufferPrecision,
        D2D1_EXTEND_MODE              extendMode,
        D2D1_COLOR_INTERPOLATION_MODE colorInterpolationMode,
  [out] ID2D1GradientStopCollection1  **gradientStopCollection1
);

매개 변수

straightAlphaGradientStops

형식: const D2D1_GRADIENT_STOP*

색 값 및 오프셋의 배열입니다.

straightAlphaGradientStopsCount

형식: UINT

gradientStops 배열의 요소 수입니다.

preInterpolationSpace

형식: D2D1_COLOR_SPACE

입력 색 공간과 색 보간이 발생하는 공간을 모두 지정합니다.

postInterpolationSpace

형식: D2D1_COLOR_SPACE

보간이 발생한 후 색이 로 변환되는 색 공간입니다.

bufferPrecision

형식: D2D1_BUFFER_PRECISION

보간된 값을 보유하는 데 사용되는 텍스처의 정밀도입니다.

참고 기본 Direct3D 디바이스가 요청된 버퍼 정밀도를 지원하지 않으면 이 메서드가 실패합니다. ID2D1DeviceContext::IsBufferPrecisionSupported를 사용하여 지원되는 항목을 확인합니다.
 

extendMode

형식: D2D1_EXTEND_MODE

중지 컬렉션에서 정의한 범위 외부의 색을 결정하는 방법을 정의합니다.

colorInterpolationMode

형식: D2D1_COLOR_INTERPOLATION_MODE

색을 보간하는 방법을 정의합니다. D2D1_COLOR_INTERPOLATION_MODE_PREMULTIPLIED 기본값입니다. 자세한 내용은 비고를 참조하세요.

[out] gradientStopCollection1

형식: ID2D1GradientStopCollection1**

새 그라데이션 중지 컬렉션입니다.

반환 값

형식: HRESULT

이 메서드는 HRESULT를 반환합니다. 가능한 값에는 다음 표에 있는 값이 포함되지만, 이에 국한되는 것은 아닙니다.

HRESULT 설명
S_OK 오류가 발생하지 않았습니다.
E_OUTOFMEMORY Direct2D에서 호출을 완료하는 데 충분한 메모리를 할당할 수 없습니다.
E_INVALIDARG 잘못된 값이 메서드에 전달되었습니다.

설명

이 메서드는 색 정지 사이에 선형으로 보간합니다. 선택적 색 공간 변환은 보간 후 적용됩니다. 이 감마 변환이 적용되는지 여부와 방법은 사전 및 후 보간에 의해 결정됩니다. 디바이스 컨텍스트가 요청된 버퍼 정밀도를 지원하지 않으면 이 메서드가 실패합니다.

원하는 결과를 얻으려면 입력이 올바른 색 공간에 지정되어 있는지 확인해야 합니다.

보간 모드가 미리 곱하거나 직선이 되는 경우와 관계없이 항상 직선 알파로 색을 지정해야 합니다. 보간 모드는 보간된 값에만 영향을 줍니다. 마찬가지로 ID2D1GradientStopCollection::GetGradientStops 에서 반환되는 중지점에는 항상 직선 알파가 있습니다.

D2D1_COLOR_INTERPOLATION_MODE_PREMULTIPLIED 지정하는 경우 모든 중지는 보간 전에 미리 곱한 다음 색 변환 전에 미리 곱하지 않습니다.

Windows 8 이 메서드의 보간 동작이 변경되었습니다.

여기 표에는 Windows 7 이하의 동작이 표시됩니다.

감마 보간 전 동작 보간 동작 후 GetColorInteroplationGamma(출력 색 공간)
1.0 입력을 고정한 다음 sRGB에서 scRGB로 변환합니다. scRGB에서 sRGB 사후 보간으로 변환합니다. 1.0
2.2 입력을 고정합니다. 작업 없음 2.2
 

여기 표에는 Windows 8 이상에서의 동작이 표시됩니다.

감마 보간 전 동작 보간 동작 후 GetColorInteroplationGamma(출력 색 공간)
sRGB에서 scRGB로 작업 없음 출력을 고정한 다음 sRGB에서 scRGB로 변환합니다. 1.0
scRGB에서 sRGB로 작업 없음 출력을 고정한 다음 sRGB에서 scRGB로 변환합니다. 2.2
sRGB에서 sRGB로 작업 없음 작업 없음 2.2
scRGB에서 scRGB로 작업 없음 작업 없음 1.0

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows Vista용 Windows 8 및 플랫폼 업데이트 [데스크톱 앱 | UWP 앱]
지원되는 최소 서버 Windows Server 2008용 Windows Server 2012 및 플랫폼 업데이트 [데스크톱 앱 | UWP 앱]
대상 플랫폼 Windows
헤더 d2d1_1.h
DLL D2d1.dll

추가 정보

D2D1_BUFFER_PRECISION

D2D1_EXTEND_MODE

D2D1_GAMMA_CONVERSION

D2D1_GRADIENT_STOP

ID2D1DeviceContext

ID2D1GradientStopCollection1

ID2D1RenderTarget::CreateGradientStopCollection