mirror of
https://github.com/bevyengine/bevy
synced 2025-01-11 04:38:57 +00:00
458cb7a9e9
# Objective In this PR I added the ability to opt-out graphical backends. Closes #3155. ## Solution I turned backends into `Option` ~~and removed panicking sub app API to force users handle the error (was suggested by `@cart`)~~.
58 lines
1.5 KiB
Rust
58 lines
1.5 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;
|
|
|
|
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::<VerticalAlign>()
|
|
.register_type::<HorizontalAlign>()
|
|
.init_asset_loader::<FontLoader>()
|
|
.insert_resource(DefaultTextPipeline::default())
|
|
.add_system_to_stage(CoreStage::PostUpdate, text2d_system);
|
|
|
|
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),
|
|
);
|
|
}
|
|
}
|
|
}
|