mirror of
https://github.com/thorvg/thorvg.git
synced 2025-06-18 22:11:32 +00:00

[issues 1479: Shape](https://github.com/thorvg/thorvg/issues/1479) In order to build you need third party libraries. Before you start please read this: [LearnWebGPU](https://eliemichel.github.io/LearnWebGPU/getting-started/hello-webgpu.html) Usage example: // init glfw glfwInit(); // create a windowed mode window and its opengl context glfwWindowHint(GLFW_CLIENT_API, GLFW_NO_API); GLFWwindow* window = glfwCreateWindow(800, 800, "WebGPU base app", nullptr, nullptr); // get window size int width{}, height{}; glfwGetWindowSize(window, &width, &height); // init engine webgpu tvg::Initializer::init(tvg::CanvasEngine::Wg, 0); // create wg canvas auto canvasWg = tvg::WgCanvas::gen(); canvas_wg->target(glfwGetWin32Window(window), width, height); // prepare a shape (Rectangle + Rectangle + Circle + Circle) auto shape1 = tvg::Shape::gen(); shape1->appendRect(0, 0, 200, 200); //x, y, w, h shape1->appendRect(100, 100, 300, 300, 100, 100); //x, y, w, h, rx, ry shape1->appendCircle(400, 400, 100, 100); //cx, cy, radiusW, radiusH shape1->appendCircle(400, 500, 170, 100); //cx, cy, radiusW, radiusH shape1->fill(255, 255, 0); //r, g, b canvas_wg->push(std::move(shape1)); while (!glfwWindowShouldClose(window)) { // webgpu canvas_wg->draw(); canvas_wg->sync(); // pull events glfwPollEvents(); } // terminate engine and window tvg::Initializer::term(tvg::CanvasEngine::Wg); glfwDestroyWindow(window); glfwTerminate();
13 lines
301 B
Meson
13 lines
301 B
Meson
source_file = [
|
|
'tvgWgPipelineBase.cpp',
|
|
'tvgWgPipelineEmpty.cpp',
|
|
'tvgWgPipelineSolid.cpp',
|
|
'tvgWgRenderData.cpp',
|
|
'tvgWgRenderer.cpp',
|
|
'tvgWgShaderSrc.cpp'
|
|
]
|
|
|
|
engine_dep += [declare_dependency(
|
|
include_directories : include_directories('.'),
|
|
sources : source_file
|
|
)]
|