ID2D1Properties 介面 (d2d1_1.h)
表示一組執行時間可系結和可探索的屬性,可讓資料驅動應用程式修改 Direct2D 效果的狀態。
繼承
ID2D1Properties介面繼承自IUnknown介面。 ID2D1Properties 也有下列類型的成員:
方法
ID2D1Properties介面具有這些方法。
備註
此介面支援透過索引或屬性名稱進行存取。 除了最上層屬性之外, ID2D1Properties 物件中的每個屬性可能包含 ID2D1Properties 物件,其會儲存描述父屬性的中繼資料。
概述
ID2D1Properties介面會公開一組執行時間可系結和可探索的屬性,允許資料驅動應用程式,例如效果圖形撰寫工具或動畫系統,以修改 Direct2D 效果的狀態。介面支援透過索引或屬性名稱進行存取。 除了最上層屬性之外, ID2D1Properties 中的每個屬性可能包含子ID2D1Properties 介面,其會儲存描述其父屬性的中繼資料。 透過依屬性索引要求此子介面,或使用以點 (.) 分隔的屬性名稱字串,來存取子屬性。
介面是刻意設計來避免執行時間相依性。 所有配置都是由 API 的呼叫端完成,而且不會使用 VARIANT 類型。 屬性介面通常設計為不會傳回失敗,因為應用程式可能會輕易地變更其呼叫順序,以避免條件。 例如,由於 實例所支援的屬性數目是由 GetPropertyCount 方法傳回,所以採用屬性索引的其他方法不會傳回失敗,除非它們也會使用外掛程式效果的屬性系統。
介面主要是以索引為基礎的存取模型為基礎,並支援屬性內的巢狀子屬性。 不同于目錄結構,屬性本身具有值和類型,而且可以選擇性地支援子屬性 (目錄不是檔案) 。 這些通常是描述 屬性的中繼資料,但也會用來指定物件的陣列。 為了簡化子屬性的存取,並允許以名稱為基礎的存取,定義兩個協助程式方法 – GetValueByName 。 這些使用「dotted」 標記法,以允許直接指定子屬性,例如:
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 | 效果的作者。 |
Category / 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 | 與父屬性相同。
注意 僅適用于數數值型別屬性。
|
父屬性支援設定為 的最小值。 |
Max / D2D1_SUBPROPERTY_MAX | 與父屬性相同。
注意 僅適用于數數值型別屬性。
|
父屬性所支援設定的最大值。 |
Fields / D2D1_SUBPROPERTY_FIELDS | Array / D2D1_PROPERTY_TYPE_ARRAY 注意 僅適用于父屬性的類型為 Enum時。
|
可以設定為父屬性的有效值集。
此陣列中的每個值都是名稱/索引組。 索引可以設定為父系,而名稱是專為 UI 取用而設計的當地語系化值。 請參閱下一節以瞭解更多詳細資訊。 |
陣列類型 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
如果屬性具有類型 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 | 陣列專案,提供 第 N個列舉值的名稱。 |
Property.Fields.N.Index | D2D1_SUBPROPERTY_INDEX | 對應至 第 N個列舉值的索引。 |
規格需求
最低支援的用戶端 | 適用于 Windows 7 的 Windows 8 和平臺更新 [傳統型應用程式 |UWP 應用程式] |
最低支援的伺服器 | 適用于 Windows Server 2008 R2 的 Windows Server 2012 和平臺更新 [傳統型應用程式 |UWP 應用程式] |
目標平台 | Windows |
標頭 | d2d1_1.h |