Метод 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
Точность текстуры, используемой для хранения интерполированных значений.
extendMode
Тип: D2D1_EXTEND_MODE
Определяет, как определяются цвета за пределами диапазона, определенного коллекцией stop.
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 и более ранних версиях.
Gamma | Поведение перед интерполяцией | Поведение после интерполяции | GetColorInteroplationGamma (выходное цветовое пространство) |
---|---|---|---|
1,0 | Зажимает входные данные, а затем преобразует sRGB в scRGB. | Преобразует scRGB в sRGB после интерполяции. | 1.0 |
2.2 | Зажимает входные данные. | Нет операции | 2.2 |
В таблице ниже показано поведение в Windows 8 и более поздних версий.
Gamma | Поведение перед интерполяцией | Поведение после интерполяции | GetColorInteroplationGamma (выходное цветовое пространство) |
---|---|---|---|
sRGB в scRGB | Нет операции | Зажимает выходные данные, а затем преобразует sRGB в scRGB. | 1,0 |
из scRGB в sRGB | Нет операции | Зажимает выходные данные, а затем преобразует sRGB в scRGB. | 2.2 |
sRGB — sRGB | Нет операции | Нет операции | 2.2 |
scRGB в scRGB | Нет операции | Нет операции | 1,0 |
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows 8 и обновление платформы для Windows Vista [классические приложения | Приложения UWP] |
Минимальная версия сервера | Windows Server 2012 и обновление платформы для Windows Server 2008 [классические приложения | Приложения UWP] |
Целевая платформа | Windows |
Header | d2d1_1.h |
DLL | D2d1.dll |