8 cm( elem->instance(), this,
"TextSegment" ),
9 geometry_dirty( false ),
10 location( &this->cm ),
34 cm( inst, this,
"TextLayout" ),
35 attr_lineSpacing( &this->cm, 0.0f ),
37 geometry_dirty( false )
52 child->elem()->first_pass( er );
53 this->geometry_dirty = this->geometry_dirty || child->geometry_dirty;
54 child->geometry_dirty =
false;
57 if( this->geometry_dirty || this->
expectedSize.
dirty() || this->attr_lineSpacing.dirty() )
77 width = std::max( width, geometry.
max_width );
92 if( this->geometry_dirty || this->
children_dirty || this->
size.
dirty() || this->modelTransform.dirty() || this->scissor.dirty() )
96 void TextLayout::RepositionChildren()
116 child->location.Set( location );
119 FontMesh::Geometry geometry = child->geometry_Compute( location );
121 fits = fits || geometry.fits;
129 bool refresh =
false;
139 this->geometry_dirty =
false;
144 this->RepositionChildren();
154 for(
auto child : this->children )
161 for(
auto child : this->children )
162 child->elem()->scissor.Set( this->
scissor.Get() );
167 for(
auto it = this->children.rbegin(); it != this->children.rend(); ++it )
170 child->elem()->second_pass( er );