gpt4 book ai didi

c++ - Skia SkCanvas不能用SkBitmap构造

转载 作者:行者123 更新时间:2023-11-28 05:12:40 31 4
gpt4 key购买 nike

我有一个 draw(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);

最佳答案

SkCanvas *myCanvas(&myBitmap);

这是一个指向 Canvas 的指针。 SkCanvas*SkBitmap* 的指针类型不相关。

SkCanvas myCanvas(&myBitmap);

这是一个 myCanvas 类型的值,用指向位图的指针初始化。如果 SkCanvas 有一个接受 SkBitmap* 的构造函数,这应该可以工作。

事实并非如此。它确实有:

explicit SkCanvas(const SkBitmap& bitmap);

所以这意味着:

SkCanvas myCanvas(myBitmap);

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

draw(&myCanvas);

假设可行。作为猜测,您还需要复习一下指针和值之间的区别。

关于c++ - Skia SkCanvas不能用SkBitmap构造,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43220396/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com