mirror of
https://github.com/bevyengine/bevy
synced 2024-12-25 20:43:07 +00:00
ffecb05a0a
This makes the [New Bevy Renderer](#2535) the default (and only) renderer. The new renderer isn't _quite_ ready for the final release yet, but I want as many people as possible to start testing it so we can identify bugs and address feedback prior to release. The examples are all ported over and operational with a few exceptions: * I removed a good portion of the examples in the `shader` folder. We still have some work to do in order to make these examples possible / ergonomic / worthwhile: #3120 and "high level shader material plugins" are the big ones. This is a temporary measure. * Temporarily removed the multiple_windows example: doing this properly in the new renderer will require the upcoming "render targets" changes. Same goes for the render_to_texture example. * Removed z_sort_debug: entity visibility sort info is no longer available in app logic. we could do this on the "render app" side, but i dont consider it a priority.
42 lines
1.2 KiB
Rust
42 lines
1.2 KiB
Rust
use crate::{CalculatedSize, UiImage};
|
|
use bevy_asset::Assets;
|
|
use bevy_ecs::{
|
|
component::Component,
|
|
query::With,
|
|
reflect::ReflectComponent,
|
|
system::{Query, Res},
|
|
};
|
|
use bevy_math::Size;
|
|
use bevy_reflect::{Reflect, ReflectDeserialize};
|
|
use bevy_render::texture::Image;
|
|
use serde::{Deserialize, Serialize};
|
|
|
|
#[derive(Component, Debug, Clone, Reflect, Serialize, Deserialize)]
|
|
#[reflect_value(Component, Serialize, Deserialize)]
|
|
pub enum ImageMode {
|
|
KeepAspect,
|
|
}
|
|
|
|
impl Default for ImageMode {
|
|
fn default() -> Self {
|
|
ImageMode::KeepAspect
|
|
}
|
|
}
|
|
|
|
pub fn image_node_system(
|
|
textures: Res<Assets<Image>>,
|
|
mut query: Query<(&mut CalculatedSize, &UiImage), With<ImageMode>>,
|
|
) {
|
|
for (mut calculated_size, image) in query.iter_mut() {
|
|
if let Some(texture) = textures.get(image.0.clone_weak()) {
|
|
let size = Size {
|
|
width: texture.texture_descriptor.size.width as f32,
|
|
height: texture.texture_descriptor.size.height as f32,
|
|
};
|
|
// Update only if size has changed to avoid needless layout calculations
|
|
if size != calculated_size.size {
|
|
calculated_size.size = size;
|
|
}
|
|
}
|
|
}
|
|
}
|