aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--stockton-render/Cargo.toml1
-rw-r--r--stockton-render/src/level.rs10
-rw-r--r--stockton-skeleton/src/error.rs11
3 files changed, 14 insertions, 8 deletions
diff --git a/stockton-render/Cargo.toml b/stockton-render/Cargo.toml
index e6ac094..1329443 100644
--- a/stockton-render/Cargo.toml
+++ b/stockton-render/Cargo.toml
@@ -20,3 +20,4 @@ legion = { version = "^0.3" }
log = "0.4.0"
winit = "^0.21"
nalgebra-glm = "^0.6"
+thiserror = "1.0.25"
diff --git a/stockton-render/src/level.rs b/stockton-render/src/level.rs
index 0c88a0b..c9a8155 100644
--- a/stockton-render/src/level.rs
+++ b/stockton-render/src/level.rs
@@ -15,7 +15,7 @@ use stockton_skeleton::{
},
context::RenderingContext,
draw_passes::{util::TargetSpecificResources, DrawPass, IntoDrawPass, PassPosition},
- error::{LevelError, LockPoisoned},
+ error::LockPoisoned,
mem::{DataPool, DepthBufferPool, StagingPool, TexturesPool},
queue_negotiator::QueueNegotiator,
texture::{resolver::TextureResolver, TexLoadQueue, TextureLoadConfig, TextureRepo},
@@ -49,6 +49,7 @@ use hal::{
};
use legion::{Entity, IntoQuery};
use shaderc::ShaderKind;
+use thiserror::Error;
/// The Vertexes that go to the shader
#[derive(Debug, Clone, Copy)]
@@ -468,3 +469,10 @@ where
])
}
}
+
+/// Indicates an issue with the level object being used
+#[derive(Debug, Error)]
+pub enum LevelError {
+ #[error("Referential Integrity broken")]
+ BadReference,
+}
diff --git a/stockton-skeleton/src/error.rs b/stockton-skeleton/src/error.rs
index 15df7ff..d9d0ceb 100644
--- a/stockton-skeleton/src/error.rs
+++ b/stockton-skeleton/src/error.rs
@@ -2,6 +2,8 @@
use thiserror::Error;
+/// An error caused by a lock being poisoned.
+/// This indicates an issue somewhere else, in another thread.
#[derive(Error, Debug)]
pub enum LockPoisoned {
#[error("Device lock poisoned")]
@@ -51,6 +53,7 @@ pub enum EnvironmentError {
MemoryPoolMissing,
}
+/// Indicates invalid usage of an API.
#[derive(Debug, Error)]
pub enum UsageError {
#[error("Attempt to create mappable memory block from non-mappable memory")]
@@ -60,13 +63,7 @@ pub enum UsageError {
QueueNegotiatorMisuse,
}
-/// Indicates an issue with the level object being used
-#[derive(Debug, Error)]
-pub enum LevelError {
- #[error("Referential Integrity broken")]
- BadReference,
-}
-
+/// Displays an error with full backtrace
pub fn full_error_display(err: anyhow::Error) -> String {
let cont = err
.chain()