Struct bevy::window::Window

pub struct Window {
Show 25 fields pub cursor: Cursor, pub present_mode: PresentMode, pub mode: WindowMode, pub position: WindowPosition, pub resolution: WindowResolution, pub title: String, pub name: Option<String>, pub composite_alpha_mode: CompositeAlphaMode, pub resize_constraints: WindowResizeConstraints, pub resizable: bool, pub enabled_buttons: EnabledButtons, pub decorations: bool, pub transparent: bool, pub focused: bool, pub window_level: WindowLevel, pub canvas: Option<String>, pub fit_canvas_to_parent: bool, pub prevent_default_event_handling: bool, pub internal: InternalWindowState, pub ime_enabled: bool, pub ime_position: Vec2, pub window_theme: Option<WindowTheme>, pub visible: bool, pub skip_taskbar: bool, pub desired_maximum_frame_latency: Option<NonZero<u32>>,
}
Expand description

The defining Component for window entities, storing information about how it should appear and behave.

Each window corresponds to an entity, and is uniquely identified by the value of their Entity. When the Window component is added to an entity, a new window will be opened. When it is removed or the entity is despawned, the window will close.

The primary window entity (and the corresponding window) is spawned by default by WindowPlugin and is marked with the PrimaryWindow component.

This component is synchronized with winit through bevy_winit: it will reflect the current state of the window and can be modified to change this state.

§Example

Because this component is synchronized with winit, it can be used to perform OS-integrated windowing operations. For example, here’s a simple system to change the cursor type:

fn change_cursor(mut windows: Query<&mut Window, With<PrimaryWindow>>) {
    // Query returns one window typically.
    for mut window in windows.iter_mut() {
        window.cursor.icon = CursorIcon::Wait;
    }
}

Fields§

§cursor: Cursor

The cursor of this window.

§present_mode: PresentMode

What presentation mode to give the window.

§mode: WindowMode

Which fullscreen or windowing mode should be used.

§position: WindowPosition

Where the window should be placed.

§resolution: WindowResolution

What resolution the window should have.

§title: String

Stores the title of the window.

§name: Option<String>

Stores the application ID (on Wayland), WM_CLASS (on X11) or window class name (on Windows) of the window.

For details about application ID conventions, see the Desktop Entry Spec. For details about WM_CLASS, see the X11 Manual Pages. For details about Windows’s window class names, see About Window Classes.

§Platform-specific

  • Windows: Can only be set while building the window, setting the window’s window class name.
  • Wayland: Can only be set while building the window, setting the window’s application ID.
  • X11: Can only be set while building the window, setting the window’s WM_CLASS.
  • macOS, iOS, Android, and Web: not applicable.

Notes: Changing this field during runtime will have no effect for now.

§composite_alpha_mode: CompositeAlphaMode

How the alpha channel of textures should be handled while compositing.

§resize_constraints: WindowResizeConstraints

The limits of the window’s logical size (found in its resolution) when resizing.

§resizable: bool

Should the window be resizable?

Note: This does not stop the program from fullscreening/setting the size programmatically.

§enabled_buttons: EnabledButtons

Specifies which window control buttons should be enabled.

§Platform-specific

iOS, Android, and the Web do not have window control buttons.

On some Linux environments these values have no effect.

§decorations: bool

Should the window have decorations enabled?

(Decorations are the minimize, maximize, and close buttons on desktop apps)

§Platform-specific

iOS, Android, and the Web do not have decorations.

§transparent: bool

Should the window be transparent?

Defines whether the background of the window should be transparent.

§Platform-specific

  • iOS / Android / Web: Unsupported.
  • macOS: Not working as expected.

macOS transparent works with winit out of the box, so this issue might be related to: https://github.com/gfx-rs/wgpu/issues/687. You should also set the window composite_alpha_mode to CompositeAlphaMode::PostMultiplied.

§focused: bool

Get/set whether the window is focused.

§window_level: WindowLevel

Where should the window appear relative to other overlapping window.

§Platform-specific

  • iOS / Android / Web / Wayland: Unsupported.
§canvas: Option<String>

The “html canvas” element selector.

If set, this selector will be used to find a matching html canvas element, rather than creating a new one. Uses the CSS selector format.

This value has no effect on non-web platforms.

§fit_canvas_to_parent: bool

Whether or not to fit the canvas element’s size to its parent element’s size.

