Thor Vector Graphics is a lightweight portable library used for drawing vector-based scenes and animations including SVG and Lottie. It can be freely utilized across various software platforms and applications to visualize graphical contents.
Find a file
Hermet Park ef11d500ba common: fix compiler warnings that loss data by mis-matched converision
these conversions are intented, we explicity use casting so that compiler doesn't
catch them anymore.

Change-Id: I9d905c7562c43929b040d034e5ee0d14c6750a80
2020-08-06 20:01:37 +09:00
inc capi: Added C wrapper for setting spread type 2020-08-06 08:09:40 +00:00
packaging spec: Add spec for rpm packaging 2020-08-03 14:56:31 +09:00
pc renamed project name tizenvg => thorvg 2020-06-25 13:57:41 +09:00
src common: fix compiler warnings that loss data by mis-matched converision 2020-08-06 20:01:37 +09:00
test capi: Added C wrapper for setting spread type 2020-08-06 08:09:40 +00:00
.gitignore common shape: added arc implementation 2020-08-03 08:31:54 +02:00
AUTHORS updated AUTHORS 2020-07-28 20:46:11 +09:00
LICENSE + Initial draft 2020-03-25 11:53:03 +09:00
meson.build capi: support c interfaces 2020-07-15 16:00:09 +09:00
meson_options.txt capi: support c interfaces 2020-07-15 16:00:09 +09:00
README.md updated README 2020-08-05 20:08:52 +09:00
thorvg.manifest renamed project name tizenvg => thorvg 2020-06-25 13:57:41 +09:00

ThorVG

ThorVG is a platform independent standalone C++ library for drawing vector-based shapes and SVG.

Contents

Building ThorVG

thorvg supports meson build system.

Meson Build

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

Back to contents

Quick Start

ThorVG renders vector shapes on a given canvas buffer.

You can initialize ThorVG engine first:

tvg::Initializer::init(tvg::CanvasEngine::Sw);

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();

Lastly, you can acquire the rendered image in buffer memory.

Back to contents

Issues or Feature Requests?

For immidiate assistant or support please reach us in Gitter