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