Skip to content

Commit 70bff04

Browse files
authored
Merge pull request #149 from jposada202020/optimizing_getting_font_info
Ascent_Descent information at start
2 parents d09bac7 + 05c8a9f commit 70bff04

File tree

3 files changed

+8
-10
lines changed

3 files changed

+8
-10
lines changed

adafruit_display_text/__init__.py

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -220,6 +220,7 @@ def __init__(
220220
super().__init__(max_size=1, x=x, y=y, scale=1, **kwargs)
221221

222222
self._font = font
223+
self._ascent, self._descent = self._get_ascent_descent()
223224
self.palette = Palette(2)
224225
self._color = color
225226
self._background_color = background_color
@@ -244,7 +245,7 @@ def __init__(
244245
if self.base_alignment:
245246
self._y_offset = 0
246247
else:
247-
self._y_offset = self._get_ascent() // 2
248+
self._y_offset = self._ascent // 2
248249

249250
def _get_ascent_descent(self) -> Tuple[int, int]:
250251
""" Private function to calculate ascent and descent font values """
@@ -267,9 +268,6 @@ def _get_ascent_descent(self) -> Tuple[int, int]:
267268
descender_max = max(descender_max, -this_glyph.dy)
268269
return ascender_max, descender_max
269270

270-
def _get_ascent(self) -> int:
271-
return self._get_ascent_descent()[0]
272-
273271
@property
274272
def font(self) -> None:
275273
"""Font to use for text display."""

adafruit_display_text/bitmap_label.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -265,7 +265,7 @@ def _reset_text(
265265
if self.base_alignment:
266266
label_position_yoffset = 0
267267
else:
268-
label_position_yoffset = self._get_ascent() // 2
268+
label_position_yoffset = self._ascent // 2
269269

270270
self.tilegrid = displayio.TileGrid(
271271
self.bitmap,
@@ -325,7 +325,7 @@ def _line_spacing_ypixels(font, line_spacing: float) -> int:
325325
def _text_bounding_box(
326326
self, text: str, font, line_spacing: float
327327
) -> Tuple[int, int, int, int, int, int]:
328-
ascender_max, descender_max = self._get_ascent_descent()
328+
ascender_max, descender_max = self._ascent, self._descent
329329

330330
lines = 1
331331

@@ -337,7 +337,7 @@ def _text_bounding_box(
337337
right = x_start
338338
top = bottom = y_start
339339

340-
y_offset_tight = self._get_ascent() // 2
340+
y_offset_tight = self._ascent // 2
341341

342342
newline = False
343343

adafruit_display_text/label.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -150,7 +150,7 @@ def _create_background_box(self, lines: int, y_offset: int) -> None:
150150
y_box_offset = self._bounding_box[1]
151151

152152
else: # draw a "loose" bounding box to include any ascenders/descenders.
153-
ascent, descent = self._get_ascent_descent()
153+
ascent, descent = self._ascent, self._descent
154154

155155
if (
156156
self._label_direction == "UPR"
@@ -225,7 +225,7 @@ def _update_background_color(self, new_color: int) -> None:
225225
self._background_color = new_color
226226

227227
lines = self._text.rstrip("\n").count("\n") + 1
228-
y_offset = self._get_ascent() // 2
228+
y_offset = self._ascent // 2
229229

230230
if not self._added_background_tilegrid: # no bitmap is in the self Group
231231
# add bitmap if text is present and bitmap sizes > 0 pixels
@@ -279,7 +279,7 @@ def _update_text(
279279
if self.base_alignment:
280280
self._y_offset = 0
281281
else:
282-
self._y_offset = self._get_ascent() // 2
282+
self._y_offset = self._ascent // 2
283283

284284
if self._label_direction == "RTL":
285285
left = top = bottom = 0

0 commit comments

Comments
 (0)