MCPcopy Create free account
hub / github.com/TheRedDeveloper/ply-engine / metrics

Method metrics

src/renderer.rs:160–187  ·  view source on GitHub ↗
(&mut self, font_size: u16, font_asset: Option<&'static FontAsset>)

Source from the content-addressed store, hash-verified

158 }
159
160 fn metrics(&mut self, font_size: u16, font_asset: Option<&'static FontAsset>) -> FontMetrics {
161 let font_ptr = font_asset.map_or(0usize, |a| a as *const _ as usize);
162 let key = (font_size, font_ptr);
163 if let Some(&m) = self.font_metrics.get(&key) {
164 return m;
165 }
166 let (font, found) = if let Some(a) = font_asset {
167 let k = a.key();
168 if let Some(data) = self.fonts.get(k) {
169 (Some(&data.font), true)
170 } else if self.default_font.as_ref().map(|d| d.key) == Some(k) {
171 (self.default_font.as_ref().map(|d| &d.font), true)
172 } else {
173 (self.default_font.as_ref().map(|d| &d.font), false)
174 }
175 } else {
176 (self.default_font.as_ref().map(|d| &d.font), true)
177 };
178 let ref_dims = macroquad::text::measure_text("Xig", font, font_size, 1.0);
179 let m = FontMetrics {
180 height: ref_dims.height,
181 baseline_offset: ref_dims.offset_y,
182 };
183 if found {
184 self.font_metrics.insert(key, m);
185 }
186 m
187 }
188
189 /// Load the default font. Stored outside the cache and never evicted.
190 pub async fn load_default(asset: &'static FontAsset) {

Callers 2

renderFunction · 0.80

Calls 2

getMethod · 0.80
keyMethod · 0.80

Tested by

no test coverage detected