我对directd2d 接口的MFC 包装器完全感到困惑。看看下面的例子: -
BOOL CreateCompatibleRenderTarget(
CBitmapRenderTarget& bitmapTarget,
CD2DSizeF sizeDesired = CD2DSizeF(0.,
0.),
CD2DSizeU sizePixelDesired = CD2DSizeU(0,
0),
D2D1_PIXEL_FORMAT* desiredFormat = NULL,
D2D1_COMPATIBLE_RENDER_TARGET_OPTIONS options = D2D1_COMPATIBLE_RENDER_TARGET_OPTIONS_NONE
);
bitmapTarget 当此方法返回时,包含指向新位图渲染目标的指针的地址。此参数未初始化传递。
我对应该传递给函数的内容完全感到困惑。与文档相反,它接收对象而不是指向未初始化的指针,如 Directd2d IDL。并且对象必须被初始化。
现在可以看出 CBitmapRenderTarget 是一个使用默认构造函数创建的对象。但是,这不适用于 CBitmapRenderTarget 的 GetBimap 成员,该成员也遵循文档中的相同模式:-
BOOL GetBitmap(
CD2DBitmap& bitmap
);
位图 当此方法返回时,包含此渲染目标的有效位图。该位图可用于绘图操作。
但是 CD2DBitmap 没有默认的ctor,所以我不能首先创建对象。问题是我如何正确调用 CBitmapRenderTarget API 的 GetBitmap。如何创建未初始化的 CD2DBitmap 对象???