pub struct Section<'a, X = Extra> {
pub screen_position: (f32, f32),
pub bounds: (f32, f32),
pub layout: Layout<BuiltInLineBreaker>,
pub text: Vec<Text<'a, X>>,
}
Expand description
An object that contains all the info to render a varied section of text. That is one including many parts with differing fonts/scales/colors bowing to a single layout.
§Example
use glyph_brush::{HorizontalAlign, Layout, Section, Text};
let section = Section::default()
.add_text(Text::new("The last word was ").with_color([0.0, 0.0, 0.0, 1.0]))
.add_text(Text::new("RED").with_color([1.0, 0.0, 0.0, 1.0]))
.with_layout(Layout::default().h_align(HorizontalAlign::Center));
§Extra
Extra text section data is stored in a generic type, default Extra
. To use custom
extra
data ensure your custom type implements Debug
, Clone
, PartialEq
& Hash
.
Fields§
§screen_position: (f32, f32)
Position on screen to render text, in pixels from top-left. Defaults to (0, 0).
bounds: (f32, f32)
Max (width, height) bounds, in pixels from top-left. Defaults to unbounded.
layout: Layout<BuiltInLineBreaker>
Built in layout, can be overridden with custom layout logic
see queue_custom_layout
text: Vec<Text<'a, X>>
Text to render, rendered next to one another according the layout.
Implementations§
source§impl Section<'_, ()>
impl Section<'_, ()>
sourcepub fn builder() -> SectionBuilder
pub fn builder() -> SectionBuilder
Return a SectionBuilder
to fluently build up a Section
.
source§impl<'a, X> Section<'a, X>
impl<'a, X> Section<'a, X>
pub fn with_screen_position<P: Into<(f32, f32)>>(self, position: P) -> Self
pub fn with_bounds<P: Into<(f32, f32)>>(self, bounds: P) -> Self
pub fn with_layout<L: Into<Layout<BuiltInLineBreaker>>>(self, layout: L) -> Self
pub fn add_text<T: Into<Text<'a, X>>>(self, text: T) -> Self
pub fn with_text<X2>(self, text: Vec<Text<'_, X2>>) -> Section<'_, X2>
Trait Implementations§
source§impl Default for Section<'static, Extra>
impl Default for Section<'static, Extra>
source§fn default() -> Self
fn default() -> Self
Note this only works for X=Extra
for more flexible use see Section::builder
.
source§impl<'a, X: Clone> From<&'a OwnedSection<X>> for Section<'a, X>
impl<'a, X: Clone> From<&'a OwnedSection<X>> for Section<'a, X>
source§fn from(owned: &'a OwnedSection<X>) -> Self
fn from(owned: &'a OwnedSection<X>) -> Self
use glyph_brush::{OwnedSection, OwnedText, Section};
let section = OwnedSection::default().add_text(OwnedText::new("foo").with_extra(1usize));
let cow: Section<'_, usize> = (§ion).into();
source§impl<'a> From<&'a OwnedVariedSection> for Section<'a>
impl<'a> From<&'a OwnedVariedSection> for Section<'a>
source§fn from(owned: &'a OwnedVariedSection) -> Self
fn from(owned: &'a OwnedVariedSection) -> Self
source§impl<X> From<&Section<'_, X>> for SectionGeometry
impl<X> From<&Section<'_, X>> for SectionGeometry
source§impl<'a> From<&Section<'a>> for VariedSection<'a>
impl<'a> From<&Section<'a>> for VariedSection<'a>
source§impl<'a> From<&VariedSection<'a>> for Section<'a>
impl<'a> From<&VariedSection<'a>> for Section<'a>
source§fn from(s: &VariedSection<'a>) -> Self
fn from(s: &VariedSection<'a>) -> Self
source§impl<'a> From<VariedSection<'a>> for Section<'a>
impl<'a> From<VariedSection<'a>> for Section<'a>
source§fn from(s: VariedSection<'a>) -> Self
fn from(s: VariedSection<'a>) -> Self
impl<'a, X> StructuralPartialEq for Section<'a, X>
Auto Trait Implementations§
impl<'a, X> Freeze for Section<'a, X>
impl<'a, X> RefUnwindSafe for Section<'a, X>where
X: RefUnwindSafe,
impl<'a, X> Send for Section<'a, X>where
X: Send,
impl<'a, X> Sync for Section<'a, X>where
X: Sync,
impl<'a, X> Unpin for Section<'a, X>where
X: Unpin,
impl<'a, X> UnwindSafe for Section<'a, X>where
X: UnwindSafe,
Blanket Implementations§
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
source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)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