Expand description
NOTE: docs.rs may not generate complete documentation for rafx because it does not enable all
of the features in cargo when building the docs. To generate complete documentation locally,
run cargo doc --no-deps --open
in the root of the crate.
Rafx is a multi-backend renderer that prioritizes performance, flexibility, and productivity. It
optionally integrates with the distill
asset
pipeline to provide workflows and tools suitable for real-world projects with multidisciplinary
teams.
Note: Additional documentation describing aspects of
rafx
’s design, usage, and architecture can be found on GitHub.
This crate contains several layers:
rafx_api
: Low-level graphics API abstractionrafx_framework
: Mid-level framework that eases resource management, lifetime handling, and draw call dispatchingrafx_assets
: Asset layer that integrates with thedistill
asset pipeline- NOTE: The published version in crates.io does not include rafx-assets as
distill
is not published yet
- NOTE: The published version in crates.io does not include rafx-assets as
Rafx also provides tools for building shaders and packing assets.
Rafx supports most mainstream platforms via vulkan
and metal
backends. OpenGL ES 2.0/3.0 backends
are work-in-progress and they support less features due to API limitations ( see backends ).
Proprietary platforms can be supported by adding an additional backend.
Modules§
- Rafx API is an
unsafe
graphics API abstraction layer designed specifically for games and tools for games. The goal is to achieve near-native performance with reduced complexity. It may be used directly, or indirectly through other crates in rafx (such as [rafx-resources] and [rafx-assets]). - Provides integration with the
distill
asset pipeline - Lowest level crate of
rafx
. Includes some basic memory management and other utilities - A mid-level framework for rendering that provides tools for resource lifetime management, descriptor set management, materials, renderpass management, and draw call dispatching
- Part of
rafx-framework
. Handles extracting, preparing, and writing draw calls - Part of
rafx-framework
.
Macros§
- Use to declare a new render feature that can be registered. Registration allows easy global access to the render feature index from anywhere in the binary
- Use to declare a new render feature flag that can be registered. Registration allows easy global access to the render feature flag index from anywhere in the binary