- Zig 57.2%
- Nim 37.3%
- C 5.4%
| bin | ||
| butcher | ||
| doc | ||
| src |
fix: Allow .persistent argument for Buffer.create
|
|
| .gitattributes | ||
| .gitignore | ||
| license.md | ||
| readme.md | ||
m*gpu | Graphics Programming API
m*gpu is:
- A modern graphics library/API made with Vulkan
- Inspired by the concepts and design of webgpu/wgpu/dawn
- Highly configurable
- Intuitive and easy to use
Goals:
- Be and stay as intuitive as possible within the paradigms of current/next-gen graphics programming
- Provide sane defaults that can be omitted (aka. avoid redundant boilerplate)
- Bring Vulkan to the indie scene by lowering the amount of time spent writing abstractions and boilerplate
(similar to what webgpu-native does with its backends abstraction)
Non-goals:
- Multi-API
Targets Vulkan exclusively. - Agnostic
Makes assumptions on how rendering will be done. - Vulkan terminology
Intuitive use is a #1 priority, even at the expense of modifying existing Vulkan words/concepts.
eg: Physical+Logical Device vs Device .. Layout vs Shape .. RenderPass vs RenderTarget .. etc
License & Usage
This project is covered under the Mozilla Public License 2.0.
The MPL v2.0 is a per-file weak copyleft license.
Just like with MIT, you can use this project in a closed source application,
without the license spreading to your own files, or having to build the code into a dynamic library.
(ie: like GPL/LGPL would require)
If you don't modify anything, you can use (and relicense) the code into your app as if it was MIT/BSD.
The MPL is a not-so-well-known license.
Please read their FAQ if you were not aware of its existence.
Why MPL-2.0
tl;dr: Same reason explained in this GNU article
Using the ordinary GPL is not advantageous for mgpu.
There are plenty of other MIT graphics APIs.
Roughly the same features are already available for proprietary software through the use of wgpu, dawn, webgpu-native, metal, etc.
This means that mgpu cannot give free software any particular advantage.
Using the GPL for mgpu would drive proprietary software developers to just use another API.
No problem for them, only for us.