rafx 0.0.16

Rendering framework built on an extensible asset pipeline
Documentation
[package]
name = "rafx"
version = "0.0.16"
authors = ["Philip Degarmo <aclysma@gmail.com>"]
edition = "2021"
description = "Rendering framework built on an extensible asset pipeline"
license = "MIT OR Apache-2.0"
readme = "../README.md"
repository = "https://github.com/aclysma/rafx"
homepage = "https://github.com/aclysma/rafx"
keywords = ["game", "rendering", "graphics"]
categories = ["game-development", "game-engines", "graphics", "multimedia", "rendering::engine"]

[dependencies]
rafx-base = { version = "0.0.16", path = "../rafx-base" }
rafx-api = { version = "0.0.16", path = "../rafx-api" }
rafx-framework = { version = "0.0.16", path = "../rafx-framework", optional = true }
rafx-assets = { version = "0.0.16", path = "../rafx-assets", optional = true }
rafx-renderer = { version = "0.0.16", path = "../rafx-renderer", optional = true }
rafx-visibility = { version = "0.0.16", path = "../rafx-visibility" }

[dev-dependencies]
log = "0.4"
env_logger = "0.6"
legion = { version = "0.4.0", default-features = false }
sdl2 = { version = "0.36.0", features = ["raw-window-handle", "bundled", "static-link"] }
sdl2-sys = "0.36.0"
ash = "0.32"
glam = "0.13.1"
profiling = "1.0.1"
bincode = "1.3.1"
hydrate = { version = "0.0.2", features = ["loader"] }

[features]
default = []

#
# Backends
#
#TODO: There is currently no way to enable backend-specific feature flags in rafx-renderer without enabling
# rafx-renderer. When weak-dep-features https://github.com/rust-lang/cargo/issues/8832 is stabilized we can fix this.
# For now, the workaround for users not wanting to include higher-level crates is to use the crates pulled in by the top
# level crate directly.
rafx-empty = ["rafx-api/rafx-empty", "rafx-renderer/rafx-empty"]
rafx-dx12 = ["rafx-api/rafx-dx12", "rafx-renderer/rafx-dx12"]
rafx-vulkan = ["rafx-api/rafx-vulkan", "rafx-renderer/rafx-vulkan"]
rafx-metal = ["rafx-api/rafx-metal", "rafx-renderer/rafx-metal"]
rafx-gles2 = ["rafx-api/rafx-gles2", "rafx-renderer/rafx-gles2"]
rafx-gles3 = ["rafx-api/rafx-gles3", "rafx-renderer/rafx-gles3"]

# Vulkan-specific feature, use statically-linked vulkan instead of dynamically loading it
static-vulkan = ["rafx-api/static-vulkan"]

# These control how much of the library (and dependencies) we include
# API/Base: (Always included) Raw graphics API abstraction with multiple backends. Some data structures.
# Nodes: A data structure and job system for gathering and drawing renderables. Includes the concepts of views and
#        phases.
# Resources: Object lifetime tracking and render graph
# Assets: Integrates hydrate to provide a full asset pipeline
#nodes = ["rafx-nodes", "rafx-visibility"]
framework = ["rafx-framework"]
assets = ["rafx-assets", "framework"]
renderer = ["rafx-renderer", "assets"]
basis-universal = ["rafx-assets/basis-universal"]
dds = ["rafx-assets/dds"]

#
# Examples
#

[[example]]
name = "renderer_triangle"
path = "../rafx/examples/renderer_triangle/renderer_triangle.rs"
required-features = ["renderer"]

[[example]]
name = "api_triangle"
path = "examples/api_triangle/api_triangle.rs"
required-features = []

[[example]]
name = "framework_triangle"
path = "examples/framework_triangle/framework_triangle.rs"
required-features = ["framework"]

[[example]]
name = "asset_triangle"
path = "examples/asset_triangle/asset_triangle.rs"
required-features = ["assets"]

[package.metadata.docs.rs]
features = ["rafx-vulkan", "framework", "assets", "renderer"]