diff --git a/Cargo.toml b/Cargo.toml index d9a2a8ebe..45b164f0c 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -55,16 +55,16 @@ ddsfile = "0.5.0" rayon = "1.5.1" tbc = "0.3.0" bitflags = "2.2.1" -glow = "0.12" +glow = "0.13.1" walkdir = "2.3.2" ron = "0.8.0" fxhash = "0.2.1" -strum = "0.25.0" -strum_macros = "0.25.0" +strum = "0.26.1" +strum_macros = "0.26.1" clap = { version = "4", features = ["derive"] } winit = { version = "0.29.2", features = ["serde"] } half = "2.2.1" -fast_image_resize = "2.7.0" +fast_image_resize = "3.0.4" base64 = "0.21.0" [features] diff --git a/editor/Cargo.toml b/editor/Cargo.toml index 3bff69e02..fcad2add1 100644 --- a/editor/Cargo.toml +++ b/editor/Cargo.toml @@ -17,9 +17,9 @@ fyrox = { version = "0.33.0", path = ".." } lazy_static = "1.4.0" ron = "0.8.0" serde = "^1.0.0" -toml = "0.7.0" -strum = "0.25.0" -strum_macros = "0.25.0" +toml = "0.8.10" +strum = "0.26.1" +strum_macros = "0.26.1" open = "5" rust-fuzzy-search = "0.1.1" cargo_metadata = "0.18.1" diff --git a/editor/src/export.rs b/editor/src/export.rs index 9d7160b8f..6aded1ff2 100644 --- a/editor/src/export.rs +++ b/editor/src/export.rs @@ -49,7 +49,7 @@ use std::{ time::Duration, }; use strum::VariantNames; -use strum_macros::EnumVariantNames; +use strum_macros::VariantNames; #[derive(Reflect, Debug, Clone)] struct ExportOptions { @@ -73,7 +73,7 @@ impl Default for ExportOptions { } } -#[derive(Copy, Clone, EnumVariantNames, Default, Debug)] +#[derive(Copy, Clone, VariantNames, Default, Debug)] enum TargetPlatform { #[default] PC, diff --git a/editor/src/settings/general.rs b/editor/src/settings/general.rs index 410a911fa..cf4cd9832 100644 --- a/editor/src/settings/general.rs +++ b/editor/src/settings/general.rs @@ -1,6 +1,6 @@ use fyrox::core::{reflect::prelude::*, uuid_provider}; use serde::{Deserialize, Serialize}; -use strum_macros::{AsRefStr, EnumString, EnumVariantNames}; +use strum_macros::{AsRefStr, EnumString, VariantNames}; #[derive(Deserialize, Serialize, PartialEq, Clone, Debug, Reflect)] pub struct GeneralSettings { @@ -42,7 +42,7 @@ fn default_script_editor() -> ScriptEditor { Reflect, AsRefStr, EnumString, - EnumVariantNames, + VariantNames, )] pub enum ScriptEditor { SystemDefault, diff --git a/fyrox-animation/Cargo.toml b/fyrox-animation/Cargo.toml index dfc7abfb3..2f2a2dc65 100644 --- a/fyrox-animation/Cargo.toml +++ b/fyrox-animation/Cargo.toml @@ -17,7 +17,7 @@ rust-version = "1.72" [dependencies] fyrox-core = { version = "0.27.0", path = "../fyrox-core" } -strum = "0.25.0" -strum_macros = "0.25.0" +strum = "0.26.1" +strum_macros = "0.26.1" fxhash = "0.2.1" spade = "2.1.0" \ No newline at end of file diff --git a/fyrox-animation/src/machine/parameter.rs b/fyrox-animation/src/machine/parameter.rs index dfb7ea452..97cdfde10 100644 --- a/fyrox-animation/src/machine/parameter.rs +++ b/fyrox-animation/src/machine/parameter.rs @@ -7,12 +7,12 @@ use std::{ cell::{Cell, RefCell}, ops::{Deref, DerefMut}, }; -use strum_macros::{AsRefStr, EnumString, EnumVariantNames}; +use strum_macros::{AsRefStr, EnumString, VariantNames}; /// Machine parameter is a named variable of a fixed type. Machine uses various parameters for specific actions. For example /// Rule parameter is used to check where transition from a state to state is possible, `Weight` parameters are used to be /// a source real numbers that are used to calculate blend weights, etc. -#[derive(Copy, Clone, Debug, PartialEq, Reflect, Visit, EnumVariantNames, EnumString, AsRefStr)] +#[derive(Copy, Clone, Debug, PartialEq, Reflect, Visit, VariantNames, EnumString, AsRefStr)] pub enum Parameter { /// Weight parameter is used to control blend weight in animation blending nodes. Weight(f32), @@ -36,7 +36,7 @@ impl Default for Parameter { } /// Specific animation pose weight. -#[derive(Debug, Visit, Clone, PartialEq, Reflect, EnumVariantNames, EnumString, AsRefStr)] +#[derive(Debug, Visit, Clone, PartialEq, Reflect, VariantNames, EnumString, AsRefStr)] pub enum PoseWeight { /// Fixed scalar value. Should not be negative, negative numbers will probably result in weird visual artifacts. Constant(f32), diff --git a/fyrox-animation/src/machine/state.rs b/fyrox-animation/src/machine/state.rs index 430c74a90..3ea17477e 100644 --- a/fyrox-animation/src/machine/state.rs +++ b/fyrox-animation/src/machine/state.rs @@ -17,7 +17,7 @@ use std::{ cell::Ref, ops::{Deref, DerefMut}, }; -use strum_macros::{AsRefStr, EnumString, EnumVariantNames}; +use strum_macros::{AsRefStr, EnumString, VariantNames}; #[doc(hidden)] #[derive(Default, Debug, Visit, Reflect, Clone, PartialEq)] @@ -49,9 +49,7 @@ impl DerefMut for StateActionWrapper { /// state and one-shot attack state. In this case, you need to use [`StateAction::RewindAnimation`] /// to tell the engine to automatically rewind the animation before using it. Otherwise, when the /// transition will happen, the animation could be ended already and you'll get "frozen" animation. -#[derive( - Default, Debug, Visit, Reflect, Clone, PartialEq, EnumVariantNames, EnumString, AsRefStr, -)] +#[derive(Default, Debug, Visit, Reflect, Clone, PartialEq, VariantNames, EnumString, AsRefStr)] pub enum StateAction { /// No action. #[default] diff --git a/fyrox-animation/src/machine/transition.rs b/fyrox-animation/src/machine/transition.rs index 728a8fad1..b28c4dc79 100644 --- a/fyrox-animation/src/machine/transition.rs +++ b/fyrox-animation/src/machine/transition.rs @@ -8,7 +8,7 @@ use crate::{ use fyrox_core::uuid::{uuid, Uuid}; use fyrox_core::{NameProvider, TypeUuidProvider}; use std::any::{type_name, Any, TypeId}; -use strum_macros::{AsRefStr, EnumString, EnumVariantNames}; +use strum_macros::{AsRefStr, EnumString, VariantNames}; macro_rules! define_two_args_node { ($(#[$meta:meta])* $name:ident) => { @@ -293,7 +293,7 @@ impl Reflect for NotNode { /// /// assert_eq!(transition_logic.calculate_value(¶meters, &AnimationContainer::default()), true); /// ``` -#[derive(Debug, Visit, Clone, Reflect, PartialEq, AsRefStr, EnumString, EnumVariantNames)] +#[derive(Debug, Visit, Clone, Reflect, PartialEq, AsRefStr, EnumString, VariantNames)] pub enum LogicNode { /// Fetches a value of `Rule` parameter and returns its value. `false` if the parameter is not found. Parameter(String), diff --git a/fyrox-animation/src/spritesheet/mod.rs b/fyrox-animation/src/spritesheet/mod.rs index 5925dad99..29b5522d8 100644 --- a/fyrox-animation/src/spritesheet/mod.rs +++ b/fyrox-animation/src/spritesheet/mod.rs @@ -16,7 +16,7 @@ use crate::{ spritesheet::signal::Signal, }; use std::collections::vec_deque::VecDeque; -use strum_macros::{AsRefStr, EnumString, EnumVariantNames}; +use strum_macros::{AsRefStr, EnumString, VariantNames}; pub mod signal; @@ -26,9 +26,7 @@ pub trait SpriteSheetTexture: Clone + Visit + Reflect + 'static {} impl SpriteSheetTexture for T {} /// Animation playback status. -#[derive( - Visit, Reflect, Copy, Clone, Eq, PartialEq, Debug, AsRefStr, EnumString, EnumVariantNames, -)] +#[derive(Visit, Reflect, Copy, Clone, Eq, PartialEq, Debug, AsRefStr, EnumString, VariantNames)] pub enum Status { /// Animation is playing. Playing, diff --git a/fyrox-sound/Cargo.toml b/fyrox-sound/Cargo.toml index 843b54623..9f3407f9f 100644 --- a/fyrox-sound/Cargo.toml +++ b/fyrox-sound/Cargo.toml @@ -22,7 +22,7 @@ lewton = "0.10.2" ogg = "0.8.0" hrtf = "0.8.0" hound = "3.4.0" -strum = "0.25.0" -strum_macros = "0.25.0" +strum = "0.26.1" +strum_macros = "0.26.1" tinyaudio = "0.1.2" serde = { version = "1", features = ["derive"] } \ No newline at end of file diff --git a/fyrox-sound/src/context.rs b/fyrox-sound/src/context.rs index 9cebfb64c..fc29dd4e9 100644 --- a/fyrox-sound/src/context.rs +++ b/fyrox-sound/src/context.rs @@ -27,16 +27,14 @@ use std::{ sync::{Arc, Mutex, MutexGuard}, time::Duration, }; -use strum_macros::{AsRefStr, EnumString, EnumVariantNames}; +use strum_macros::{AsRefStr, EnumString, VariantNames}; /// Sample rate for output device. /// TODO: Make this configurable, for now its set to most commonly used sample rate of 44100 Hz. pub const SAMPLE_RATE: u32 = 44100; /// Distance model defines how volume of sound will decay when distance to listener changes. -#[derive( - Copy, Clone, Debug, Eq, PartialEq, Reflect, Visit, AsRefStr, EnumString, EnumVariantNames, -)] +#[derive(Copy, Clone, Debug, Eq, PartialEq, Reflect, Visit, AsRefStr, EnumString, VariantNames)] #[repr(u32)] pub enum DistanceModel { /// No distance attenuation at all. diff --git a/fyrox-sound/src/effects/mod.rs b/fyrox-sound/src/effects/mod.rs index 4f1e7ca74..68d14a370 100644 --- a/fyrox-sound/src/effects/mod.rs +++ b/fyrox-sound/src/effects/mod.rs @@ -8,7 +8,7 @@ use crate::{ effects::reverb::Reverb, }; use fyrox_core::{reflect::prelude::*, uuid_provider, visitor::prelude::*}; -use strum_macros::{AsRefStr, EnumString, EnumVariantNames}; +use strum_macros::{AsRefStr, EnumString, VariantNames}; pub mod filter; pub mod reverb; @@ -48,7 +48,7 @@ impl EffectRenderTrait for Attenuate { /// Effects is a digital signal processing (DSP) unit that transforms input signal in a specific way. /// For example, [`LowPassFilterEffect`] could be used to muffle audio sources; to create "underwater" /// effect. -#[derive(Debug, Clone, PartialEq, Visit, Reflect, AsRefStr, EnumString, EnumVariantNames)] +#[derive(Debug, Clone, PartialEq, Visit, Reflect, AsRefStr, EnumString, VariantNames)] pub enum Effect { /// See [`Attenuate`] docs for more info. Attenuate(Attenuate), diff --git a/fyrox-sound/src/renderer/mod.rs b/fyrox-sound/src/renderer/mod.rs index 9434bb466..8e69cd864 100644 --- a/fyrox-sound/src/renderer/mod.rs +++ b/fyrox-sound/src/renderer/mod.rs @@ -17,7 +17,7 @@ use fyrox_core::{ uuid_provider, visitor::{Visit, VisitResult, Visitor}, }; -use strum_macros::{AsRefStr, EnumString, EnumVariantNames}; +use strum_macros::{AsRefStr, EnumString, VariantNames}; pub mod hrtf; @@ -25,7 +25,7 @@ pub mod hrtf; // This "large size difference" is not a problem because renderer // can be only one at a time on context. #[allow(clippy::large_enum_variant)] -#[derive(Debug, Clone, AsRefStr, EnumString, EnumVariantNames, Visit, Reflect)] +#[derive(Debug, Clone, AsRefStr, EnumString, VariantNames, Visit, Reflect)] pub enum Renderer { /// Stateless default renderer. Default, diff --git a/fyrox-ui/Cargo.toml b/fyrox-ui/Cargo.toml index d0bd3809b..7c838a39a 100644 --- a/fyrox-ui/Cargo.toml +++ b/fyrox-ui/Cargo.toml @@ -21,12 +21,12 @@ fyrox-resource = { path = "../fyrox-resource", version = "0.11.0" } fyrox-graph = { path = "../fyrox-graph", version = "0.1.0" } fyrox-animation = { path = "../fyrox-animation", version = "0.1.0"} lazy_static = "1.4.0" -copypasta = "0.8.1" -fontdue = "0.7.2" +copypasta = "0.10.1" +fontdue = "0.8.0" notify = "6" fxhash = "0.2.1" -strum = "0.25.0" -strum_macros = "0.25.0" +strum = "0.26.1" +strum_macros = "0.26.1" serde = { version = "1", features = ["derive"] } [features] diff --git a/fyrox-ui/src/absm.rs b/fyrox-ui/src/absm.rs index 769eec902..350b7048a 100644 --- a/fyrox-ui/src/absm.rs +++ b/fyrox-ui/src/absm.rs @@ -15,7 +15,7 @@ use crate::{ use fyrox_animation::machine::Parameter; use fyrox_graph::{SceneGraph, SceneGraphNode}; use std::ops::{Deref, DerefMut}; -use strum_macros::{AsRefStr, EnumString, EnumVariantNames}; +use strum_macros::{AsRefStr, EnumString, VariantNames}; /// UI-specific root motion settings. pub type RootMotionSettings = crate::generic_animation::RootMotionSettings>; @@ -221,7 +221,7 @@ impl AnimationBlendingStateMachineBuilder { TypeUuidProvider, AsRefStr, EnumString, - EnumVariantNames, + VariantNames, )] #[type_uuid(id = "291e8734-47df-408e-8b2c-57bfb941d8ec")] pub enum EventKind { diff --git a/fyrox-ui/src/alignment.rs b/fyrox-ui/src/alignment.rs index 0c3e389b4..d59e2c194 100644 --- a/fyrox-ui/src/alignment.rs +++ b/fyrox-ui/src/alignment.rs @@ -3,22 +3,12 @@ use crate::core::{reflect::prelude::*, visitor::prelude::*}; use fyrox_core::uuid_provider; -use strum_macros::{AsRefStr, EnumString, EnumVariantNames}; +use strum_macros::{AsRefStr, EnumString, VariantNames}; /// Horizontal alignment defines relative location and size of the widget to its parent widget along horizontal /// (X) axis. #[derive( - Copy, - Clone, - PartialEq, - Debug, - Eq, - Default, - Reflect, - Visit, - AsRefStr, - EnumString, - EnumVariantNames, + Copy, Clone, PartialEq, Debug, Eq, Default, Reflect, Visit, AsRefStr, EnumString, VariantNames, )] pub enum HorizontalAlignment { /// Tells the widget to take all available space along horizontal axis and stay at left side of the @@ -41,17 +31,7 @@ uuid_provider!(HorizontalAlignment = "ef571515-ec16-47ad-bfe3-ddc259e2c7d3"); /// Horizontal alignment defines relative location and size of the widget to its parent widget along vertical /// (Y) axis. #[derive( - Copy, - Clone, - PartialEq, - Debug, - Eq, - Default, - Reflect, - Visit, - AsRefStr, - EnumString, - EnumVariantNames, + Copy, Clone, PartialEq, Debug, Eq, Default, Reflect, Visit, AsRefStr, EnumString, VariantNames, )] pub enum VerticalAlignment { /// Tells the widget to take all available space along vertical axis and stay at top side of the diff --git a/fyrox-ui/src/brush.rs b/fyrox-ui/src/brush.rs index aedd991ae..451124d18 100644 --- a/fyrox-ui/src/brush.rs +++ b/fyrox-ui/src/brush.rs @@ -4,7 +4,7 @@ use crate::core::{algebra::Vector2, color::Color, reflect::prelude::*, visitor::prelude::*}; use fyrox_core::uuid_provider; -use strum_macros::{AsRefStr, EnumString, EnumVariantNames}; +use strum_macros::{AsRefStr, EnumString, VariantNames}; /// Gradient point defines a point on a surface with a color. #[derive(Clone, Debug, PartialEq, Reflect, Visit, Default)] @@ -18,7 +18,7 @@ pub struct GradientPoint { uuid_provider!(GradientPoint = "e8503ec6-a1d0-4a9b-ab91-0d3f126254dd"); /// Brush defines a way to fill an arbitrary surface. -#[derive(Clone, Debug, PartialEq, Reflect, Visit, AsRefStr, EnumString, EnumVariantNames)] +#[derive(Clone, Debug, PartialEq, Reflect, Visit, AsRefStr, EnumString, VariantNames)] pub enum Brush { /// A brush, that fills a surface with a solid color. Solid(Color), diff --git a/fyrox-ui/src/formatted_text.rs b/fyrox-ui/src/formatted_text.rs index a628639fe..8b0488c9c 100644 --- a/fyrox-ui/src/formatted_text.rs +++ b/fyrox-ui/src/formatted_text.rs @@ -7,7 +7,7 @@ use crate::{ use fyrox_core::uuid_provider; use fyrox_core::variable::InheritableVariable; use std::ops::Range; -use strum_macros::{AsRefStr, EnumString, EnumVariantNames}; +use strum_macros::{AsRefStr, EnumString, VariantNames}; #[derive(Debug, Clone, Default)] pub struct TextGlyph { @@ -67,7 +67,7 @@ impl TextLine { Reflect, AsRefStr, EnumString, - EnumVariantNames, + VariantNames, )] pub enum WrapMode { /// No wrapping needed. diff --git a/fyrox-ui/src/grid.rs b/fyrox-ui/src/grid.rs index 004593606..a72c48f8c 100644 --- a/fyrox-ui/src/grid.rs +++ b/fyrox-ui/src/grid.rs @@ -18,21 +18,11 @@ use std::{ cell::RefCell, ops::{Deref, DerefMut}, }; -use strum_macros::{AsRefStr, EnumString, EnumVariantNames}; +use strum_macros::{AsRefStr, EnumString, VariantNames}; /// Size mode defines how grid's dimension (see [`GridDimension`]) will behave on layout step. #[derive( - Clone, - Copy, - PartialEq, - Eq, - Debug, - Reflect, - Visit, - Default, - AsRefStr, - EnumString, - EnumVariantNames, + Clone, Copy, PartialEq, Eq, Debug, Reflect, Visit, Default, AsRefStr, EnumString, VariantNames, )] pub enum SizeMode { /// Strict size of the dimension. diff --git a/fyrox-ui/src/inspector/mod.rs b/fyrox-ui/src/inspector/mod.rs index f24cbdff3..ad14676af 100644 --- a/fyrox-ui/src/inspector/mod.rs +++ b/fyrox-ui/src/inspector/mod.rs @@ -369,7 +369,7 @@ pub trait InspectorEnvironment: Any + Send + Sync { /// # BuildContext, UiNode, /// # }; /// # use std::sync::Arc; -/// # use strum_macros::{AsRefStr, EnumString, EnumVariantNames}; +/// # use strum_macros::{AsRefStr, EnumString, VariantNames}; /// # use fyrox_core::uuid_provider; /// /// #[derive(Reflect, Debug, Clone)] @@ -383,7 +383,7 @@ pub trait InspectorEnvironment: Any + Send + Sync { /// /// // Enumeration requires a bit more traits to be implemented. It must provide a way to turn /// // enum into a string. -/// #[derive(Reflect, Debug, Clone, AsRefStr, EnumString, EnumVariantNames)] +/// #[derive(Reflect, Debug, Clone, AsRefStr, EnumString, VariantNames)] /// enum MyEnum { /// SomeVariant, /// YetAnotherVariant { baz: f32 }, diff --git a/fyrox-ui/src/lib.rs b/fyrox-ui/src/lib.rs index 6822bf24f..6fc127a5a 100644 --- a/fyrox-ui/src/lib.rs +++ b/fyrox-ui/src/lib.rs @@ -288,7 +288,7 @@ use std::{ Arc, }, }; -use strum_macros::{AsRefStr, EnumString, EnumVariantNames}; +use strum_macros::{AsRefStr, EnumString, VariantNames}; pub use alignment::*; pub use build::*; @@ -431,7 +431,7 @@ impl RcUiNodeHandle { Deserialize, AsRefStr, EnumString, - EnumVariantNames, + VariantNames, )] pub enum Orientation { /// Vertical orientation. This is default value. diff --git a/fyrox-ui/src/message.rs b/fyrox-ui/src/message.rs index 46581b19b..7a90ee5f4 100644 --- a/fyrox-ui/src/message.rs +++ b/fyrox-ui/src/message.rs @@ -10,7 +10,7 @@ use crate::{ use fyrox_core::uuid_provider; use serde::{Deserialize, Serialize}; use std::{any::Any, cell::Cell, fmt::Debug}; -use strum_macros::{AsRefStr, EnumString, EnumVariantNames}; +use strum_macros::{AsRefStr, EnumString, VariantNames}; /// Defines a new message constructor for a enum variant. It is widely used in this crate to create shortcuts to create /// messages. Why is it needed anyway? Just to reduce boilerplate code as much as possible. @@ -594,7 +594,7 @@ impl KeyboardModifiers { Copy, AsRefStr, EnumString, - EnumVariantNames, + VariantNames, Serialize, Deserialize, Reflect, @@ -1063,7 +1063,7 @@ pub enum KeyCode { Reflect, AsRefStr, EnumString, - EnumVariantNames, + VariantNames, )] pub enum CursorIcon { /// The platform-dependent default cursor. Often rendered as arrow. diff --git a/fyrox-ui/src/text_box.rs b/fyrox-ui/src/text_box.rs index 3a723e52e..cf08193e7 100644 --- a/fyrox-ui/src/text_box.rs +++ b/fyrox-ui/src/text_box.rs @@ -35,7 +35,7 @@ use std::{ ops::{Deref, DerefMut}, sync::Arc, }; -use strum_macros::{AsRefStr, EnumString, EnumVariantNames}; +use strum_macros::{AsRefStr, EnumString, VariantNames}; /// A message that could be used to alternate text box widget's state or receive changes from it. /// @@ -122,7 +122,7 @@ pub struct Position { Reflect, AsRefStr, EnumString, - EnumVariantNames, + VariantNames, TypeUuidProvider, )] #[repr(u32)] diff --git a/fyrox-ui/src/vector_image.rs b/fyrox-ui/src/vector_image.rs index 21c39fbf3..c1b9fe42a 100644 --- a/fyrox-ui/src/vector_image.rs +++ b/fyrox-ui/src/vector_image.rs @@ -17,10 +17,10 @@ use crate::{ use fyrox_core::uuid_provider; use fyrox_core::variable::InheritableVariable; use std::ops::{Deref, DerefMut}; -use strum_macros::{AsRefStr, EnumString, EnumVariantNames}; +use strum_macros::{AsRefStr, EnumString, VariantNames}; /// Primitive is a simplest shape, that consists of one or multiple lines of the same thickness. -#[derive(Clone, Debug, PartialEq, Visit, Reflect, AsRefStr, EnumString, EnumVariantNames)] +#[derive(Clone, Debug, PartialEq, Visit, Reflect, AsRefStr, EnumString, VariantNames)] pub enum Primitive { /// Solid triangle primitive. Triangle { diff --git a/src/renderer/framework/state.rs b/src/renderer/framework/state.rs index 54b7a0ef8..23838e5a5 100644 --- a/src/renderer/framework/state.rs +++ b/src/renderer/framework/state.rs @@ -8,7 +8,7 @@ use serde::{Deserialize, Serialize}; use std::cell::RefCell; use std::fmt::{Display, Formatter}; use std::rc::{Rc, Weak}; -use strum_macros::{AsRefStr, EnumString, EnumVariantNames}; +use strum_macros::{AsRefStr, EnumString, VariantNames}; #[derive(Debug, Default, Copy, Clone)] pub struct PipelineStatistics { @@ -56,7 +56,7 @@ impl Display for PipelineStatistics { Reflect, AsRefStr, EnumString, - EnumVariantNames, + VariantNames, )] #[repr(u32)] pub enum CompareFunc { @@ -106,7 +106,7 @@ impl Default for CompareFunc { Reflect, AsRefStr, EnumString, - EnumVariantNames, + VariantNames, )] #[repr(u32)] pub enum BlendFactor { @@ -388,7 +388,7 @@ impl Default for StencilFunc { Reflect, AsRefStr, EnumString, - EnumVariantNames, + VariantNames, )] #[repr(u32)] pub enum StencilAction { @@ -463,7 +463,7 @@ impl Default for StencilOp { Reflect, AsRefStr, EnumString, - EnumVariantNames, + VariantNames, )] #[repr(u32)] pub enum PolygonFace { @@ -491,7 +491,7 @@ impl Default for PolygonFace { Reflect, AsRefStr, EnumString, - EnumVariantNames, + VariantNames, )] #[repr(u32)] pub enum PolygonFillMode { @@ -509,7 +509,7 @@ impl Default for PolygonFillMode { } impl PipelineState { - pub fn new(context: glow::Context, gl_kind: GlKind) -> SharedPipelineState { + pub fn new(mut context: glow::Context, gl_kind: GlKind) -> SharedPipelineState { unsafe { context.depth_func(CompareFunc::default() as u32); diff --git a/src/renderer/mod.rs b/src/renderer/mod.rs index 570dff475..21cf92083 100644 --- a/src/renderer/mod.rs +++ b/src/renderer/mod.rs @@ -102,7 +102,7 @@ use std::{ rc::Rc, sync::mpsc::Receiver, }; -use strum_macros::{AsRefStr, EnumString, EnumVariantNames}; +use strum_macros::{AsRefStr, EnumString, VariantNames}; #[cfg(not(target_arch = "wasm32"))] use winit::window::Window; @@ -219,7 +219,7 @@ impl std::ops::AddAssign for Statistics { Reflect, AsRefStr, EnumString, - EnumVariantNames, + VariantNames, )] pub enum ShadowMapPrecision { /// Shadow map will use 2 times less memory by switching to 16bit pixel format, diff --git a/src/resource/model/mod.rs b/src/resource/model/mod.rs index 05e5c3c3d..48ca5e8b5 100644 --- a/src/resource/model/mod.rs +++ b/src/resource/model/mod.rs @@ -53,7 +53,7 @@ use std::{ path::{Path, PathBuf}, sync::Arc, }; -use strum_macros::{AsRefStr, EnumString, EnumVariantNames}; +use strum_macros::{AsRefStr, EnumString, VariantNames}; pub mod loader; @@ -574,7 +574,7 @@ impl Default for Model { Reflect, AsRefStr, EnumString, - EnumVariantNames, + VariantNames, )] pub enum MaterialSearchOptions { /// Search in specified materials directory. It is suitable for cases when diff --git a/src/resource/texture/mod.rs b/src/resource/texture/mod.rs index 18cdcbfe3..398023bc8 100644 --- a/src/resource/texture/mod.rs +++ b/src/resource/texture/mod.rs @@ -53,7 +53,7 @@ use std::{ ops::{Deref, DerefMut, Shr}, path::Path, }; -use strum_macros::{AsRefStr, EnumString, EnumVariantNames}; +use strum_macros::{AsRefStr, EnumString, VariantNames}; pub mod loader; @@ -381,16 +381,7 @@ impl Default for Texture { /// A filter for mip-map generation. #[derive( - Default, - Copy, - Clone, - Deserialize, - Serialize, - Debug, - Reflect, - AsRefStr, - EnumString, - EnumVariantNames, + Default, Copy, Clone, Deserialize, Serialize, Debug, Reflect, AsRefStr, EnumString, VariantNames, )] pub enum MipFilter { /// Simple nearest filter, it is the fastest filter available, but it produces noisy mip levels and @@ -683,7 +674,7 @@ impl TextureResourceExtension for TextureResource { Deserialize, Serialize, Reflect, - EnumVariantNames, + VariantNames, EnumString, AsRefStr, Visit, @@ -720,7 +711,7 @@ impl Default for TextureMagnificationFilter { Deserialize, Serialize, Reflect, - EnumVariantNames, + VariantNames, EnumString, AsRefStr, Visit, @@ -791,7 +782,7 @@ impl Default for TextureMinificationFilter { Deserialize, Serialize, Reflect, - EnumVariantNames, + VariantNames, EnumString, AsRefStr, Visit, @@ -1064,7 +1055,7 @@ fn ceil_div_4(x: u32) -> u32 { Eq, Debug, Reflect, - EnumVariantNames, + VariantNames, EnumString, AsRefStr, )] diff --git a/src/scene/base.rs b/src/scene/base.rs index fae4bf727..8cbdcaa41 100644 --- a/src/scene/base.rs +++ b/src/scene/base.rs @@ -23,7 +23,7 @@ use fyrox_graph::BaseSceneGraph; use serde::{Deserialize, Serialize}; use std::ops::{Deref, DerefMut}; use std::{any::Any, cell::Cell, sync::mpsc::Sender}; -use strum_macros::{AsRefStr, EnumString, EnumVariantNames}; +use strum_macros::{AsRefStr, EnumString, VariantNames}; /// Level of detail is a collection of objects for given normalized distance range. /// Objects will be rendered **only** if they're in specified range. @@ -115,17 +115,7 @@ uuid_provider!(LodGroup = "8e7b18b1-c1e0-47d7-b952-4394c1d049e5"); /// Mobility defines a group for scene node which has direct impact on performance /// and capabilities of nodes. #[derive( - Copy, - Clone, - PartialOrd, - PartialEq, - Ord, - Eq, - Debug, - Reflect, - AsRefStr, - EnumString, - EnumVariantNames, + Copy, Clone, PartialOrd, PartialEq, Ord, Eq, Debug, Reflect, AsRefStr, EnumString, VariantNames, )] #[repr(u32)] pub enum Mobility { @@ -191,7 +181,7 @@ impl Visit for Mobility { } /// A property value. -#[derive(Debug, Visit, Reflect, PartialEq, Clone, AsRefStr, EnumString, EnumVariantNames)] +#[derive(Debug, Visit, Reflect, PartialEq, Clone, AsRefStr, EnumString, VariantNames)] pub enum PropertyValue { /// A node handle. /// diff --git a/src/scene/camera.rs b/src/scene/camera.rs index 6d7e21960..003504fe1 100644 --- a/src/scene/camera.rs +++ b/src/scene/camera.rs @@ -35,7 +35,7 @@ use std::{ fmt::{Display, Formatter}, ops::{Deref, DerefMut}, }; -use strum_macros::{AsRefStr, EnumString, EnumVariantNames}; +use strum_macros::{AsRefStr, EnumString, VariantNames}; /// Perspective projection make parallel lines to converge at some point. Objects will be smaller /// with increasing distance. This the projection type "used" by human eyes, photographic lens and @@ -163,7 +163,7 @@ impl OrthographicProjection { /// objects will look smaller with increasing distance. /// 2) Orthographic projection most useful for 2D games, objects won't look smaller with increasing /// distance. -#[derive(Reflect, Clone, Debug, PartialEq, Visit, AsRefStr, EnumString, EnumVariantNames)] +#[derive(Reflect, Clone, Debug, PartialEq, Visit, AsRefStr, EnumString, VariantNames)] pub enum Projection { /// See [`PerspectiveProjection`] docs. Perspective(PerspectiveProjection), @@ -250,7 +250,7 @@ impl Default for Projection { /// Exposure is a parameter that describes how many light should be collected for one /// frame. The higher the value, the more brighter the final frame will be and vice versa. -#[derive(Visit, Copy, Clone, PartialEq, Debug, Reflect, AsRefStr, EnumString, EnumVariantNames)] +#[derive(Visit, Copy, Clone, PartialEq, Debug, Reflect, AsRefStr, EnumString, VariantNames)] pub enum Exposure { /// Automatic exposure based on the frame luminance. High luminance values will result /// in lower exposure levels and vice versa. This is default option. diff --git a/src/scene/collider.rs b/src/scene/collider.rs index 7a766ca46..18a1f5ffe 100644 --- a/src/scene/collider.rs +++ b/src/scene/collider.rs @@ -32,7 +32,7 @@ use std::{ cell::Cell, ops::{Add, BitAnd, BitOr, Deref, DerefMut, Mul, Not, Shl}, }; -use strum_macros::{AsRefStr, EnumString, EnumVariantNames}; +use strum_macros::{AsRefStr, EnumString, VariantNames}; /// Ball is an idea sphere shape defined by a single parameters - its radius. #[derive(Clone, Debug, PartialEq, Visit, Reflect)] @@ -342,7 +342,7 @@ impl From for InteractionGroups { } /// Possible collider shapes. -#[derive(Clone, Debug, PartialEq, Visit, Reflect, AsRefStr, EnumString, EnumVariantNames)] +#[derive(Clone, Debug, PartialEq, Visit, Reflect, AsRefStr, EnumString, VariantNames)] pub enum ColliderShape { /// See [`BallShape`] docs. Ball(BallShape), diff --git a/src/scene/dim2/collider.rs b/src/scene/dim2/collider.rs index 69a895848..35d9a2a09 100644 --- a/src/scene/dim2/collider.rs +++ b/src/scene/dim2/collider.rs @@ -32,7 +32,7 @@ use std::{ cell::Cell, ops::{Deref, DerefMut}, }; -use strum_macros::{AsRefStr, EnumString, EnumVariantNames}; +use strum_macros::{AsRefStr, EnumString, VariantNames}; /// Ball is an idea sphere shape defined by a single parameters - its radius. #[derive(Clone, Debug, Visit, PartialEq, Reflect)] @@ -150,7 +150,7 @@ pub struct HeightfieldShape { } /// Possible collider shapes. -#[derive(Clone, Debug, Visit, Reflect, AsRefStr, PartialEq, EnumString, EnumVariantNames)] +#[derive(Clone, Debug, Visit, Reflect, AsRefStr, PartialEq, EnumString, VariantNames)] pub enum ColliderShape { /// See [`BallShape`] docs. Ball(BallShape), diff --git a/src/scene/dim2/joint.rs b/src/scene/dim2/joint.rs index 51c3046bb..d8e179a21 100644 --- a/src/scene/dim2/joint.rs +++ b/src/scene/dim2/joint.rs @@ -27,7 +27,7 @@ use std::{ cell::{Cell, RefCell}, ops::{Deref, DerefMut, Range}, }; -use strum_macros::{AsRefStr, EnumString, EnumVariantNames}; +use strum_macros::{AsRefStr, EnumString, VariantNames}; /// Ball joint locks any translational moves between two objects on the axis between objects, but /// allows rigid bodies to perform relative rotations. The real world example is a human shoulder, @@ -86,7 +86,7 @@ impl Default for PrismaticJoint { } /// The exact kind of the joint. -#[derive(Clone, Debug, PartialEq, Visit, Reflect, AsRefStr, EnumString, EnumVariantNames)] +#[derive(Clone, Debug, PartialEq, Visit, Reflect, AsRefStr, EnumString, VariantNames)] pub enum JointParams { /// See [`BallJoint`] for more info. BallJoint(BallJoint), diff --git a/src/scene/graph/physics.rs b/src/scene/graph/physics.rs index 4ddbecbf2..36e492c67 100644 --- a/src/scene/graph/physics.rs +++ b/src/scene/graph/physics.rs @@ -57,7 +57,7 @@ use std::{ sync::Arc, time::Duration, }; -use strum_macros::{AsRefStr, EnumString, EnumVariantNames}; +use strum_macros::{AsRefStr, EnumString, VariantNames}; /// Shape-dependent identifier. #[derive(Copy, Clone, Debug, Hash, PartialEq, Eq)] @@ -101,17 +101,7 @@ impl From for FeatureId { /// between two colliders. Each collider has its combination rule of type `CoefficientCombineRule`, /// the rule actually used is given by `max(first_combine_rule, second_combine_rule)`. #[derive( - Copy, - Clone, - Debug, - PartialEq, - Eq, - Visit, - Reflect, - EnumVariantNames, - EnumString, - AsRefStr, - Default, + Copy, Clone, Debug, PartialEq, Eq, Visit, Reflect, VariantNames, EnumString, AsRefStr, Default, )] #[repr(u32)] pub enum CoefficientCombineRule { diff --git a/src/scene/joint.rs b/src/scene/joint.rs index f933abde3..dcd06573d 100644 --- a/src/scene/joint.rs +++ b/src/scene/joint.rs @@ -30,7 +30,7 @@ use std::{ cell::Cell, ops::{Deref, DerefMut, Range}, }; -use strum_macros::{AsRefStr, EnumString, EnumVariantNames}; +use strum_macros::{AsRefStr, EnumString, VariantNames}; /// Ball joint locks any translational moves between two objects on the axis between objects, but /// allows rigid bodies to perform relative rotations. The real world example is a human shoulder, @@ -140,7 +140,7 @@ impl Default for RevoluteJoint { } /// The exact kind of the joint. -#[derive(Clone, Debug, PartialEq, Visit, Reflect, AsRefStr, EnumString, EnumVariantNames)] +#[derive(Clone, Debug, PartialEq, Visit, Reflect, AsRefStr, EnumString, VariantNames)] pub enum JointParams { /// See [`BallJoint`] for more info. BallJoint(BallJoint), diff --git a/src/scene/light/directional.rs b/src/scene/light/directional.rs index 873bf0f55..cff378c81 100644 --- a/src/scene/light/directional.rs +++ b/src/scene/light/directional.rs @@ -29,13 +29,13 @@ use crate::{ use fyrox_core::uuid_provider; use fyrox_graph::BaseSceneGraph; use std::ops::{Deref, DerefMut}; -use strum_macros::{AsRefStr, EnumString, EnumVariantNames}; +use strum_macros::{AsRefStr, EnumString, VariantNames}; /// Maximum amount of cascades. pub const CSM_NUM_CASCADES: usize = 3; /// Frustum split options defines how to split camera's frustum to generate cascades. -#[derive(Reflect, Clone, Visit, Debug, PartialEq, AsRefStr, EnumString, EnumVariantNames)] +#[derive(Reflect, Clone, Visit, Debug, PartialEq, AsRefStr, EnumString, VariantNames)] pub enum FrustumSplitOptions { /// Camera frustum will be split into a [`CSM_NUM_CASCADES`] splits where each sub-frustum /// will have fixed far plane location. diff --git a/src/scene/mesh/mod.rs b/src/scene/mesh/mod.rs index 04786641a..36428400b 100644 --- a/src/scene/mesh/mod.rs +++ b/src/scene/mesh/mod.rs @@ -35,7 +35,7 @@ use std::{ cell::Cell, ops::{Deref, DerefMut}, }; -use strum_macros::{AsRefStr, EnumString, EnumVariantNames}; +use strum_macros::{AsRefStr, EnumString, VariantNames}; pub mod buffer; pub mod surface; @@ -55,7 +55,7 @@ pub mod vertex; Reflect, AsRefStr, EnumString, - EnumVariantNames, + VariantNames, )] #[repr(u32)] pub enum RenderPath { diff --git a/src/scene/particle_system/emitter/mod.rs b/src/scene/particle_system/emitter/mod.rs index c767436ee..92cd7fb69 100644 --- a/src/scene/particle_system/emitter/mod.rs +++ b/src/scene/particle_system/emitter/mod.rs @@ -13,7 +13,7 @@ use crate::{ }; use fyrox_core::uuid_provider; use std::ops::{Deref, DerefMut}; -use strum_macros::{AsRefStr, EnumString, EnumVariantNames}; +use strum_macros::{AsRefStr, EnumString, VariantNames}; pub mod base; pub mod cuboid; @@ -27,7 +27,7 @@ pub trait Emit { } /// See module docs. -#[derive(PartialEq, Debug, Reflect, AsRefStr, EnumString, EnumVariantNames)] +#[derive(PartialEq, Debug, Reflect, AsRefStr, EnumString, VariantNames)] pub enum Emitter { /// See BoxEmitter docs. Cuboid(CuboidEmitter), diff --git a/src/scene/rigidbody.rs b/src/scene/rigidbody.rs index fed3898f5..24dd27c65 100644 --- a/src/scene/rigidbody.rs +++ b/src/scene/rigidbody.rs @@ -38,11 +38,11 @@ use std::{ fmt::{Debug, Formatter}, ops::{Deref, DerefMut}, }; -use strum_macros::{AsRefStr, EnumString, EnumVariantNames}; +use strum_macros::{AsRefStr, EnumString, VariantNames}; /// A set of possible types of rigid body. #[derive( - Copy, Clone, Debug, Reflect, Visit, PartialEq, Eq, Hash, AsRefStr, EnumString, EnumVariantNames, + Copy, Clone, Debug, Reflect, Visit, PartialEq, Eq, Hash, AsRefStr, EnumString, VariantNames, )] #[repr(u32)] pub enum RigidBodyType { diff --git a/template/Cargo.toml b/template/Cargo.toml index 953ae5b6d..aacb0bb30 100644 --- a/template/Cargo.toml +++ b/template/Cargo.toml @@ -17,6 +17,6 @@ rust-version = "1.72" clap = { version = "4", features = ["derive"] } uuid = { version = "1", features = ["v4"] } convert_case = "0.6.0" -toml = "0.7.3" -toml_edit = "0.19.8" +toml = "0.8.10" +toml_edit = "0.22.6" regex = "1.7.3" \ No newline at end of file