Поделиться через


Интерфейс ID2D1Properties (d2d1_1.h)

Представляет набор привязываемых и обнаруживаемых свойств времени выполнения, которые позволяют управляемому данными приложению изменять состояние эффекта Direct2D.

Наследование

Интерфейс ID2D1Properties наследуется от интерфейса IUnknown . ID2D1Properties также имеет следующие типы элементов:

Методы

Интерфейс ID2D1Properties содержит следующие методы.

 
ID2D1Properties::GetPropertyCount

Возвращает количество свойств верхнего уровня.
ID2D1Properties::GetPropertyIndex

Возвращает индекс, соответствующий заданному имени свойства.
ID2D1Properties::GetPropertyName

Возвращает имя свойства, соответствующее заданному индексу. Это перегрузка шаблона. См. заметки.
ID2D1Properties::GetPropertyName

Возвращает имя свойства, соответствующее заданному индексу.
ID2D1Properties::GetPropertyNameLength

Возвращает количество символов для заданного имени свойства. Это перегрузка шаблона. См. заметки.
ID2D1Properties::GetPropertyNameLength

Возвращает количество символов для заданного имени свойства.
ID2D1Properties::GetSubProperties

Возвращает подсвойства предоставленного свойства по индексу. Это перегрузка шаблона.
ID2D1Properties::GetSubProperties

Возвращает подсвойства предоставленного свойства по индексу.
ID2D1Properties::GetType

Возвращает D2D1_PROPERTY_TYPE выбранного свойства. Это перегрузка шаблона. См. заметки.
ID2D1Properties::GetType

Возвращает D2D1_PROPERTY_TYPE выбранного свойства.
ID2D1Properties::GetValue

Возвращает значение свойства по индексу. Это перегрузка шаблона. См. заметки. (перегрузка 1/2)
ID2D1Properties::GetValue

Возвращает значение указанного свойства по индексу. Это перегрузка шаблона. См. заметки.
ID2D1Properties::GetValue

Возвращает значение свойства по индексу. Это перегрузка шаблона. См. заметки. (перегрузка 2/2)
ID2D1Properties::GetValue

Возвращает значение указанного свойства по индексу. (перегрузка 1/2)
ID2D1Properties::GetValue

Возвращает значение указанного свойства по индексу. (перегрузка 2/2)
ID2D1Properties::GetValueByName

Возвращает значение свойства по имени. Это перегрузка шаблона. См. заметки. (перегрузка 2/2)
ID2D1Properties::GetValueByName

Возвращает значение свойства по имени. (перегрузка 2/2)
ID2D1Properties::GetValueByName

Возвращает значение свойства по имени. (перегрузка 1/2)
ID2D1Properties::GetValueByName

Возвращает значение свойства по имени. Это перегрузка шаблона. См. заметки. (перегрузка 1/2)
ID2D1Properties::GetValueSize

Возвращает размер значения свойства в байтах, используя индекс свойства. Это перегрузка шаблона. См. заметки.
ID2D1Properties::GetValueSize

Возвращает размер значения свойства в байтах, используя индекс свойства.
ID2D1Properties::SetValue

Задает соответствующее свойство по индексу. Это перегрузка шаблона. (перегрузка 2/2)
ID2D1Properties::SetValue

Задает соответствующее свойство по индексу. Это перегрузка шаблона. (перегрузка 1/2)
ID2D1Properties::SetValue

Задает соответствующее свойство по индексу. (перегрузка 1/2)
ID2D1Properties::SetValue

Задает соответствующее свойство по индексу. (перегрузка 2/2)
ID2D1Properties::SetValueByName

Задает для именованного свойства заданное значение. (перегрузка 1/2)
ID2D1Properties::SetValueByName

Задает для именованного свойства заданное значение. Это перегрузка шаблона. См. заметки.
ID2D1Properties::SetValueByName

Задает для именованного свойства заданное значение. (перегрузка 2/2)

Комментарии

