Crate rafx[][src]

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 abstraction
  • rafx_framework: Mid-level framework that eases resource management, lifetime handling, and draw call dispatching
  • rafx_assets: Asset layer that integrates with the distill asset pipeline
    • NOTE: The published version in crates.io does not include rafx-assets as distill is not published yet

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

Type Definitions