 3817afc1f4
			
		
	
	
		3817afc1f4
		
	
	
	
	
		
			
			# Objective - While generating https://github.com/jakobhellermann/bevy_reflect_ts_type_export/blob/main/generated/types.ts, I noticed that some types that implement `Reflect` did not register themselves - `Viewport` isn't reflect but can be (there's a TODO) ## Solution - register all reflected types - derive `Reflect` for `Viewport` ## Changelog - more types are not registered in the type registry - remove `Serialize`, `Deserialize` impls from `Viewport` I also decided to remove the `Serialize, Deserialize` from the `Viewport`, since they were (AFAIK) only used for reflection, which now is done without serde. So this is technically a breaking change for people who relied on that impl directly. Personally I don't think that every bevy type should implement `Serialize, Deserialize`, as that would lead to a ton of code generation that mostly isn't necessary because we can do the same with `Reflect`, but if this is deemed controversial I can remove it from this PR. ## Migration Guide - `KeyCode` now implements `Reflect` not as `reflect_value`, but with proper struct reflection. The `Serialize` and `Deserialize` impls were removed, now that they are no longer required for scene serialization.
		
			
				
	
	
		
			65 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Rust
		
	
	
	
	
	
			
		
		
	
	
			65 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Rust
		
	
	
	
	
	
| mod error;
 | |
| mod font;
 | |
| mod font_atlas;
 | |
| mod font_atlas_set;
 | |
| mod font_loader;
 | |
| mod glyph_brush;
 | |
| mod pipeline;
 | |
| mod text;
 | |
| mod text2d;
 | |
| 
 | |
| pub use error::*;
 | |
| pub use font::*;
 | |
| pub use font_atlas::*;
 | |
| pub use font_atlas_set::*;
 | |
| pub use font_loader::*;
 | |
| pub use glyph_brush::*;
 | |
| pub use pipeline::*;
 | |
| pub use text::*;
 | |
| pub use text2d::*;
 | |
| 
 | |
| pub mod prelude {
 | |
|     #[doc(hidden)]
 | |
|     pub use crate::{
 | |
|         Font, HorizontalAlign, Text, Text2dBundle, TextAlignment, TextError, TextSection,
 | |
|         TextStyle, VerticalAlign,
 | |
|     };
 | |
| }
 | |
| 
 | |
| use bevy_app::prelude::*;
 | |
| use bevy_asset::AddAsset;
 | |
| use bevy_ecs::{entity::Entity, schedule::ParallelSystemDescriptorCoercion};
 | |
| use bevy_render::{RenderApp, RenderStage};
 | |
| use bevy_sprite::SpriteSystem;
 | |
| use bevy_window::ModifiesWindows;
 | |
| 
 | |
| pub type DefaultTextPipeline = TextPipeline<Entity>;
 | |
| 
 | |
| #[derive(Default)]
 | |
| pub struct TextPlugin;
 | |
| 
 | |
| impl Plugin for TextPlugin {
 | |
|     fn build(&self, app: &mut App) {
 | |
|         app.add_asset::<Font>()
 | |
|             .add_asset::<FontAtlasSet>()
 | |
|             .register_type::<Text>()
 | |
|             .register_type::<TextSection>()
 | |
|             .register_type::<TextAlignment>()
 | |
|             .register_type::<VerticalAlign>()
 | |
|             .register_type::<HorizontalAlign>()
 | |
|             .init_asset_loader::<FontLoader>()
 | |
|             .insert_resource(DefaultTextPipeline::default())
 | |
|             .add_system_to_stage(
 | |
|                 CoreStage::PostUpdate,
 | |
|                 update_text2d_layout.after(ModifiesWindows),
 | |
|             );
 | |
| 
 | |
|         if let Ok(render_app) = app.get_sub_app_mut(RenderApp) {
 | |
|             render_app.add_system_to_stage(
 | |
|                 RenderStage::Extract,
 | |
|                 extract_text2d_sprite.after(SpriteSystem::ExtractSprites),
 | |
|             );
 | |
|         }
 | |
|     }
 | |
| }
 |