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’sWM_CLASS
.macOS
,iOS
,Android
, andWeb
: 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.
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
impl Window
pub fn set_maximized(&mut self, maximized: bool)
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)
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.
pub fn width(&self) -> f32
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?
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
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?
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
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?
More examples
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
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
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
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?
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
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>
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?
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
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);
}
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));
}
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,
);
}
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>
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>)
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>)
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 Component for Window
impl Component for Window
§const STORAGE_TYPE: StorageType = bevy_ecs::component::StorageType::Table
const STORAGE_TYPE: StorageType = bevy_ecs::component::StorageType::Table
§fn register_component_hooks(_hooks: &mut ComponentHooks)
fn register_component_hooks(_hooks: &mut ComponentHooks)
ComponentHooks
.§impl<'de> Deserialize<'de> for Window
impl<'de> Deserialize<'de> for Window
§fn deserialize<__D>(
__deserializer: __D
) -> Result<Window, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(
__deserializer: __D
) -> Result<Window, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
§impl FromReflect for Windowwhere
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,
impl FromReflect for Windowwhere
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>
fn from_reflect(reflect: &(dyn Reflect + 'static)) -> Option<Window>
Self
from a reflected value.§fn take_from_reflect(
reflect: Box<dyn Reflect>
) -> Result<Self, Box<dyn Reflect>>
fn take_from_reflect( reflect: Box<dyn Reflect> ) -> Result<Self, Box<dyn Reflect>>
Self
using,
constructing the value using from_reflect
if that fails. Read more§impl GetTypeRegistration for Windowwhere
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,
impl GetTypeRegistration for Windowwhere
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
fn get_type_registration() -> TypeRegistration
TypeRegistration
for this type.§fn register_type_dependencies(registry: &mut TypeRegistry)
fn register_type_dependencies(registry: &mut TypeRegistry)
§impl Reflect for Windowwhere
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,
impl Reflect for Windowwhere
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>
fn get_represented_type_info(&self) -> Option<&'static TypeInfo>
§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut dyn Any
.§fn as_reflect(&self) -> &(dyn Reflect + 'static)
fn as_reflect(&self) -> &(dyn Reflect + 'static)
§fn as_reflect_mut(&mut self) -> &mut (dyn Reflect + 'static)
fn as_reflect_mut(&mut self) -> &mut (dyn Reflect + 'static)
§fn clone_value(&self) -> Box<dyn Reflect>
fn clone_value(&self) -> Box<dyn Reflect>
Reflect
trait object. Read more§fn set(&mut self, value: Box<dyn Reflect>) -> Result<(), Box<dyn Reflect>>
fn set(&mut self, value: Box<dyn Reflect>) -> Result<(), Box<dyn Reflect>>
§fn apply(&mut self, value: &(dyn Reflect + 'static))
fn apply(&mut self, value: &(dyn Reflect + 'static))
§fn reflect_kind(&self) -> ReflectKind
fn reflect_kind(&self) -> ReflectKind
§fn reflect_ref(&self) -> ReflectRef<'_>
fn reflect_ref(&self) -> ReflectRef<'_>
§fn reflect_mut(&mut self) -> ReflectMut<'_>
fn reflect_mut(&mut self) -> ReflectMut<'_>
§fn reflect_owned(self: Box<Window>) -> ReflectOwned
fn reflect_owned(self: Box<Window>) -> ReflectOwned
§fn reflect_partial_eq(&self, value: &(dyn Reflect + 'static)) -> Option<bool>
fn reflect_partial_eq(&self, value: &(dyn Reflect + 'static)) -> Option<bool>
§fn reflect_hash(&self) -> Option<u64>
fn reflect_hash(&self) -> Option<u64>
§fn debug(&self, f: &mut Formatter<'_>) -> Result<(), Error>
fn debug(&self, f: &mut Formatter<'_>) -> Result<(), Error>
§fn serializable(&self) -> Option<Serializable<'_>>
fn serializable(&self) -> Option<Serializable<'_>>
§fn is_dynamic(&self) -> bool
fn is_dynamic(&self) -> bool
§impl Serialize for Window
impl Serialize for Window
§fn serialize<__S>(
&self,
__serializer: __S
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
fn serialize<__S>(
&self,
__serializer: __S
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
§impl Struct for Windowwhere
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,
impl Struct for Windowwhere
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)>
fn field(&self, name: &str) -> Option<&(dyn Reflect + 'static)>
name
as a &dyn Reflect
.§fn field_mut(&mut self, name: &str) -> Option<&mut (dyn Reflect + 'static)>
fn field_mut(&mut self, name: &str) -> Option<&mut (dyn Reflect + 'static)>
name
as a
&mut dyn Reflect
.§fn field_at(&self, index: usize) -> Option<&(dyn Reflect + 'static)>
fn field_at(&self, index: usize) -> Option<&(dyn Reflect + 'static)>
index
as a
&dyn Reflect
.§fn field_at_mut(&mut self, index: usize) -> Option<&mut (dyn Reflect + 'static)>
fn field_at_mut(&mut self, index: usize) -> Option<&mut (dyn Reflect + 'static)>
index
as a &mut dyn Reflect
.§fn iter_fields(&self) -> FieldIter<'_> ⓘ
fn iter_fields(&self) -> FieldIter<'_> ⓘ
§fn clone_dynamic(&self) -> DynamicStruct
fn clone_dynamic(&self) -> DynamicStruct
DynamicStruct
.§impl TypePath for Window
impl TypePath for Window
§fn short_type_path() -> &'static str
fn short_type_path() -> &'static str
§fn type_ident() -> Option<&'static str>
fn type_ident() -> Option<&'static str>
§fn crate_name() -> Option<&'static str>
fn crate_name() -> Option<&'static str>
§impl Typed for Windowwhere
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,
impl Typed for Windowwhere
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,
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§
§impl<T, U> AsBindGroupShaderType<U> for T
impl<T, U> AsBindGroupShaderType<U> for T
§fn as_bind_group_shader_type(&self, _images: &RenderAssets<GpuImage>) -> U
fn as_bind_group_shader_type(&self, _images: &RenderAssets<GpuImage>) -> U
T
ShaderType
for self
. When used in AsBindGroup
derives, it is safe to assume that all images in self
exist.source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
§impl<C> Bundle for Cwhere
C: Component,
impl<C> Bundle for Cwhere
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
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
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>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
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)
fn as_any(&self) -> &(dyn Any + 'static)
&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)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&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
impl<T> DowncastSync for T
§impl<C> DynamicBundle for Cwhere
C: Component,
impl<C> DynamicBundle for Cwhere
C: Component,
fn get_components(self, func: &mut impl FnMut(StorageType, OwningPtr<'_>))
§impl<T> DynamicTypePath for Twhere
T: TypePath,
impl<T> DynamicTypePath for Twhere
T: TypePath,
§fn reflect_type_path(&self) -> &str
fn reflect_type_path(&self) -> &str
TypePath::type_path
.§fn reflect_short_type_path(&self) -> &str
fn reflect_short_type_path(&self) -> &str
§fn reflect_type_ident(&self) -> Option<&str>
fn reflect_type_ident(&self) -> Option<&str>
TypePath::type_ident
.§fn reflect_crate_name(&self) -> Option<&str>
fn reflect_crate_name(&self) -> Option<&str>
TypePath::crate_name
.§fn reflect_module_path(&self) -> Option<&str>
fn reflect_module_path(&self) -> Option<&str>
§impl<S> FromSample<S> for S
impl<S> FromSample<S> for S
fn from_sample_(s: S) -> S
§impl<T> FromWorld for Twhere
T: Default,
impl<T> FromWorld for Twhere
T: Default,
§fn from_world(_world: &mut World) -> T
fn from_world(_world: &mut World) -> T
Self
using data from the given World
.§impl<T> GetPath for T
impl<T> GetPath for T
§fn reflect_path<'p>(
&self,
path: impl ReflectPath<'p>
) -> Result<&(dyn Reflect + 'static), ReflectPathError<'p>>
fn reflect_path<'p>( &self, path: impl ReflectPath<'p> ) -> Result<&(dyn Reflect + 'static), ReflectPathError<'p>>
path
. Read more§fn reflect_path_mut<'p>(
&mut self,
path: impl ReflectPath<'p>
) -> Result<&mut (dyn Reflect + 'static), ReflectPathError<'p>>
fn reflect_path_mut<'p>( &mut self, path: impl ReflectPath<'p> ) -> Result<&mut (dyn Reflect + 'static), ReflectPathError<'p>>
path
. Read more§fn path<'p, T>(
&self,
path: impl ReflectPath<'p>
) -> Result<&T, ReflectPathError<'p>>where
T: Reflect,
fn path<'p, T>(
&self,
path: impl ReflectPath<'p>
) -> Result<&T, ReflectPathError<'p>>where
T: Reflect,
path
. Read more§fn path_mut<'p, T>(
&mut self,
path: impl ReflectPath<'p>
) -> Result<&mut T, ReflectPathError<'p>>where
T: Reflect,
fn path_mut<'p, T>(
&mut self,
path: impl ReflectPath<'p>
) -> Result<&mut T, ReflectPathError<'p>>where
T: Reflect,
path
. Read more§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
source§impl<T> IntoEither for T
impl<T> IntoEither for T
source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
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 moresource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
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 Fwhere
T: FromSample<F>,
impl<F, T> IntoSample<T> for Fwhere
T: FromSample<F>,
fn into_sample(self) -> T
§impl<T> NoneValue for Twhere
T: Default,
impl<T> NoneValue for Twhere
T: Default,
type NoneType = T
§fn null_value() -> T
fn null_value() -> T
§impl<T> Pointable for T
impl<T> Pointable for T
source§impl<R, P> ReadPrimitive<R> for P
impl<R, P> ReadPrimitive<R> for P
source§fn read_from_little_endian(read: &mut R) -> Result<Self, Error>
fn read_from_little_endian(read: &mut R) -> Result<Self, Error>
ReadEndian::read_from_little_endian()
.