ThorVG is a platform independent lightweight standalone C++ library for drawing vector-based shapes and SVG.
thorvg supports meson build system.
install meson and ninja if not already installed.
Run meson to configure ThorVG.
meson build
Run ninja to build & install ThorVG.
ninja -C build install
ThorVG renders vector shapes on a given canvas buffer.
You can initialize ThorVG engine first:
tvg::Initializer::init(tvg::CanvasEngine::Sw, 0); //engine method, thread count
You can prepare a empty canvas for drawing on it.
static uint32_t buffer[WIDTH * HEIGHT]; //canvas target buffer
auto canvas = tvg::SwCanvas::gen(); //generate a canvas
canvas->target(buffer, WIDTH, WIDTH, HEIGHT); //stride, w, h
Next you can draw shapes onto the canvas.
auto shape = tvg::Shape::gen(); //generate a shape
shape->appendRect(0, 0, 200, 200, 0, 0); //x, y, w, h, rx, ry
shape->appendCircle(400, 400, 100, 100); //cx, cy, radiusW, radiusH
shape->fill(255, 255, 0, 255); //r, g, b, a
canvas->push(move(shape)); //push shape drawing command
Begin rendering & finish it at a particular time.
canvas->draw();
canvas->sync();
Now you can acquire the rendered image in buffer memory.
Lastly, terminate the engine after usage.
tvg::Initializer::term(tvg::CanvasEngine::Sw);
For immidiate assistant or support please reach us in Gitter