Этот интерфейс поддерживает доступ через индексы или имена свойств. Помимо свойств верхнего уровня, каждое свойство в объекте ID2D1Properties может содержать объект ID2D1Properties , в котором хранятся метаданные, описывающие родительское свойство.

Обзор

Интерфейс ID2D1Properties предоставляет набор привязываемых и обнаруживаемых свойств во время выполнения, которые позволяют приложению, управляемому данными, например средству разработки графов эффектов или системе анимации, изменять состояние эффекта Direct2D.

Интерфейс поддерживает доступ через индексы или имена свойств. Помимо свойств верхнего уровня, каждое свойство в ID2D1Properties может содержать интерфейс sub-ID2D1Properties , в котором хранятся метаданные, описывающие его родительское свойство. Доступ к вложенным свойствам можно получить путем запроса этого вложенного интерфейса по индексу свойств или с помощью строки имени свойства, разделенной точкой (.).

Интерфейс специально разработан таким образом, чтобы избежать зависимостей во время выполнения. Все выделение выполняется вызывающим методом API, а типы VARIANT не используются. Интерфейс свойств обычно не предназначен для возврата ошибок, когда приложение может тривиально изменить последовательность вызовов, чтобы избежать условия. Например, так как количество свойств, поддерживаемых экземпляром , возвращается методом GetPropertyCount , другие методы, которые принимают индекс свойств, не возвращают ошибку, если они также не используют систему свойств эффекта подключаемого модуля.

Интерфейс в основном основан на модели доступа на основе индекса и поддерживает вложенные подсвойства в свойствах. В отличие от структуры каталогов, само свойство имеет значение и тип и может при необходимости поддерживать вложенные свойства (каталоги не являются файлами). Обычно это метаданные, описывающие свойство , но они также используются для указания массивов объектов . Чтобы упростить доступ к вложенным свойствам и разрешить доступ на основе имен, определены два вспомогательных метода — GetValueByName . Они используют пунктирную нотацию, чтобы разрешить прямое указание вложенных свойств, например:

alphaMode = pEffect->GetValueByName<UINT32>(L"Inputs.0.AlphaMode");

Или:

pEffect->SetValueByName<UINT32>(
		    L"Inputs.0.AlphaMode", 
		    DXGI_ALPHA_MODE_PREMULTIPLIED);
		

Свойства стандартного эффекта

Имя/индекс свойства Тип свойства Описание свойства
CLSID / D2D1_PROPERTY_CLSID D2D1_PROPERTY_TYPE_CLSID CLSID эффекта.
DisplayName / D2D1_PROPERTY_DISPLAYNAME D2D1_PROPERTY_TYPE_STRING Отображаемое локализованное имя для эффекта.
Автор и D2D1_PROPERTY_AUTHOR D2D1_PROPERTY_TYPE_STRING Автор эффекта.
Категория / D2D1_PROPERTY_CATEGORY D2D1_PROPERTY_TYPE_STRING Категория эффекта.
Описание и D2D1_PROPERTY_DESCRIPTION D2D1_PROPERTY_TYPE_STRING Описание эффекта.
Входные данные / D2D1_PROPERTY_INPUTS D2D1_PROPERTY_TYPE_ARRAY
Примечание Элементы этого массива имеют тип D2D1_PROPERTY_TYPE_STRING.
 
Массив имен входных данных эффекта. Каждый элемент массива является локализованной строкой, указывающей имя входных данных.
 

Стандартный Sub-Properties

Ниже приведены стандартные подсвойства, которые можно использовать для доступа к метаданным и могут быть доступны как в системных, так и в пользовательских свойствах. Дополнительные сведения см . в D2D1_SUBPROPERTY и перечислениях D2D1_PROPERTY_TYPE .
Имя/индекс свойства Тип свойства Описание свойства
DisplayName / D2D1_SUBPROPERTY_DISPLAYNAME D2D1_PROPERTY_TYPE_STRING Отображаемое локализованное имя родительского свойства.

Это вложенное свойство присутствует во всех свойствах верхнего уровня.