Warning: this will not behave as expected for parents that set their size according to the size of their children. This creates a “feedback loop” that will result in the canvas growing on each resize. When using this feature, ensure the parent’s size is not affected by its children.

This value has no effect on non-web platforms.

§prevent_default_event_handling: bool

Whether or not to stop events from propagating out of the canvas element

When true, this will prevent common browser hotkeys like F5, F12, Ctrl+R, tab, etc. from performing their default behavior while the bevy app has focus.

This value has no effect on non-web platforms.

§internal: InternalWindowState

Stores internal state that isn’t directly accessible.

§ime_enabled: bool

Should the window use Input Method Editor?

If enabled, the window will receive Ime events instead of ReceivedCharacter or KeyboardInput from bevy_input.

IME should be enabled during text input, but not when you expect to get the exact key pressed.

§Platform-specific

  • iOS / Android / Web: Unsupported.
§ime_position: Vec2

Sets location of IME candidate box in client area coordinates relative to the top left.

§Platform-specific

  • iOS / Android / Web: Unsupported.
§window_theme: Option<WindowTheme>

Sets a specific theme for the window.

If None is provided, the window will use the system theme.

§Platform-specific

  • iOS / Android / Web: Unsupported.
§visible: bool

Sets the window’s visibility.

If false, this will hide the window completely, it won’t appear on the screen or in the task bar. If true, this will show the window. Note that this doesn’t change its focused or minimized state.

§Platform-specific

  • Android / Wayland / Web: Unsupported.
§skip_taskbar: bool

Sets whether the window should be shown in the taskbar.

If true, the window will not appear in the taskbar. If false, the window will appear in the taskbar.

Note that this will only take effect on window creation.

§Platform-specific

  • Only supported on Windows.
§desired_maximum_frame_latency: Option<NonZero<u32>>

Optional hint given to the rendering API regarding the maximum number of queued frames admissible on the GPU.

Given values are usually within the 1-3 range. If not provided, this will default to 2.

See wgpu::SurfaceConfiguration::desired_maximum_frame_latency.

Implementations§

§

impl Window

pub fn set_maximized(&mut self, maximized: bool)

Setting to true will attempt to maximize the window.

Setting to false will attempt to un-maximize the window.

pub fn set_minimized(&mut self, minimized: bool)

Setting to true will attempt to minimize the window.

Setting to false will attempt to un-minimize the window.

Examples found in repository?
tests/window/minimising.rs (line 24)
21
22
23
24
25
26
27
28
fn minimise_automatically(mut windows: Query<&mut Window>, mut frames: Local<u32>) {
    if *frames == 60 {
        let mut window = windows.single_mut();
        window.set_minimized(true);
    } else {
        *frames += 1;
    }
}

pub fn width(&self) -> f32

The window’s client area width in logical pixels.

See WindowResolution for an explanation about logical/physical sizes.

Examples found in repository?
examples/ecs/parallel_query.rs (line 50)
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
fn bounce_system(windows: Query<&Window>, mut sprites: Query<(&Transform, &mut Velocity)>) {
    let window = windows.single();
    let width = window.width();
    let height = window.height();
    let left = width / -2.0;
    let right = width / 2.0;
    let bottom = height / -2.0;
    let top = height / 2.0;
    // The default batch size can also be overridden.
    // In this case a batch size of 32 is chosen to limit the overhead of
    // ParallelIterator, since negating a vector is very inexpensive.
    sprites
        .par_iter_mut()
        .batching_strategy(BatchingStrategy::fixed(32))
        .for_each(|(transform, mut v)| {
            if !(left < transform.translation.x
                && transform.translation.x < right
                && bottom < transform.translation.y
                && transform.translation.y < top)
            {
                // For simplicity, just reverse the velocity; don't use realistic bounces
                v.0 = -v.0;
            }
        });
}

pub fn height(&self) -> f32

The window’s client area height in logical pixels.

See WindowResolution for an explanation about logical/physical sizes.

