D2D1_RENDER_TARGET_PROPERTIES 結構 (d2d1.h)

包含轉譯選項 (硬體或軟體) 、圖元格式、DPI 資訊、遠端選項,以及轉譯目標的 Direct3D 支援需求。

語法

typedef struct D2D1_RENDER_TARGET_PROPERTIES {
  D2D1_RENDER_TARGET_TYPE  type;
  D2D1_PIXEL_FORMAT        pixelFormat;
  FLOAT                    dpiX;
  FLOAT                    dpiY;
  D2D1_RENDER_TARGET_USAGE usage;
  D2D1_FEATURE_LEVEL       minLevel;
} D2D1_RENDER_TARGET_PROPERTIES;

成員

type

類型: D2D1_RENDER_TARGET_TYPE

值,指定轉譯目標是否應該強制硬體或軟體轉譯。 值D2D1_RENDER_TARGET_TYPE_DEFAULT指定轉譯目標在可用時應該使用硬體轉譯;否則,它會使用軟體轉譯。 請注意,WIC 位圖轉譯目標不支援硬體轉譯。

pixelFormat

類型: D2D1_PIXEL_FORMAT

轉譯目標的圖元格式和 Alpha 模式。 您可以使用 D2D1::P ixelFormat 函式來建立圖元格式,指定 Direct2D 應該為您選取圖元格式和 Alpha 模式。 如需每個轉譯目標所支援的圖元格式和 Alpha 模式清單,請參閱 支援的圖元格式和 Alpha 模式

dpiX

類型: FLOAT

轉譯目標的水準 DPI。 若要使用預設 DPI,請將 dpiXdpiY 設定為 0。 如需詳細資訊,請參閱<備註>一節。

dpiY

類型: FLOAT

轉譯目標的垂直 DPI。 若要使用預設 DPI,請將 dpiXdpiY 設定為 0。 如需詳細資訊,請參閱<備註>一節。

usage

類型: D2D1_RENDER_TARGET_USAGE

值,指定轉譯目標遠端的方式,以及它是否應該與 GDI 相容。 設定為 D2D1_RENDER_TARGET_USAGE_NONE 建立與 GDI 不相容的轉譯目標,並在可用時使用 Direct3D 命令數據流遠端處理。

minLevel

類型: D2D1_FEATURE_LEVEL

值,指定硬體轉譯所需的最小 Direct3D 功能層級。 如果指定的最小層級無法使用,則轉譯目標會在 類型 成員設定為 D2D1_RENDER_TARGET_TYPE_DEFAULT時使用軟體轉譯;如果 類型 設定為 D2D1_RENDER_TARGET_TYPE_HARDWARE,則轉譯目標建立會失敗。 D2D1_FEATURE_LEVEL_DEFAULT值表示 Direct2D 應該判斷裝置的 Direct3D 功能層級是否足夠。 只有在建立 ID2D1HwndRenderTargetID2D1DCRenderTarget 物件時,才會使用此欄位。

備註

建立轉譯目標時使用此結構,或使用它搭配 ID2D1RenderTarget::IsSupported 方法來檢查現有轉譯目標所支援的屬性。

為了方便起見,Direct2D 提供 D2D1::RenderTargetProperties 協助程式函式來建立 D2D1_RENDER_TARGET_PROPERTIES 結構。 建立適用於大部分轉譯目標的 D2D1_RENDER_TARGET_PROPERTIES 結構簡單方式,就是呼叫函式而不指定任何參數。 這麼做會建立 D2D1_RENDER_TARGET_PROPERTIES 結構,其字段設定為預設值。 如需詳細資訊,請參閱 D2D1::RenderTargetProperties

並非所有轉譯目標都支援硬體轉譯。 如需清單,請參閱 轉譯目標概觀

使用預設 DPI 設定

若要使用預設 DPI,請將 dpiXdpiY 設定為 0。 預設 DPI 會根據轉譯目標而有所不同:
  • 針對相容的轉譯目標,預設 DPI 是父轉譯目標的 DPI。
  • 針對 ID2D1HwndRenderTarget,預設 DPI是從轉譯目標的 ID2D1Factory取得的系統 DPI。
  • 對於其他轉譯目標,預設 DPI 為 96。
若要使用預設 DPI 設定, dpiXdpiY 都必須設定為 0。 嘗試建立轉譯目標時,只將一個值設定為 0 會導致 E_INVALIDARG 錯誤。

範例

下列範例使用 D2D1::RenderTargetProperties 函式來建立適用於大部分轉譯目標的 D2D1_RENDER_TARGET_PROPERTIES 結構。

RECT rc;
GetClientRect(m_hwnd, &rc);

D2D1_SIZE_U size = D2D1::SizeU(
    rc.right - rc.left,
    rc.bottom - rc.top
    );

// Create a Direct2D render target.
hr = m_pD2DFactory->CreateHwndRenderTarget(
    D2D1::RenderTargetProperties(),
    D2D1::HwndRenderTargetProperties(m_hwnd, size),
    &m_pRenderTarget
    );

規格需求

需求
最低支援的用戶端 適用於 Windows Vista 的 Windows 7、Windows Vista SP2 和平臺更新 [傳統型應用程式 |UWP 應用程式]
最低支援的伺服器 Windows Server 2008 R2、Windows Server 2008 SP2 和 Platform Update for Windows Server 2008 [傳統型應用程式 |UWP 應用程式]
標頭 d2d1.h

另請參閱

ID2D1RenderTarget::IsSupported

轉譯目標概觀