
- bevy_image fails to build without default features:
```
error[E0277]: `image::Image` does not implement `TypePath` so cannot provide static type path information
--> crates/bevy_image/src/image.rs:341:12
|
341 | pub struct Image {
| ^^^^^ the trait `bevy_reflect::type_path::TypePath` is not implemented for `image::Image`
|
= note: consider annotating `image::Image` with `#[derive(Reflect)]` or `#[derive(TypePath)]`
= help: the following other types implement trait `bevy_reflect::type_path::TypePath`:
&'static Location<'static>
&'static T
&'static mut T
()
(P,)
(P1, P0)
(P1, P2, P0)
(P1, P2, P3, P0)
and 146 others
note: required by a bound in `Asset`
--> /home/runner/work/bevy-releasability/bevy-releasability/crates/bevy_asset/src/lib.rs:415:43
|
415 | pub trait Asset: VisitAssetDependencies + TypePath + Send + Sync + 'static {}
| ^^^^^^^^ required by this bound in `Asset`
= note: `Asset` is a "sealed trait", because to implement it you also need to implement `bevy_reflect::type_path::TypePath`, which is not accessible; this is usually done to force you to use one of the provided types that already implement it
= help: the following types implement the trait:
bevy_asset::AssetIndex
bevy_asset::LoadedUntypedAsset
bevy_asset::AssetEvent<A>
bevy_asset::LoadedFolder
bevy_asset::StrongHandle
bevy_asset::Handle<A>
bevy_asset::AssetId<A>
bevy_asset::AssetPath<'a>
and 148 others
error[E0277]: `image::Image` does not implement `TypePath` so cannot provide static type path information
--> crates/bevy_image/src/image_loader.rs:121:18
|
121 | type Asset = Image;
| ^^^^^ the trait `bevy_reflect::type_path::TypePath` is not implemented for `image::Image`
|
= note: consider annotating `image::Image` with `#[derive(Reflect)]` or `#[derive(TypePath)]`
= help: the following other types implement trait `bevy_reflect::type_path::TypePath`:
&'static Location<'static>
&'static T
&'static mut T
()
(P,)
(P1, P0)
(P1, P2, P0)
(P1, P2, P3, P0)
and 146 others
= note: required for `<ImageLoader as AssetLoader>::Asset` to implement `Asset`
note: required by a bound in `bevy_asset::AssetLoader::Asset`
--> /home/runner/work/bevy-releasability/bevy-releasability/crates/bevy_asset/src/loader.rs:33:17
|
33 | type Asset: Asset;
| ^^^^^ required by this bound in `AssetLoader::Asset`
error[E0277]: `texture_atlas::TextureAtlasLayout` does not implement `TypePath` so cannot provide static type path information
--> crates/bevy_image/src/texture_atlas.rs💯12
|
100 | pub struct TextureAtlasLayout {
| ^^^^^^^^^^^^^^^^^^ the trait `bevy_reflect::type_path::TypePath` is not implemented for `texture_atlas::TextureAtlasLayout`
|
= note: consider annotating `texture_atlas::TextureAtlasLayout` with `#[derive(Reflect)]` or `#[derive(TypePath)]`
= help: the following other types implement trait `bevy_reflect::type_path::TypePath`:
&'static Location<'static>
&'static T
&'static mut T
()
(P,)
(P1, P0)
(P1, P2, P0)
(P1, P2, P3, P0)
and 146 others
note: required by a bound in `Asset`
--> /home/runner/work/bevy-releasability/bevy-releasability/crates/bevy_asset/src/lib.rs:415:43
|
415 | pub trait Asset: VisitAssetDependencies + TypePath + Send + Sync + 'static {}
| ^^^^^^^^ required by this bound in `Asset`
= note: `Asset` is a "sealed trait", because to implement it you also need to implement `bevy_reflect::type_path::TypePath`, which is not accessible; this is usually done to force you to use one of the provided types that already implement it
= help: the following types implement the trait:
bevy_asset::AssetIndex
bevy_asset::LoadedUntypedAsset
bevy_asset::AssetEvent<A>
bevy_asset::LoadedFolder
bevy_asset::StrongHandle
bevy_asset::Handle<A>
bevy_asset::AssetId<A>
bevy_asset::AssetPath<'a>
and 148 others
```
- `Asset` trait depends on `TypePath` which is in bevy_reflect. it's
usually implemented by the `Reflect` derive
- make bevy_reflect not an optional dependency
- when feature `bevy_reflect` is not enabled, derive `TypePath` directly
91 lines
2.6 KiB
TOML
91 lines
2.6 KiB
TOML
[package]
|
|
name = "bevy_image"
|
|
version = "0.16.0-rc.2"
|
|
edition = "2024"
|
|
description = "Provides image types for Bevy Engine"
|
|
homepage = "https://bevyengine.org"
|
|
repository = "https://github.com/bevyengine/bevy"
|
|
license = "MIT OR Apache-2.0"
|
|
keywords = ["bevy"]
|
|
|
|
[features]
|
|
default = ["bevy_reflect"]
|
|
|
|
# bevy_reflect can't optional as it's needed for TypePath
|
|
# this feature only control reflection in bevy_image
|
|
bevy_reflect = ["bevy_math/bevy_reflect"]
|
|
|
|
# Image formats
|
|
basis-universal = ["dep:basis-universal"]
|
|
bmp = ["image/bmp"]
|
|
dds = ["ddsfile"]
|
|
exr = ["image/exr"]
|
|
ff = ["image/ff"]
|
|
gif = ["image/gif"]
|
|
hdr = ["image/hdr"]
|
|
ktx2 = ["dep:ktx2"]
|
|
ico = ["image/ico"]
|
|
jpeg = ["image/jpeg"]
|
|
png = ["image/png"]
|
|
pnm = ["image/pnm"]
|
|
qoi = ["image/qoi"]
|
|
tga = ["image/tga"]
|
|
tiff = ["image/tiff"]
|
|
webp = ["image/webp"]
|
|
serialize = [
|
|
"bevy_reflect",
|
|
"bevy_platform_support/serialize",
|
|
"bevy_utils/serde",
|
|
]
|
|
|
|
# For ktx2 supercompression
|
|
zlib = ["flate2"]
|
|
zstd = ["ruzstd"]
|
|
|
|
[dependencies]
|
|
# bevy
|
|
bevy_app = { path = "../bevy_app", version = "0.16.0-rc.2" }
|
|
bevy_asset = { path = "../bevy_asset", version = "0.16.0-rc.2" }
|
|
bevy_color = { path = "../bevy_color", version = "0.16.0-rc.2", features = [
|
|
"serialize",
|
|
"wgpu-types",
|
|
] }
|
|
bevy_math = { path = "../bevy_math", version = "0.16.0-rc.2" }
|
|
bevy_reflect = { path = "../bevy_reflect", version = "0.16.0-rc.2" }
|
|
bevy_utils = { path = "../bevy_utils", version = "0.16.0-rc.2" }
|
|
bevy_platform_support = { path = "../bevy_platform_support", version = "0.16.0-rc.2", default-features = false, features = [
|
|
"std",
|
|
] }
|
|
|
|
# rendering
|
|
image = { version = "0.25.2", default-features = false }
|
|
|
|
# misc
|
|
bitflags = { version = "2.3", features = ["serde"] }
|
|
bytemuck = { version = "1.5" }
|
|
wgpu-types = { version = "24", default-features = false }
|
|
serde = { version = "1", features = ["derive"] }
|
|
thiserror = { version = "2", default-features = false }
|
|
futures-lite = "2.0.1"
|
|
guillotiere = "0.6.0"
|
|
rectangle-pack = "0.4"
|
|
ddsfile = { version = "0.5.2", optional = true }
|
|
ktx2 = { version = "0.3.0", optional = true }
|
|
# For ktx2 supercompression
|
|
flate2 = { version = "1.0.22", optional = true }
|
|
ruzstd = { version = "0.8.0", optional = true }
|
|
# For transcoding of UASTC/ETC1S universal formats, and for .basis file support
|
|
basis-universal = { version = "0.3.0", optional = true }
|
|
tracing = { version = "0.1", default-features = false, features = ["std"] }
|
|
half = { version = "2.4.1" }
|
|
|
|
[dev-dependencies]
|
|
bevy_ecs = { path = "../bevy_ecs", version = "0.16.0-rc.2" }
|
|
|
|
[lints]
|
|
workspace = true
|
|
|
|
[package.metadata.docs.rs]
|
|
rustdoc-args = ["-Zunstable-options", "--generate-link-to-definition"]
|
|
all-features = true
|