@@ -18,10 +18,6 @@ fn main() {
18
18
. run ( ) ;
19
19
}
20
20
21
- fn setup ( mut commands : Commands ) {
22
- commands. spawn_bundle ( OrthographicCameraBundle :: new_3d ( ) ) ;
23
- }
24
-
25
21
enum Phase {
26
22
ContractingY ,
27
23
ContractingX ,
@@ -31,7 +27,17 @@ enum Phase {
31
27
32
28
use Phase :: * ;
33
29
34
- fn change_window_size ( mut windows : ResMut < Windows > , mut phase : ResMut < Phase > ) {
30
+ fn change_window_size (
31
+ mut windows : ResMut < Windows > ,
32
+ mut phase : ResMut < Phase > ,
33
+ mut first_complete : Local < bool > ,
34
+ ) {
35
+ // Put off rendering for one frame, as currently for a frame where
36
+ // resizing happens, nothing is presented.
37
+ if !* first_complete {
38
+ * first_complete = true ;
39
+ return ;
40
+ }
35
41
let primary = windows. get_primary_mut ( ) . unwrap ( ) ;
36
42
let height = primary. height ( ) ;
37
43
let width = primary. width ( ) ;
@@ -62,3 +68,39 @@ fn change_window_size(mut windows: ResMut<Windows>, mut phase: ResMut<Phase>) {
62
68
}
63
69
}
64
70
}
71
+
72
+ /// A simple 3d scene, taken from the `3d_scene` example
73
+ fn setup (
74
+ mut commands : Commands ,
75
+ mut meshes : ResMut < Assets < Mesh > > ,
76
+ mut materials : ResMut < Assets < StandardMaterial > > ,
77
+ ) {
78
+ // plane
79
+ commands. spawn_bundle ( PbrBundle {
80
+ mesh : meshes. add ( Mesh :: from ( shape:: Plane { size : 5.0 } ) ) ,
81
+ material : materials. add ( Color :: rgb ( 0.3 , 0.5 , 0.3 ) . into ( ) ) ,
82
+ ..default ( )
83
+ } ) ;
84
+ // cube
85
+ commands. spawn_bundle ( PbrBundle {
86
+ mesh : meshes. add ( Mesh :: from ( shape:: Cube { size : 1.0 } ) ) ,
87
+ material : materials. add ( Color :: rgb ( 0.8 , 0.7 , 0.6 ) . into ( ) ) ,
88
+ transform : Transform :: from_xyz ( 0.0 , 0.5 , 0.0 ) ,
89
+ ..default ( )
90
+ } ) ;
91
+ // light
92
+ commands. spawn_bundle ( PointLightBundle {
93
+ point_light : PointLight {
94
+ intensity : 1500.0 ,
95
+ shadows_enabled : true ,
96
+ ..default ( )
97
+ } ,
98
+ transform : Transform :: from_xyz ( 4.0 , 8.0 , 4.0 ) ,
99
+ ..default ( )
100
+ } ) ;
101
+ // camera
102
+ commands. spawn_bundle ( PerspectiveCameraBundle {
103
+ transform : Transform :: from_xyz ( -2.0 , 2.5 , 5.0 ) . looking_at ( Vec3 :: ZERO , Vec3 :: Y ) ,
104
+ ..default ( )
105
+ } ) ;
106
+ }
0 commit comments