5 unstable releases
0.6.0 | Sep 14, 2024 |
---|---|
0.5.1 | Sep 8, 2024 |
0.5.0 | Sep 8, 2024 |
0.4.1 | Sep 5, 2024 |
0.4.0 | Aug 3, 2024 |
#161 in Graphics APIs
29 downloads per month
40KB
932 lines
A low-cost abstraction layer on top of wgpu and winit to make their APIs more ergonomic.
This is very much a work-in-progress. This was originally meant to replace LoiRen, the renderer in loitsu, but the projects kinda got split off. Might still happen one day though. Currently most settings are hard-coded this will change.
State
Taika is early in development, meaning large API changes are bound to happen. However it is currently being used for a production ready game which serves as a good testbed for the library.
Goals
- Simplify window creation
- Introduce "RenderPasses" and "RenderPipelines", which are common tropes in game engines.
- Make API changes in WGPU and Winit less frustrating by providing a semi-stable API. API changes will still happen though.
- Give full access to WGPU
In addition to these goals taika also includes some common utilities mainly targeted towards game-development. Taika also includes a super basic form of asset management. It is designed to be built upon, not to be a full-fledged asset management system.
What taika doesn't do:
- Input-handling, you can do this yourself by listening to the winit events that are passed through to your event-handler
- Audio, use other libraries
- Make rendering easy. You still have to write shaders, and implement the drawable trait, to actually issue the drawcalls to the GPU. Taika doesn't make any drawcalls by itself
Notes
- The naming of
rendering::RenderPass
andrendering::RenderPipeline
is a bit confusing at they are also used in wgpu. - No examples currently!
Platforms
Actively tested on Windows, Linux (wayland and x11) and macOS.
Web might happen one day
Dependencies
~8–44MB
~706K SLoC