/piet-hardware

An implementation of the Piet render context using the GPU.

Primary LanguageRustOtherNOASSERTION

piet-hardware

A set of implementations of piet, Rust's 2D vector graphics library, using GPU primitives. The goal is to provide fast and high quality graphics rendering using a familiar API.

The piet-hardware crate is the centerpiece of this project. It translates the piet API calls down to rendering textured triangles. In turn, it sends these rendering calls to a structure implementing the GpuContext interface. This trait represents the lower level hardware calls.

In addition to piet-hardware, this project also contains some crates that implement the piet API using piet-hardware. These are:

There are no official implementations planned for Vulkan, Metal or Direct3D, since wgpu can be implemented over all of these APIs, therefore piet-wgpu can be used for all of them. Please open an issue if you think an important graphics API is missing!

License

piet-hardware is free software: you can redistribute it and/or modify it under the terms of either:

  • GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
  • Mozilla Public License as published by the Mozilla Foundation, version 2.
  • The Patron License for sponsors and contributors, who can ignore the copyleft provisions of the GNU AGPL for this project.

piet-hardware is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License or the Mozilla Public License for more details.

You should have received a copy of the GNU Lesser General Public License and the Mozilla Public License along with piet-hardware. If not, see https://www.gnu.org/licenses/ or https://www.mozilla.org/en-US/MPL/2.0/.