Эффект Atlas
Этот эффект можно использовать для вывода части изображения, но сохранить регион за пределами части для последующей операции.
CLSID для этого эффекта CLSID_D2D1Atlas.
Эффект атласа полезен, если вы хотите загрузить большое изображение, состоящее из множества небольших изображений, таких как различные кадры спрайта.
Чтобы создать результат, выполните следующие действия:
- Обрезка входных данных заданному свойству InputRect InputRect.
- Преобразует источник результата в (0,0).
Заметка
Свойство InputPaddingRect должно быть только больше, если и только если пиксели между двумя прямоугольниками прозрачные черные на входных данных. Это может привести к более оптимальному выполнению графа Direct2D.
Ниже приведен пример эффекта. Это изображение небольшое и простое в целях иллюстрации.
Предыдущее изображение представляет собой входные данные для эффекта. Приведенный здесь код создает эффект atlas, задает входные данные, задает входной прямоугольник, а затем рисует выходные данные.
ComPtr<ID2D1Effect> atlasEffect;
// Create the Atlas Effect.
DX::ThrowIfFailed(m_d2dContext->CreateEffect(CLSID_D2D1Atlas, &atlasEffect));
// Set the input.
atlasEffect->SetInputEffect(0, inputImage.Get());
// The images here are 150 x 150 pixels.
float size = 150.0f;
// Compensate for the padding between images.
float padding = 10.0f;
// The input rectangle. 150 x 150 pixels with 10 pixel padding
D2D1_Vector_4F inputRect = D2D1::Vector4F(size + (padding * 2), padding, size, size);
DX::ThrowIfFailed(atlasEffect->SetValue(D2D1_ATLAS_PROP_INPUT_RECT, inputRect));
// Draw the image
m_d2dContext->DrawImage(atlasEffect.Get());
Предыдущий код выбирает прямоугольник, который находится вокруг второго треугольника. Заполнение вокруг него игнорируется. Вот результирующий образ.
Заметка
Это ситуация, когда можно указать InputPaddingRect, так как заполнение прозрачно черное. Прямоугольник будет D2D1::Vector4F(size + (padding * 2), 0, size + padding, size + padding);
.
Свойства эффекта
Отображаемое имя и перечисление индексов | Описание |
---|---|
InputRect D2D1_ATLAS_PROP_INPUT_RECT |
Часть изображения, переданная следующему эффекту. Тип D2D1_VECTOR_4F. Значение по умолчанию — (-FLT_MAX, -FLT_MAX, FLT_MAX, FLT_MAX). |
InputPaddingRect D2D1_ATLAS_PROP_INPUT_PADDING_RECT |
Максимальный размер, выборка для выходного прямоугольника. Тип D2D1_VECTOR_4F. Значение по умолчанию — (-FLT_MAX, -FLT_MAX, FLT_MAX, FLT_MAX). |
Требования
Требование | Ценность |
---|---|
Минимальный поддерживаемый клиент | Windows 8 и Обновление платформы для Windows 7 [классические приложения | Приложения Магазина Windows] |
Минимальный поддерживаемый сервер | Windows 8 и Обновление платформы для Windows 7 [классические приложения | Приложения Магазина Windows] |
Заголовок | d2d1effects.h |
Библиотека | d2d1.lib, dxguid.lib |