IsReadOnly / D2D1_SUBPROPERTY_ISREADONLY D2D1_PROPERTY_TYPE_BOOL Значение , указывающее, может ли быть записано родительское свойство.

Это вложенное свойство присутствует во всех свойствах верхнего уровня.

По умолчанию или D2D1_SUBPROPERTY_DEFAULT То же, что и родительское свойство. Значение по умолчанию для свойства.

Это вложенное свойство при необходимости присутствует во всех свойствах.

Мин. в D2D1_SUBPROPERTY_MIN То же, что и родительское свойство.
Примечание Применимо только к свойствам числового типа.
 
Минимальное значение, которое поддерживается родительским свойством.
Максимум / D2D1_SUBPROPERTY_MAX То же, что и родительское свойство.
Примечание Применимо только к свойствам числового типа.
 
Максимальное значение, которое поддерживается родительским свойством.
Поля / D2D1_SUBPROPERTY_FIELDS Массив / D2D1_PROPERTY_TYPE_ARRAY
Примечание Применимо, только если родительское свойство имеет тип Enum.
 
Набор допустимых значений, которым может быть присвоено родительское свойство.

Каждое значение в этом массиве представляет собой пару "имя-индекс". Для индексов можно задать родительский объект, а имена — это локализованные значения, предназначенные для использования в пользовательском интерфейсе. Дополнительные сведения см. в следующем разделе.

 

Sub-Properties типа массива

Дополнительные сведения см. в разделе ID2D1Properties::GetType и D2D1_PROPERTY_TYPE . Если тип свойства является D2D1_PROPERTY_TYPE_ARRAY, значение свойства будет считаться UINT с количеством элементов массива. Следующее вложенное свойство будет напрямую сопоставлять индекс с запрошенным значением свойства. Пример:
Inputs: UINT32 – 2
		Inputs.0 : <Type> – First input
		Inputs.1 : <Type> – Second input
		

В приведенном выше примере используются следующие подсвойства, которые будут отображаться в свойствах типа ARRAY. Обратите внимание, что нумерованные свойства не являются системными свойствами и находятся в обычном диапазоне (0x0 — 0x80000000).

Имя свойства Индекс свойств Описание свойства
Property.0 0 Первый элемент массива свойств.
... ... ...
Property.N N N-йэлемент массива свойств.
 

Тип каждого вложенного элемента будет иметь тип массива. В приведенном выше примере это был массив строк.

Sub-Properties enum-Type

Если свойство имеет тип D2D1_PROPERTY_TYPE_ENUM свойство будет иметь значение соответствующего перечисления. Будет под массив полей, который будет соответствовать общим правилам для вложенных свойств массива и состоять из пар "имя-значение". Пример:
PixelFormat: ENUM – The pixel format value
		PixelFormat.Fields: UINT32 – The number of fields
		PixelFormat.Fields.0:String – The name of the first enum
		PixelFormat.Fields.0.Index: UINT32 – The value of the enumeration.
		

В приведенном выше примере используются следующие вложенные свойства. Дополнительные сведения см . в D2D1_SUBPROPERTY и перечислениях D2D1_PROPERTY_TYPE .

Имя свойства Индекс свойств Описание свойства
Property.Fields D2D1_SUBPROPERTY_FIELDS Свойство типа массива, предоставляющее сведения о каждом поле в перечислении.
Property.Fields.N Нет Элемент массива, задающий имя N-го значения перечисления.
Property.Fields.N.Index D2D1_SUBPROPERTY_INDEX Индекс, соответствующийзначению N-го перечисления.

Требования

   
Минимальная версия клиента Windows 8 и Обновление платформы для Windows 7 [классические приложения | Приложения UWP]
Минимальная версия сервера Windows Server 2012 и обновление платформы для Windows Server 2008 R2 [классические приложения | Приложения UWP]
Целевая платформа Windows
Header d2d1_1.h

См. также раздел

ID2D1Effect

IUnknown