Skia SkCanvas не может быть построен с SkBitmap

У меня есть функция рисования (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);

0

Решение

SkCanvas *myCanvas(&myBitmap);

это указатель на холст. Типы указателей SkCanvas* а также SkBitmap* не связаны.

SkCanvas myCanvas(&myBitmap);

это значение типа myCanvas, инициализируется указателем на растровое изображение. Если SkCanvas имеет ctor, принимающий SkBitmap*, это должно работать.

Это не. Это имеет:

explicit SkCanvas(const SkBitmap& bitmap);

так что это значит:

SkCanvas myCanvas(myBitmap);

Вам, вероятно, также понадобится изменить вызов ничьей на это:

draw(&myCanvas);

при условии, что это работает. Как вы думаете, вам также нужно освежить в памяти разницу между указателями и значениями.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]