Examples found in repository?
examples/ecs/parallel_query.rs (line 51)
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
fn bounce_system(windows: Query<&Window>, mut sprites: Query<(&Transform, &mut Velocity)>) {
    let window = windows.single();
    let width = window.width();
    let height = window.height();
    let left = width / -2.0;
    let right = width / 2.0;
    let bottom = height / -2.0;
    let top = height / 2.0;
    // The default batch size can also be overridden.
    // In this case a batch size of 32 is chosen to limit the overhead of
    // ParallelIterator, since negating a vector is very inexpensive.
    sprites
        .par_iter_mut()
        .batching_strategy(BatchingStrategy::fixed(32))
        .for_each(|(transform, mut v)| {
            if !(left < transform.translation.x
                && transform.translation.x < right
                && bottom < transform.translation.y
                && transform.translation.y < top)
            {
                // For simplicity, just reverse the velocity; don't use realistic bounces
                v.0 = -v.0;
            }
        });
}

pub fn size(&self) -> Vec2

The window’s client size in logical pixels

See WindowResolution for an explanation about logical/physical sizes.

Examples found in repository?
examples/stress_tests/bevymark.rs (line 513)
510
511
512
513
514
515
516
517
518
fn collision_system(windows: Query<&Window>, mut bird_query: Query<(&mut Bird, &Transform)>) {
    let window = windows.single();

    let half_extents = 0.5 * window.size();

    for (mut bird, transform) in &mut bird_query {
        handle_collision(half_extents, &transform.translation, &mut bird.velocity);
    }
}
More examples
Hide additional examples
examples/games/contributors.rs (line 241)
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
fn collisions(
    windows: Query<&Window>,
    mut query: Query<(&mut Velocity, &mut Transform), With<Contributor>>,
) {
    let window = windows.single();
    let window_size = window.size();

    let collision_area = Aabb2d::new(Vec2::ZERO, (window_size - SPRITE_SIZE) / 2.);

    // The maximum height the birbs should try to reach is one birb below the top of the window.
    let max_bounce_height = (window_size.y - SPRITE_SIZE * 2.0).max(0.0);
    let min_bounce_height = max_bounce_height * 0.4;

    let mut rng = rand::thread_rng();

    for (mut velocity, mut transform) in &mut query {
        // Clamp the translation to not go out of the bounds
        if transform.translation.y < collision_area.min.y {
            transform.translation.y = collision_area.min.y;

            // How high this birb will bounce.
            let bounce_height = rng.gen_range(min_bounce_height..=max_bounce_height);

            // Apply the velocity that would bounce the birb up to bounce_height.
            velocity.translation.y = (bounce_height * GRAVITY * 2.).sqrt();
        }

        // Birbs might hit the ceiling if the window is resized.
        // If they do, bounce them.
        if transform.translation.y > collision_area.max.y {
            transform.translation.y = collision_area.max.y;
            velocity.translation.y *= -1.0;
        }

        // On side walls flip the horizontal velocity
        if transform.translation.x < collision_area.min.x {
            transform.translation.x = collision_area.min.x;
            velocity.translation.x *= -1.0;
            velocity.rotation *= -1.0;
        }
        if transform.translation.x > collision_area.max.x {
            transform.translation.x = collision_area.max.x;
            velocity.translation.x *= -1.0;
            velocity.rotation *= -1.0;
        }
    }
}

pub fn physical_width(&self) -> u32

The window’s client area width in physical pixels.

See WindowResolution for an explanation about logical/physical sizes.

pub fn physical_height(&self) -> u32

The window’s client area height in physical pixels.

See WindowResolution for an explanation about logical/physical sizes.

pub fn physical_size(&self) -> UVec2

The window’s client size in physical pixels

See WindowResolution for an explanation about logical/physical sizes.

Examples found in repository?
examples/3d/split_screen.rs (line 188)
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
fn set_camera_viewports(
    windows: Query<&Window>,
    mut resize_events: EventReader<WindowResized>,
    mut query: Query<(&CameraPosition, &mut Camera)>,
) {
    // We need to dynamically resize the camera's viewports whenever the window size changes
    // so then each camera always takes up half the screen.
    // A resize_event is sent when the window is first created, allowing us to reuse this system for initial setup.
    for resize_event in resize_events.read() {
        let window = windows.get(resize_event.window).unwrap();
        let size = window.physical_size() / 2;

        for (camera_position, mut camera) in &mut query {
            camera.viewport = Some(Viewport {
                physical_position: camera_position.pos * size,
                physical_size: size,
                ..default()
            });
        }
    }
}

pub fn scale_factor(&self) -> f32

The window’s scale factor.

Ratio of physical size to logical size, see WindowResolution.

