D2D1_BITMAP_OPTIONS 枚举是 Win32 API 中 Direct2D 图片位图的选项之一,它用于在创建位图时指定位图的属性和行为。以下是 D2D1_BITMAP_OPTIONS 枚举的定义:
typedef enum D2D1_BITMAP_OPTIONS {
  D2D1_BITMAP_OPTIONS_NONE = 0x00000000,
  D2D1_BITMAP_OPTIONS_TARGET = 0x00000001,
  D2D1_BITMAP_OPTIONS_CANNOT_DRAW = 0x00000002,
  D2D1_BITMAP_OPTIONS_CPU_READ = 0x00000004,
  D2D1_BITMAP_OPTIONS_GDI_COMPATIBLE = 0x00000008,
  D2D1_BITMAP_OPTIONS_FORCE_DWORD = 0xffffffff
} ;

这个枚举有以下几个成员:

  •  D2D1_BITMAP_OPTIONS_NONE: 无特殊选项,位图的默认行为。


  •  D2D1_BITMAP_OPTIONS_TARGET: 表示位图可作为渲染目标。通常在创建与渲染目标相关的位图时使用。


  •  D2D1_BITMAP_OPTIONS_CANNOT_DRAW: 表示位图不可用于绘制操作。


  •  D2D1_BITMAP_OPTIONS_CPU_READ: 表示位图可以从 CPU 读取,允许对位图的像素进行读取操作。


  •  D2D1_BITMAP_OPTIONS_GDI_COMPATIBLE: 表示位图与 GDI 兼容,可以与 GDI 函数一起使用。


  •  D2D1_BITMAP_OPTIONS_FORCE_DWORD: 强制将此枚举大小设置为 32 位。


在使用 Direct2D 创建位图时,可以通过在 CreateBitmap 函数中的 options 参数中指定相应的选项来设置位图的行为。例如:
D2D1_BITMAP_PROPERTIES1 bitmapProperties = D2D1::BitmapProperties1(
    D2D1_BITMAP_OPTIONS_TARGET | D2D1_BITMAP_OPTIONS_CANNOT_DRAW,
    pixelFormat,
    dpiX,
    dpiY
);

ID2D1Bitmap1 *pBitmap;
HRESULT hr = pRenderTarget->CreateBitmap(
    size,
    pData,
    pitch,
    &bitmapProperties,
    &pBitmap
);

这样就创建了一个不可绘制的渲染目标位图。


转载请注明出处:http://www.zyzy.cn/article/detail/25296/Win32 API/D2d1_1.h/D2D1_BITMAP_OPTIONS