thorvg/README.md
2020-08-24 14:30:08 +09:00

62 lines
1.8 KiB
Markdown

# ThorVG
ThorVG is a platform independent lightweight standalone C++ library for drawing vector-based shapes and SVG.
#
## Contents
- [Building ThorVG](#building-thorvg)
- [Meson Build](#meson-build)
- [Quick Start](#quick-start)
- [Issues or Feature Requests?](#issues-or-feature-requests)
#
## Building ThorVG
thorvg supports [meson](https://mesonbuild.com/) build system.
#
### Meson Build
install [meson](http://mesonbuild.com/Getting-meson.html) and [ninja](https://ninja-build.org/) if not already installed.
Run meson to configure ThorVG.
```
meson build
```
Run ninja to build & install ThorVG.
```
ninja -C build install
```
[Back to contents](#contents)
#
## Quick Start
ThorVG renders vector shapes on a given canvas buffer.
You can initialize ThorVG engine first:
```cpp
tvg::Initializer::init(tvg::CanvasEngine::Sw);
```
You can prepare a empty canvas for drawing on it.
```cpp
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.
```cpp
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.
```cpp
canvas->draw();
canvas->sync();
```
Lastly, you can acquire the rendered image in buffer memory.
[Back to contents](#contents)
#
## Issues or Feature Requests?
For immidiate assistant or support please reach us in [Gitter](https://gitter.im/thorvg-dev/community#)