pub fn cursor_position(&self) -> Option<Vec2>

The cursor position in this window in logical pixels.

Returns None if the cursor is outside the window area.

See WindowResolution for an explanation about logical/physical sizes.

Examples found in repository?
examples/input/text_input.rs (line 113)
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
fn toggle_ime(
    input: Res<ButtonInput<MouseButton>>,
    mut windows: Query<&mut Window>,
    mut text: Query<&mut Text, With<Node>>,
) {
    if input.just_pressed(MouseButton::Left) {
        let mut window = windows.single_mut();

        window.ime_position = window.cursor_position().unwrap();
        window.ime_enabled = !window.ime_enabled;

        let mut text = text.single_mut();
        text.sections[1].value = format!("{}\n", window.ime_enabled);
    }
}
More examples
Hide additional examples
examples/2d/2d_viewport_to_world.rs (line 20)
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
fn draw_cursor(
    camera_query: Query<(&Camera, &GlobalTransform)>,
    windows: Query<&Window>,
    mut gizmos: Gizmos,
) {
    let (camera, camera_transform) = camera_query.single();

    let Some(cursor_position) = windows.single().cursor_position() else {
        return;
    };

    // Calculate a world position based on the cursor's position.
    let Some(point) = camera.viewport_to_world_2d(camera_transform, cursor_position) else {
        return;
    };

    gizmos.circle_2d(point, 10., WHITE);
}
examples/games/desk_toy.rs (line 226)
217
218
219
220
221
222
223
224
225
226
227
228
fn get_cursor_world_pos(
    mut cursor_world_pos: ResMut<CursorWorldPos>,
    q_primary_window: Query<&Window, With<PrimaryWindow>>,
    q_camera: Query<(&Camera, &GlobalTransform)>,
) {
    let primary_window = q_primary_window.single();
    let (main_camera, main_camera_transform) = q_camera.single();
    // Get the cursor position in the world
    cursor_world_pos.0 = primary_window
        .cursor_position()
        .and_then(|cursor_pos| main_camera.viewport_to_world_2d(main_camera_transform, cursor_pos));
}
examples/3d/3d_viewport_to_world.rs (line 22)
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
fn draw_cursor(
    camera_query: Query<(&Camera, &GlobalTransform)>,
    ground_query: Query<&GlobalTransform, With<Ground>>,
    windows: Query<&Window>,
    mut gizmos: Gizmos,
) {
    let (camera, camera_transform) = camera_query.single();
    let ground = ground_query.single();

    let Some(cursor_position) = windows.single().cursor_position() else {
        return;
    };

    // Calculate a ray pointing from the camera into the world based on the cursor's position.
    let Some(ray) = camera.viewport_to_world(camera_transform, cursor_position) else {
        return;
    };

    // Calculate if and where the ray is hitting the ground plane.
    let Some(distance) =
        ray.intersect_plane(ground.translation(), InfinitePlane3d::new(ground.up()))
    else {
        return;
    };
    let point = ray.get_point(distance);

    // Draw a circle just above the ground plane at that position.
    gizmos.circle(
        point + ground.up() * 0.01,
        Dir3::new_unchecked(ground.up()), // Up vector is already normalized.
        0.2,
        Color::WHITE,
    );
}
examples/3d/irradiance_volumes.rs (line 490)
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
fn handle_mouse_clicks(
    buttons: Res<ButtonInput<MouseButton>>,
    windows: Query<&Window, With<PrimaryWindow>>,
    cameras: Query<(&Camera, &GlobalTransform)>,
    mut main_objects: Query<&mut Transform, With<MainObject>>,
) {
    if !buttons.pressed(MouseButton::Left) {
        return;
    }
    let Some(mouse_position) = windows
        .iter()
        .next()
        .and_then(|window| window.cursor_position())
    else {
        return;
    };
    let Some((camera, camera_transform)) = cameras.iter().next() else {
        return;
    };

    // Figure out where the user clicked on the plane.
    let Some(ray) = camera.viewport_to_world(camera_transform, mouse_position) else {
        return;
    };
    let Some(ray_distance) = ray.intersect_plane(Vec3::ZERO, InfinitePlane3d::new(Vec3::Y)) else {
        return;
    };
    let plane_intersection = ray.origin + ray.direction.normalize() * ray_distance;

    // Move all the main objeccts.
    for mut transform in main_objects.iter_mut() {
        transform.translation = vec3(
            plane_intersection.x,
            transform.translation.y,
            plane_intersection.z,
        );
    }
}

