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);如果 type 设置为 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 7、带 SP2 的 Windows Vista 和适用于 Windows Vista 的平台更新 [桌面应用 |UWP 应用]
最低受支持的服务器 Windows Server 2008 R2、Windows Server 2008 SP2 和适用于 Windows Server 2008 的平台更新 [桌面应用 |UWP 应用]
标头 d2d1.h

另请参阅

ID2D1RenderTarget::IsSupported

呈现目标概述