Expand description
A low-cost abstraction layer on top of wgpu and winit to make their APIs more ergonomic.
§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!
§Getting Started
Use the EventLoop
struct to get started
Re-exports§
Modules§
Structs§
- Event
Loop - Used to create windows and run the main loop of the application.
- Render
Settings - Settings for the renderer
Functions§
- request_
quit - Request the event loop to quit, closing all windows