无法使用SkBitmap构建Skia SkCanvas

时间:2017-04-05 01:39:00

标签: c++ bitmap skia

我有一个平局(SkCanvas * canvas)功能。

在main()中我写道:

SkBitmap myBitmap;
myBitmap.allocN32Pixels(640, 480);

SkCanvas *myCanvas(&myBitmap);
draw(myCanvas);

但Visual Studio会生成此错误:

"a value of type "SkBitmap *" cannot be used to initialize an entity of type "SkCanvas*"

我做错了什么?

我的draw()函数使帖子混乱,对于这个问题完全无用,否则我已经发布了它。

这是SkCanvas的构造。

/** Construct a canvas with the specified bitmap to draw into.
        @param bitmap   Specifies a bitmap for the canvas to draw into. Its
                        structure are copied to the canvas.
    */
explicit SkCanvas(const SkBitmap& bitmap);

1 个答案:

答案 0 :(得分:1)

SkCanvas *myCanvas(&myBitmap);

这是一个指向画布的指针。 <{1}}和SkCanvas*的指针类型无关。

SkBitmap*

这是类型SkCanvas myCanvas(&myBitmap); 的值,使用指向位图的指针初始化。如果myCanvas有一个SkCanvas,那么这应该有效。

没有。确实有:

SkBitmap*

所以这意味着:

explicit SkCanvas(const SkBitmap& bitmap);

您可能还需要将绘图调用更改为:

SkCanvas myCanvas(myBitmap);

假设有效。作为猜测,您还需要重新思考指针和值之间的差异。