mirror of
https://github.com/bevyengine/bevy
synced 2024-11-25 14:10:19 +00:00
8adc9e9d6e
# Objective Bevy supports feature gates for each format it supports, but several formats that it loads via the `image` crate do not have feature gates. Additionally, the QOI format is supported by the `image` crate and wasn't available at all. This fixes that. ## Solution The following feature gates are added: * `avif` * `ff` (Farbfeld) * `gif` * `ico` * `qoi` * `tiff` None of these formats are enabled by default, despite the fact that all these formats appeared to be enabled by default before. Since `default-features` was disabled for the `image` crate, it's likely that using any of these formats would have errored by default before this change, although this probably needs additional testing. ## Testing The changes seemed minimal enough that a compile test would be sufficient. ## Migration guide Image formats that previously weren't feature-gated are now feature-gated, meaning they will have to be enabled if you use them: * `avif` * `ff` (Farbfeld) * `gif` * `ico` * `tiff` Additionally, the `qoi` feature has been added to support loading QOI format images. Previously, these formats appeared in the enum by default, but weren't actually enabled via the `image` crate, potentially resulting in weird bugs. Now, you should be able to add these features to your projects to support them properly.
124 lines
4.2 KiB
TOML
124 lines
4.2 KiB
TOML
[package]
|
|
name = "bevy_render"
|
|
version = "0.15.0-dev"
|
|
edition = "2021"
|
|
description = "Provides rendering functionality for Bevy Engine"
|
|
homepage = "https://bevyengine.org"
|
|
repository = "https://github.com/bevyengine/bevy"
|
|
license = "MIT OR Apache-2.0"
|
|
keywords = ["bevy"]
|
|
|
|
[features]
|
|
# Texture formats (require more than just image support)
|
|
basis-universal = ["dep:basis-universal", "bevy_image/basis-universal"]
|
|
dds = ["bevy_image/dds"]
|
|
exr = ["bevy_image/exr"]
|
|
hdr = ["bevy_image/hdr"]
|
|
ktx2 = ["dep:ktx2", "bevy_image/ktx2"]
|
|
|
|
multi_threaded = ["bevy_tasks/multi_threaded"]
|
|
|
|
shader_format_glsl = ["naga/glsl-in", "naga/wgsl-out", "naga_oil/glsl"]
|
|
shader_format_spirv = ["wgpu/spirv", "naga/spv-in", "naga/spv-out"]
|
|
|
|
# Enable SPIR-V shader passthrough
|
|
spirv_shader_passthrough = []
|
|
|
|
trace = ["profiling"]
|
|
tracing-tracy = []
|
|
ci_limits = []
|
|
webgl = ["wgpu/webgl"]
|
|
webgpu = ["wgpu/webgpu"]
|
|
ios_simulator = []
|
|
|
|
[dependencies]
|
|
# bevy
|
|
bevy_app = { path = "../bevy_app", version = "0.15.0-dev" }
|
|
bevy_asset = { path = "../bevy_asset", version = "0.15.0-dev" }
|
|
bevy_color = { path = "../bevy_color", version = "0.15.0-dev", features = [
|
|
"serialize",
|
|
"wgpu-types",
|
|
] }
|
|
bevy_core = { path = "../bevy_core", version = "0.15.0-dev" }
|
|
bevy_derive = { path = "../bevy_derive", version = "0.15.0-dev" }
|
|
bevy_diagnostic = { path = "../bevy_diagnostic", version = "0.15.0-dev" }
|
|
bevy_ecs = { path = "../bevy_ecs", version = "0.15.0-dev" }
|
|
bevy_encase_derive = { path = "../bevy_encase_derive", version = "0.15.0-dev" }
|
|
bevy_hierarchy = { path = "../bevy_hierarchy", version = "0.15.0-dev" }
|
|
bevy_math = { path = "../bevy_math", version = "0.15.0-dev" }
|
|
bevy_reflect = { path = "../bevy_reflect", version = "0.15.0-dev", features = [
|
|
"bevy",
|
|
] }
|
|
bevy_render_macros = { path = "macros", version = "0.15.0-dev" }
|
|
bevy_time = { path = "../bevy_time", version = "0.15.0-dev" }
|
|
bevy_transform = { path = "../bevy_transform", version = "0.15.0-dev" }
|
|
bevy_window = { path = "../bevy_window", version = "0.15.0-dev" }
|
|
bevy_utils = { path = "../bevy_utils", version = "0.15.0-dev" }
|
|
bevy_tasks = { path = "../bevy_tasks", version = "0.15.0-dev" }
|
|
bevy_image = { path = "../bevy_image", version = "0.15.0-dev" }
|
|
bevy_mesh = { path = "../bevy_mesh", version = "0.15.0-dev" }
|
|
|
|
# rendering
|
|
image = { version = "0.25.2", default-features = false }
|
|
|
|
# misc
|
|
codespan-reporting = "0.11.0"
|
|
# `fragile-send-sync-non-atomic-wasm` feature means we can't use Wasm threads for rendering
|
|
# It is enabled for now to avoid having to do a significant overhaul of the renderer just for wasm.
|
|
# When the 'atomics' feature is enabled `fragile-send-sync-non-atomic` does nothing
|
|
# and Bevy instead wraps `wgpu` types to verify they are not used off their origin thread.
|
|
wgpu = { version = "22", default-features = false, features = [
|
|
"wgsl",
|
|
"dx12",
|
|
"metal",
|
|
"naga-ir",
|
|
"fragile-send-sync-non-atomic-wasm",
|
|
] }
|
|
naga = { version = "22", features = ["wgsl-in"] }
|
|
serde = { version = "1", features = ["derive"] }
|
|
bytemuck = { version = "1.5", features = ["derive", "must_cast"] }
|
|
downcast-rs = "1.2.0"
|
|
thiserror = "1.0"
|
|
futures-lite = "2.0.1"
|
|
ktx2 = { version = "0.3.0", optional = true }
|
|
# For transcoding of UASTC/ETC1S universal formats, and for .basis file support
|
|
basis-universal = { version = "0.3.0", optional = true }
|
|
encase = { version = "0.10", features = ["glam"] }
|
|
# For wgpu profiling using tracing. Use `RUST_LOG=info` to also capture the wgpu spans.
|
|
profiling = { version = "1", features = [
|
|
"profile-with-tracing",
|
|
], optional = true }
|
|
async-channel = "2.3.0"
|
|
nonmax = "0.5"
|
|
smallvec = { version = "1.11", features = ["const_new"] }
|
|
offset-allocator = "0.2"
|
|
|
|
[target.'cfg(not(target_arch = "wasm32"))'.dependencies]
|
|
# Omit the `glsl` feature in non-WebAssembly by default.
|
|
naga_oil = { version = "0.15", default-features = false, features = [
|
|
"test_shader",
|
|
] }
|
|
|
|
[target.'cfg(target_arch = "wasm32")'.dependencies]
|
|
naga_oil = "0.15"
|
|
js-sys = "0.3"
|
|
web-sys = { version = "0.3.67", features = [
|
|
'Blob',
|
|
'Document',
|
|
'Element',
|
|
'HtmlElement',
|
|
'Node',
|
|
'Url',
|
|
'Window',
|
|
] }
|
|
wasm-bindgen = "0.2"
|
|
|
|
[target.'cfg(all(target_arch = "wasm32", target_feature = "atomics"))'.dependencies]
|
|
send_wrapper = "0.6.0"
|
|
|
|
[lints]
|
|
workspace = true
|
|
|
|
[package.metadata.docs.rs]
|
|
rustdoc-args = ["-Zunstable-options", "--generate-link-to-definition"]
|
|
all-features = true
|