pub fn physical_cursor_position(&self) -> Option<Vec2>

The cursor position in this window in physical pixels.

Returns None if the cursor is outside the window area.

See WindowResolution for an explanation about logical/physical sizes.

pub fn set_cursor_position(&mut self, position: Option<Vec2>)

Set the cursor position in this window in logical pixels.

See WindowResolution for an explanation about logical/physical sizes.

pub fn set_physical_cursor_position(&mut self, position: Option<DVec2>)

Set the cursor position in this window in physical pixels.

See WindowResolution for an explanation about logical/physical sizes.

Trait Implementations§

§

impl Clone for Window

§

fn clone(&self) -> Window

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
§

impl Component for Window
where Window: Send + Sync + 'static,

§

const STORAGE_TYPE: StorageType = bevy_ecs::component::StorageType::Table

A constant indicating the storage type used for this component.
§

fn register_component_hooks(_hooks: &mut ComponentHooks)

Called when registering this component, allowing mutable access to its ComponentHooks.
§

impl Debug for Window

§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
§

impl Default for Window

§

fn default() -> Window

Returns the “default value” for a type. Read more
§

impl<'de> Deserialize<'de> for Window

§

fn deserialize<__D>( __deserializer: __D ) -> Result<Window, <__D as Deserializer<'de>>::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
§

impl FromReflect for Window
where Window: Any + Send + Sync, Cursor: FromReflect + TypePath + RegisterForReflection, PresentMode: FromReflect + TypePath + RegisterForReflection, WindowMode: FromReflect + TypePath + RegisterForReflection, WindowPosition: FromReflect + TypePath + RegisterForReflection, WindowResolution: FromReflect + TypePath + RegisterForReflection, String: FromReflect + TypePath + RegisterForReflection, Option<String>: FromReflect + TypePath + RegisterForReflection, CompositeAlphaMode: FromReflect + TypePath + RegisterForReflection, WindowResizeConstraints: FromReflect + TypePath + RegisterForReflection, bool: FromReflect + TypePath + RegisterForReflection, EnabledButtons: FromReflect + TypePath + RegisterForReflection, WindowLevel: FromReflect + TypePath + RegisterForReflection, InternalWindowState: FromReflect + TypePath + RegisterForReflection, Vec2: FromReflect + TypePath + RegisterForReflection, Option<WindowTheme>: FromReflect + TypePath + RegisterForReflection, Option<NonZero<u32>>: FromReflect + TypePath + RegisterForReflection,

§

