Crate taika

Source
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

  1. Simplify window creation
  2. Introduce “RenderPasses” and “RenderPipelines”, which are common tropes in game engines.
  3. Make API changes in WGPU and Winit less frustrating by providing a semi-stable API. API changes will still happen though.
  4. 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

§Getting Started

Use the EventLoop struct to get started

Re-exports§

pub use wgpu;
pub use winit;

Modules§

asset_management
events
math
rendering
window

Structs§

EventLoop
Used to create windows and run the main loop of the application.
RenderSettings
Settings for the renderer

Functions§

request_quit
Request the event loop to quit, closing all windows