iris: move text state into shared resources
This commit is contained in:
1 parent
7c23c5f146
commit
51719ed121
17 files changed
+631
-434
No files matched your search
+11
-15
@@ -1,6 +1,6 @@
|
||||
use crate::{
|
||||
Axis, Len, MoveOffset, PaintId, RegionAlign, RenderedText, Size, StrongWidget, TextAttrs,
|
||||
TextBuffer, TextData, TextureHandle, UiData, UiRegion, UiRenderState, UiRsc, UiScalar, UiVec2,
|
||||
Axis, Len, MoveOffset, PaintId, RegionAlign, RenderedText, Size, StrongWidget, TextHandle,
|
||||
TextResources, TextureHandle, UiData, UiRegion, UiRenderState, UiRsc, UiScalar, UiVec2,
|
||||
WidgetId,
|
||||
render::{
|
||||
Drawn, GlyphPrimitive, IMAGE_BINDING, Mask, MaskIdx, MoveIdx, NOT_DRAWN, Primitive,
|
||||
@@ -9,6 +9,7 @@ use crate::{
|
||||
ui::render_state::Retained,
|
||||
util::Vec2,
|
||||
};
|
||||
use std::{cell::RefCell, rc::Rc};
|
||||
|
||||
pub struct Painter<'a> {
|
||||
pub(super) render_state: &'a mut UiRenderState,
|
||||
@@ -413,21 +414,16 @@ impl<'a> Painter<'a> {
|
||||
self.own(h);
|
||||
}
|
||||
|
||||
pub fn render_text(
|
||||
&mut self,
|
||||
buffer: &mut TextBuffer,
|
||||
attrs: &TextAttrs,
|
||||
width: Option<f32>,
|
||||
) -> RenderedText {
|
||||
pub fn render_text(&mut self, text: &TextHandle, width: Option<f32>) -> RenderedText {
|
||||
let density = self.render_state.density;
|
||||
self.render_state.shape_count += 1;
|
||||
let ui: &mut UiData = self.rsc.ui_mut();
|
||||
ui.text
|
||||
.render(buffer, attrs, width, &mut ui.textures, density)
|
||||
let (rendered, prepared) = text.render(width, self.id, &mut ui.textures, density);
|
||||
self.render_state.shape_count += u64::from(prepared);
|
||||
rendered
|
||||
}
|
||||
|
||||
pub fn atlas_generation(&mut self) -> u64 {
|
||||
self.rsc.ui_mut().text.atlas.generation()
|
||||
fn atlas_generation(&self) -> u64 {
|
||||
self.rsc.ui().text.borrow().atlas.generation()
|
||||
}
|
||||
|
||||
pub fn glyphs(&mut self, text: &RenderedText, origin: UiRegion) {
|
||||
@@ -493,8 +489,8 @@ impl<'a> Painter<'a> {
|
||||
self.region.size().to_abs(self.render_state.output_size)
|
||||
}
|
||||
|
||||
pub fn text_data(&mut self) -> &mut TextData {
|
||||
&mut self.rsc.ui_mut().text
|
||||
pub fn text_resources(&mut self) -> Rc<RefCell<TextResources>> {
|
||||
self.rsc.ui().text.clone()
|
||||
}
|
||||
|
||||
pub fn child_layer(&mut self) {
|
||||
|
||||
Reference in new issue
Block a user