Skip to content

Commit 46ad0b7

Browse files
Remove thiserror from bevy_pbr (#15767)
# Objective - Contributes to #15460 ## Solution - Removed `thiserror` from `bevy_pbr`
1 parent 80fe269 commit 46ad0b7

File tree

4 files changed

+21
-20
lines changed

4 files changed

+21
-20
lines changed

crates/bevy_pbr/Cargo.toml

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ shader_format_glsl = ["bevy_render/shader_format_glsl"]
1818
trace = ["bevy_render/trace"]
1919
ios_simulator = ["bevy_render/ios_simulator"]
2020
# Enables the meshlet renderer for dense high-poly scenes (experimental)
21-
meshlet = ["dep:lz4_flex", "dep:thiserror", "dep:range-alloc", "dep:bevy_tasks"]
21+
meshlet = ["dep:lz4_flex", "dep:range-alloc", "dep:bevy_tasks"]
2222
# Enables processing meshes into meshlet meshes
2323
meshlet_processor = [
2424
"meshlet",
@@ -54,7 +54,11 @@ fixedbitset = "0.5"
5454
lz4_flex = { version = "0.11", default-features = false, features = [
5555
"frame",
5656
], optional = true }
57-
thiserror = { version = "1", optional = true }
57+
derive_more = { version = "1", default-features = false, features = [
58+
"error",
59+
"from",
60+
"display",
61+
] }
5862
range-alloc = { version = "0.1.3", optional = true }
5963
meshopt = { version = "0.3.0", optional = true }
6064
metis = { version = "0.2", optional = true }

crates/bevy_pbr/src/mesh_material.rs

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ use bevy_asset::{AssetId, Handle};
33
use bevy_derive::{Deref, DerefMut};
44
use bevy_ecs::{component::Component, reflect::ReflectComponent};
55
use bevy_reflect::{std_traits::ReflectDefault, Reflect};
6+
use derive_more::derive::From;
67

78
/// A [material](Material) for a [`Mesh3d`].
89
///
@@ -67,7 +68,7 @@ use bevy_reflect::{std_traits::ReflectDefault, Reflect};
6768
/// ```
6869
///
6970
/// [`StandardMaterial`]: crate::StandardMaterial
70-
#[derive(Component, Clone, Debug, Deref, DerefMut, Reflect, PartialEq, Eq)]
71+
#[derive(Component, Clone, Debug, Deref, DerefMut, Reflect, PartialEq, Eq, From)]
7172
#[reflect(Component, Default)]
7273
#[require(HasMaterial3d)]
7374
pub struct MeshMaterial3d<M: Material>(pub Handle<M>);
@@ -78,12 +79,6 @@ impl<M: Material> Default for MeshMaterial3d<M> {
7879
}
7980
}
8081

81-
impl<M: Material> From<Handle<M>> for MeshMaterial3d<M> {
82-
fn from(handle: Handle<M>) -> Self {
83-
Self(handle)
84-
}
85-
}
86-
8782
impl<M: Material> From<MeshMaterial3d<M>> for AssetId<M> {
8883
fn from(material: MeshMaterial3d<M>) -> Self {
8984
material.id()

crates/bevy_pbr/src/meshlet/asset.rs

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ use bevy_math::{Vec2, Vec3};
88
use bevy_reflect::TypePath;
99
use bevy_tasks::block_on;
1010
use bytemuck::{Pod, Zeroable};
11+
use derive_more::derive::{Display, Error, From};
1112
use lz4_flex::frame::{FrameDecoder, FrameEncoder};
1213
use std::io::{Read, Write};
1314

@@ -194,16 +195,16 @@ impl AssetLoader for MeshletMeshLoader {
194195
}
195196
}
196197

197-
#[derive(thiserror::Error, Debug)]
198+
#[derive(Error, Display, Debug, From)]
198199
pub enum MeshletMeshSaveOrLoadError {
199-
#[error("file was not a MeshletMesh asset")]
200+
#[display("file was not a MeshletMesh asset")]
200201
WrongFileType,
201-
#[error("expected asset version {MESHLET_MESH_ASSET_VERSION} but found version {found}")]
202+
#[display("expected asset version {MESHLET_MESH_ASSET_VERSION} but found version {found}")]
202203
WrongVersion { found: u64 },
203-
#[error("failed to compress or decompress asset data")]
204-
CompressionOrDecompression(#[from] lz4_flex::frame::Error),
205-
#[error("failed to read or write asset data")]
206-
Io(#[from] std::io::Error),
204+
#[display("failed to compress or decompress asset data")]
205+
CompressionOrDecompression(lz4_flex::frame::Error),
206+
#[display("failed to read or write asset data")]
207+
Io(std::io::Error),
207208
}
208209

209210
async fn async_read_u64(reader: &mut dyn Reader) -> Result<u64, std::io::Error> {

crates/bevy_pbr/src/meshlet/from_mesh.rs

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ use bevy_render::{
88
use bevy_utils::HashMap;
99
use bitvec::{order::Lsb0, vec::BitVec, view::BitView};
1010
use core::ops::Range;
11+
use derive_more::derive::{Display, Error};
1112
use itertools::Itertools;
1213
use meshopt::{
1314
build_meshlets, compute_cluster_bounds, compute_meshlet_bounds,
@@ -478,12 +479,12 @@ fn pack2x16snorm(v: Vec2) -> u32 {
478479
}
479480

480481
/// An error produced by [`MeshletMesh::from_mesh`].
481-
#[derive(thiserror::Error, Debug)]
482+
#[derive(Error, Display, Debug)]
482483
pub enum MeshToMeshletMeshConversionError {
483-
#[error("Mesh primitive topology is not TriangleList")]
484+
#[display("Mesh primitive topology is not TriangleList")]
484485
WrongMeshPrimitiveTopology,
485-
#[error("Mesh attributes are not {{POSITION, NORMAL, UV_0}}")]
486+
#[display("Mesh attributes are not {{POSITION, NORMAL, UV_0}}")]
486487
WrongMeshVertexAttributes,
487-
#[error("Mesh has no indices")]
488+
#[display("Mesh has no indices")]
488489
MeshMissingIndices,
489490
}

0 commit comments

Comments
 (0)