aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/components.rs29
1 files changed, 26 insertions, 3 deletions
diff --git a/src/components.rs b/src/components.rs
index 49f4684..7f572e3 100644
--- a/src/components.rs
+++ b/src/components.rs
@@ -5,11 +5,34 @@ use bevy::{
/// Component which, when inserted into an entity with a camera and normal prepass, enables an outline effect for that
/// camera.
-#[derive(Component, ShaderType, ExtractComponent, PartialEq, Clone, Default)]
+#[derive(Component, ShaderType, ExtractComponent, PartialEq, Clone)]
pub struct OutlinePostProcessSettings {
/// Weight of outlines in pixels.
- pub weight: f32,
+ weight: f32,
/// A threshold for normal differences, values below this threshold will not become outlines.
/// Higher values will result in more outlines which may look better on smooth surfaces.
- pub threshold: f32,
+ threshold: f32,
+ /// Whether to use adaptive outlines. White outlines will be drawn around darker objects, while black ones will be drawn around lighter ones.
+ adaptive: u32,
}
+
+impl OutlinePostProcessSettings {
+ /// Create a new instance with the given settings
+ pub fn new(weight: f32, threshold: f32, adaptive: bool) -> Self {
+ Self {
+ weight,
+ threshold,
+ adaptive: adaptive as u32,
+ }
+ }
+}
+
+impl Default for OutlinePostProcessSettings {
+ fn default() -> Self {
+ Self {
+ weight: 1.0,
+ threshold: 0.0,
+ adaptive: 0
+ }
+ }
+} \ No newline at end of file