fn from_reflect(reflect: &(dyn Reflect + 'static)) -> Option<Window>

Constructs a concrete instance of Self from a reflected value.
§

fn take_from_reflect( reflect: Box<dyn Reflect> ) -> Result<Self, Box<dyn Reflect>>

Attempts to downcast the given value to Self using, constructing the value using from_reflect if that fails. Read more
§

impl GetTypeRegistration for Window
where Window: Any + Send + Sync, Cursor: FromReflect + TypePath + RegisterForReflection, PresentMode: FromReflect + TypePath + RegisterForReflection, WindowMode: FromReflect + TypePath + RegisterForReflection, WindowPosition: FromReflect + TypePath + RegisterForReflection, WindowResolution: FromReflect + TypePath + RegisterForReflection, String: FromReflect + TypePath + RegisterForReflection, Option<String>: FromReflect + TypePath + RegisterForReflection, CompositeAlphaMode: FromReflect + TypePath + RegisterForReflection, WindowResizeConstraints: FromReflect + TypePath + RegisterForReflection, bool: FromReflect + TypePath + RegisterForReflection, EnabledButtons: FromReflect + TypePath + RegisterForReflection, WindowLevel: FromReflect + TypePath + RegisterForReflection, InternalWindowState: FromReflect + TypePath + RegisterForReflection, Vec2: FromReflect + TypePath + RegisterForReflection, Option<WindowTheme>: FromReflect + TypePath + RegisterForReflection, Option<NonZero<u32>>: FromReflect + TypePath + RegisterForReflection,

§

fn get_type_registration() -> TypeRegistration

Returns the default TypeRegistration for this type.
§

fn register_type_dependencies(registry: &mut TypeRegistry)

Registers other types needed by this type. Read more
§

impl Reflect for Window
where Window: Any + Send + Sync, Cursor: FromReflect + TypePath + RegisterForReflection, PresentMode: FromReflect + TypePath + RegisterForReflection, WindowMode: FromReflect + TypePath + RegisterForReflection, WindowPosition: FromReflect + TypePath + RegisterForReflection, WindowResolution: FromReflect + TypePath + RegisterForReflection, String: FromReflect + TypePath + RegisterForReflection, Option<String>: FromReflect + TypePath + RegisterForReflection, CompositeAlphaMode: FromReflect + TypePath + RegisterForReflection, WindowResizeConstraints: FromReflect + TypePath + RegisterForReflection, bool: FromReflect + TypePath + RegisterForReflection, EnabledButtons: FromReflect + TypePath + RegisterForReflection, WindowLevel: FromReflect + TypePath + RegisterForReflection, InternalWindowState: FromReflect + TypePath + RegisterForReflection, Vec2: FromReflect + TypePath + RegisterForReflection, Option<WindowTheme>: FromReflect + TypePath + RegisterForReflection, Option<NonZero<u32>>: FromReflect + TypePath + RegisterForReflection,

§

fn get_represented_type_info(&self) -> Option<&'static TypeInfo>

Returns the TypeInfo of the type represented by this value. Read more
§

fn into_any(self: Box<Window>) -> Box<dyn Any>

Returns the value as a Box<dyn Any>.
§

fn as_any(&self) -> &(dyn Any + 'static)

Returns the value as a &dyn Any.
§

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

Returns the value as a &mut dyn Any.
§

fn into_reflect(self: Box<Window>) -> Box<dyn Reflect>

Casts this type to a boxed reflected value.
§

fn as_reflect(&self) -> &(dyn Reflect + 'static)

Casts this type to a reflected value.
§

fn as_reflect_mut(&mut self) -> &mut (dyn Reflect + 'static)

Casts this type to a mutable reflected value.
§

fn clone_value(&self) -> Box<dyn Reflect>

Clones the value as a Reflect trait object. Read more
§

fn set(&mut self, value: Box<dyn Reflect>) -> Result<(), Box<dyn Reflect>>

Performs a type-checked assignment of a reflected value to this value. Read more
§

fn apply(&mut self, value: &(dyn Reflect + 'static))

Applies a reflected value to this value. Read more
§

fn reflect_kind(&self) -> ReflectKind

Returns a zero-sized enumeration of “kinds” of type. Read more
§

fn reflect_ref(&self) -> ReflectRef<'_>

Returns an immutable enumeration of “kinds” of type. Read more
§

fn reflect_mut(&mut self) -> ReflectMut<'_>

Returns a mutable enumeration of “kinds” of type. Read more
§

fn reflect_owned(self: Box<Window>) -> ReflectOwned

Returns an owned enumeration of “kinds” of type. Read more
§

fn reflect_partial_eq(&self, value: &(dyn Reflect + 'static)) -> Option<bool>

Returns a “partial equality” comparison result. Read more
§

fn reflect_hash(&self) -> Option<u64>

Returns a hash of the value (which includes the type). Read more
§

fn debug(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Debug formatter for the value. Read more
§

fn serializable(&self) -> Option<Serializable<'_>>

Returns a serializable version of the value. Read more
§

fn is_dynamic(&self) -> bool

Indicates whether or not this type is a dynamic type. Read more
§

impl Serialize for Window

§

fn serialize<__S>( &self, __serializer: __S ) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
§

impl Struct for Window
where Window: Any + Send + Sync, Cursor: FromReflect + TypePath + RegisterForReflection, PresentMode: FromReflect + TypePath + RegisterForReflection, WindowMode: FromReflect + TypePath + RegisterForReflection, WindowPosition: FromReflect + TypePath + RegisterForReflection, WindowResolution: FromReflect + TypePath + RegisterForReflection, String: FromReflect + TypePath + RegisterForReflection, Option<String>: FromReflect + TypePath + RegisterForReflection, CompositeAlphaMode: FromReflect + TypePath + RegisterForReflection, WindowResizeConstraints: FromReflect + TypePath + RegisterForReflection, bool: FromReflect + TypePath + RegisterForReflection, EnabledButtons: FromReflect + TypePath + RegisterForReflection, WindowLevel: FromReflect + TypePath + RegisterForReflection, InternalWindowState: FromReflect + TypePath + RegisterForReflection, Vec2: FromReflect + TypePath + RegisterForReflection, Option<WindowTheme>: FromReflect + TypePath + RegisterForReflection, Option<NonZero<u32>>: FromReflect + TypePath + RegisterForReflection,

§

fn field(&self, name: &str) -> Option<&(dyn Reflect + 'static)>

Returns a reference to the value of the field named name as a &dyn Reflect.
§

fn field_mut(&mut self, name: &str) -> Option<&mut (dyn Reflect + 'static)>

Returns a mutable reference to the value of the field named name as a &mut dyn Reflect.
§

fn field_at(&self, index: usize) -> Option<&(dyn Reflect + 'static)>

Returns a reference to the value of the field with index index as a &dyn Reflect.
§

fn field_at_mut(&mut self, index: usize) -> Option<&mut (dyn Reflect + 'static)>

Returns a mutable reference to the value of the field with index index as a &mut dyn Reflect.
§

fn name_at(&self, index: usize) -> Option<&str>

Returns the name of the field with index index.
§

fn field_len(&self) -> usize

Returns the number of fields in the struct.
§

fn iter_fields(&self) -> FieldIter<'_>

Returns an iterator over the values of the reflectable fields for this struct.
§

fn clone_dynamic(&self) -> DynamicStruct

Clones the struct into a DynamicStruct.
§

impl TypePath for Window
where Window: Any + Send + Sync,

§

fn type_path() -> &'static str

Returns the fully qualified path of the underlying type. Read more
§

fn short_type_path() -> &'static str

Returns a short, pretty-print enabled path to the type. Read more
§

fn type_ident() -> Option<&'static str>

Returns the name of the type, or None if it is anonymous. Read more
§

fn crate_name() -> Option<&'static str>

Returns the name of the crate the type is in, or None if it is anonymous. Read more
§

fn module_path() -> Option<&'static str>

Returns the path to the module the type is in, or None if it is anonymous. Read more
§

impl Typed for Window
where Window: Any + Send + Sync, Cursor: FromReflect + TypePath + RegisterForReflection, PresentMode: FromReflect + TypePath + RegisterForReflection, WindowMode: FromReflect + TypePath + RegisterForReflection, WindowPosition: FromReflect + TypePath + RegisterForReflection, WindowResolution: FromReflect + TypePath + RegisterForReflection, String: FromReflect + TypePath + RegisterForReflection, Option<String>: FromReflect + TypePath + RegisterForReflection, CompositeAlphaMode: FromReflect + TypePath + RegisterForReflection, WindowResizeConstraints: FromReflect + TypePath + RegisterForReflection, bool: FromReflect + TypePath + RegisterForReflection, EnabledButtons: FromReflect + TypePath + RegisterForReflection, WindowLevel: FromReflect + TypePath + RegisterForReflection, InternalWindowState: FromReflect + TypePath + RegisterForReflection, Vec2: FromReflect + TypePath + RegisterForReflection, Option<WindowTheme>: FromReflect + TypePath + RegisterForReflection, Option<NonZero<u32>>: FromReflect + TypePath + RegisterForReflection,

§

fn type_info() -> &'static TypeInfo

Returns the compile-time info for the underlying type.

Auto Trait Implementations§

§

impl Freeze for Window

§

impl RefUnwindSafe for Window

§

impl Send for Window

§

impl Sync for Window

§

impl Unpin for Window

§

impl UnwindSafe for Window

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<T, U> AsBindGroupShaderType<U> for T
where U: ShaderType, &'a T: for<'a> Into<U>,

§

fn as_bind_group_shader_type(&self, _images: &RenderAssets<GpuImage>) -> U

Return the T ShaderType for self. When used in AsBindGroup derives, it is safe to assume that all images in self exist.
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<C> Bundle for C
where C: Component,

§

fn component_ids( components: &mut Components, storages: &mut Storages, ids: &mut impl FnMut(ComponentId) )

§

unsafe fn from_components<T, F>(ctx: &mut T, func: &mut F) -> C
where F: for<'a> FnMut(&'a mut T) -> OwningPtr<'a>,

§

impl<T> Downcast<T> for T

§

fn downcast(&self) -> &T

§

impl<T> Downcast for T
where T: Any,

§

fn into_any(self: Box<T>) -> Box<dyn Any>

Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
§

fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
§

fn as_any(&self) -> &(dyn Any + 'static)

Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &Any’s vtable from &Trait’s.
§

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s.
§

impl<T> DowncastSync for T
where T: Any + Send + Sync,

§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Send + Sync>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
§

impl<C> DynamicBundle for C
where C: Component,

§

fn get_components(self, func: &mut impl FnMut(StorageType, OwningPtr<'_>))

§

impl<T> DynamicTypePath for T
where T: TypePath,

source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<S> FromSample<S> for S

§

fn from_sample_(s: S) -> S

§

impl<T> FromWorld for T
where T: Default,

§

fn from_world(_world: &mut World) -> T

Creates Self using data from the given World.
§

impl<S> GetField for S
where S: Struct,

§

fn get_field<T>(&self, name: &str) -> Option<&T>
where T: Reflect,

Returns a reference to the value of the field named name, downcast to T.
§

fn get_field_mut<T>(&mut self, name: &str) -> Option<&mut T>
where T: Reflect,

Returns a mutable reference to the value of the field named name, downcast to T.
§

impl<T> GetPath for T
where T: Reflect + ?Sized,

§

fn reflect_path<'p>( &self, path: impl ReflectPath<'p> ) -> Result<&(dyn Reflect + 'static), ReflectPathError<'p>>

Returns a reference to the value specified by path. Read more
§

fn reflect_path_mut<'p>( &mut self, path: impl ReflectPath<'p> ) -> Result<&mut (dyn Reflect + 'static), ReflectPathError<'p>>

Returns a mutable reference to the value specified by path. Read more
§

fn path<'p, T>( &self, path: impl ReflectPath<'p> ) -> Result<&T, ReflectPathError<'p>>
where T: Reflect,

Returns a statically typed reference to the value specified by path. Read more
§

fn path_mut<'p, T>( &mut self, path: impl ReflectPath<'p> ) -> Result<&mut T, ReflectPathError<'p>>
where T: Reflect,

Returns a statically typed mutable reference to the value specified by path. Read more
§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> IntoEither for T

source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
§

impl<F, T> IntoSample<T> for F
where T: FromSample<F>,

§

fn into_sample(self) -> T

§

impl<T> NoneValue for T
where T: Default,

§

type NoneType = T

§

fn null_value() -> T

The none-equivalent value.
§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
source§

impl<R, P> ReadPrimitive<R> for P
where R: Read + ReadEndian<P>, P: Default,

source§

fn read_from_little_endian(read: &mut R) -> Result<Self, Error>

Read this value from the supplied reader. Same as ReadEndian::read_from_little_endian().
source§

fn read_from_big_endian(read: &mut R) -> Result<Self, Error>

Read this value from the supplied reader. Same as ReadEndian::read_from_big_endian().
source§

fn read_from_native_endian(read: &mut R) -> Result<Self, Error>

Read this value from the supplied reader. Same as ReadEndian::read_from_native_endian().
source§

impl<T> Same for T

§

type Output = T

Should always be Self
source§

impl<T> Serialize for T
where T: Serialize + ?Sized,

source§

fn erased_serialize(&self, serializer: &mut dyn Serializer) -> Result<(), Error>

source§

fn do_erased_serialize( &self, serializer: &mut dyn Serializer ) -> Result<(), ErrorImpl>

source§

impl<T> ToOwned for T
where T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
§

impl<T, U> ToSample<U> for T
where U: FromSample<T>,

§

fn to_sample_(self) -> U

source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<T> TypeData for T
where T: 'static + Send + Sync + Clone,

§

fn clone_type_data(&self) -> Box<dyn TypeData>

§

impl<T> Upcast<T> for T

§

fn upcast(&self) -> Option<&T>

§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more
§

impl<T> ConditionalSend for T
where T: Send,

source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,

§

impl<S, T> Duplex<S> for T
where T: FromSample<S> + ToSample<S>,

§

impl<T> Settings for T
where T: 'static + Send + Sync,

§

impl<T> WasmNotSend for T
where T: Send,

§

impl<T> WasmNotSendSync for T
where T: WasmNotSend + WasmNotSync,

§

impl<T> WasmNotSync for T
where T: Sync,