mirror of
https://github.com/thorvg/thorvg.git
synced 2025-06-08 05:33:36 +00:00
62 lines
1.8 KiB
Markdown
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#)
|