diff options
| author | 2023-07-12 12:23:18 -0700 | |
|---|---|---|
| committer | 2023-07-12 12:23:18 -0700 | |
| commit | 633f405f3f78bc7f82d2b2061491b0e011137451 (patch) | |
| tree | 5ebfc1f45d216a5c14a90492563599e6969eab4d /examples/solar_system | |
| parent | 41836dd80d0534608e7aedfbf2319c540a23de1a (diff) | |
| parent | 21bd51426d900e271206f314e0c915dd41065521 (diff) | |
| download | iced-633f405f3f78bc7f82d2b2061491b0e011137451.tar.gz iced-633f405f3f78bc7f82d2b2061491b0e011137451.tar.bz2 iced-633f405f3f78bc7f82d2b2061491b0e011137451.zip  | |
Merge remote-tracking branch 'origin/master' into feat/multi-window-support
# Conflicts:
#	Cargo.toml
#	core/src/window/icon.rs
#	core/src/window/id.rs
#	core/src/window/position.rs
#	core/src/window/settings.rs
#	examples/integration/src/main.rs
#	examples/integration_opengl/src/main.rs
#	glutin/src/application.rs
#	native/src/subscription.rs
#	native/src/window.rs
#	runtime/src/window/action.rs
#	src/lib.rs
#	src/window.rs
#	winit/Cargo.toml
#	winit/src/application.rs
#	winit/src/icon.rs
#	winit/src/settings.rs
#	winit/src/window.rs
Diffstat (limited to 'examples/solar_system')
| -rw-r--r-- | examples/solar_system/Cargo.toml | 1 | ||||
| -rw-r--r-- | examples/solar_system/src/main.rs | 50 | 
2 files changed, 27 insertions, 24 deletions
diff --git a/examples/solar_system/Cargo.toml b/examples/solar_system/Cargo.toml index 835396b0..1a98a87e 100644 --- a/examples/solar_system/Cargo.toml +++ b/examples/solar_system/Cargo.toml @@ -7,4 +7,5 @@ publish = false  [dependencies]  iced = { path = "../..", features = ["canvas", "tokio", "debug"] } +env_logger = "0.10.0"  rand = "0.8.3" diff --git a/examples/solar_system/src/main.rs b/examples/solar_system/src/main.rs index 9a4ee754..58d06206 100644 --- a/examples/solar_system/src/main.rs +++ b/examples/solar_system/src/main.rs @@ -8,20 +8,23 @@  //! [1]: https://developer.mozilla.org/en-US/docs/Web/API/Canvas_API/Tutorial/Basic_animations#An_animated_solar_system  use iced::application;  use iced::executor; +use iced::mouse;  use iced::theme::{self, Theme};  use iced::widget::canvas; -use iced::widget::canvas::gradient::{self, Gradient}; +use iced::widget::canvas::gradient;  use iced::widget::canvas::stroke::{self, Stroke}; -use iced::widget::canvas::{Cursor, Path}; +use iced::widget::canvas::Path;  use iced::window;  use iced::{ -    Application, Color, Command, Element, Length, Point, Rectangle, Settings, -    Size, Subscription, Vector, +    Application, Color, Command, Element, Length, Point, Rectangle, Renderer, +    Settings, Size, Subscription, Vector,  };  use std::time::Instant;  pub fn main() -> iced::Result { +    env_logger::builder().format_timestamp(None).init(); +      SolarSystem::run(Settings {          antialiasing: true,          ..Settings::default() @@ -156,24 +159,26 @@ impl<Message> canvas::Program<Message> for State {      fn draw(          &self,          _state: &Self::State, +        renderer: &Renderer,          _theme: &Theme,          bounds: Rectangle, -        _cursor: Cursor, +        _cursor: mouse::Cursor,      ) -> Vec<canvas::Geometry> {          use std::f32::consts::PI; -        let background = self.space_cache.draw(bounds.size(), |frame| { -            let stars = Path::new(|path| { -                for (p, size) in &self.stars { -                    path.rectangle(*p, Size::new(*size, *size)); -                } -            }); +        let background = +            self.space_cache.draw(renderer, bounds.size(), |frame| { +                let stars = Path::new(|path| { +                    for (p, size) in &self.stars { +                        path.rectangle(*p, Size::new(*size, *size)); +                    } +                }); -            frame.translate(frame.center() - Point::ORIGIN); -            frame.fill(&stars, Color::WHITE); -        }); +                frame.translate(frame.center() - Point::ORIGIN); +                frame.fill(&stars, Color::WHITE); +            }); -        let system = self.system_cache.draw(bounds.size(), |frame| { +        let system = self.system_cache.draw(renderer, bounds.size(), |frame| {              let center = frame.center();              let sun = Path::circle(center, Self::SUN_RADIUS); @@ -206,15 +211,12 @@ impl<Message> canvas::Program<Message> for State {                  let earth = Path::circle(Point::ORIGIN, Self::EARTH_RADIUS); -                let earth_fill = -                    Gradient::linear(gradient::Position::Absolute { -                        start: Point::new(-Self::EARTH_RADIUS, 0.0), -                        end: Point::new(Self::EARTH_RADIUS, 0.0), -                    }) -                    .add_stop(0.2, Color::from_rgb(0.15, 0.50, 1.0)) -                    .add_stop(0.8, Color::from_rgb(0.0, 0.20, 0.47)) -                    .build() -                    .expect("Build Earth fill gradient"); +                let earth_fill = gradient::Linear::new( +                    Point::new(-Self::EARTH_RADIUS, 0.0), +                    Point::new(Self::EARTH_RADIUS, 0.0), +                ) +                .add_stop(0.2, Color::from_rgb(0.15, 0.50, 1.0)) +                .add_stop(0.8, Color::from_rgb(0.0, 0.20, 0.47));                  frame.fill(&earth, earth_fill);  | 
