GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — Refactor RendererAgg.draw_{mathtext,text,tex} to use same base algorithm by QuLogic · Pull Request #31085 · matplotlib/matplotlib

Conversation

@QuLogic

@QuLogic QuLogic commented Feb 5, 2026

Copy link
Copy Markdown
Member

PR summary

I pulled this out of #30725 because it was independent of that, and was the cause of the image changes there, so it might be easier to review this as a separate change. The test image changes are rather subtle effects on the edges of rotated text, and probably nothing to worry about.

PR checklist

  • [n/a] "closes #0000" is in the body of the PR description to link the related issue
  • new and changed code is tested
  • [n/a] Plotting related features are demonstrated in an example
  • [n/a] New Features and API Changes are noted with a directive and release note
  • [n/a] Documentation complies with general and docstring guidelines

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
@QuLogic QuLogic added this to the v3.11.0 milestone Feb 5, 2026
@QuLogic QuLogic added this to Font and text overhaul Feb 5, 2026
@github-project-automation github-project-automation Bot moved this to Waiting for other PR in Font and text overhaul Feb 5, 2026
@QuLogic QuLogic moved this from Waiting for other PR to Ready for Review in Font and text overhaul Feb 5, 2026
@github-actions github-actions Bot added topic: mplot3d backend: agg topic: text/fonts labels Feb 5, 2026
@QuLogic QuLogic mentioned this pull request Feb 5, 2026
Add support for (some) colour fonts #30725
Open
5 tasks
@QuLogic QuLogic changed the title Refactor RendererAgg.{draw_mathtext,draw_text} to use same glyph drawing algorithm Refactor RendererAgg.draw_{mathtext,text} to use same glyph drawing algorithm Feb 5, 2026
@QuLogic

QuLogic commented Feb 5, 2026

Copy link
Copy Markdown
Member Author

Note, I have prepared a refactor including #30039 if you want to wait before/after that is merged.

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

anntzer
anntzer approved these changes Feb 5, 2026
View reviewed changes
@anntzer

anntzer commented Feb 5, 2026

Copy link
Copy Markdown
Contributor

Actually, let's get #30039 in first, given that you already did the necessary work to build on top of it; thanks!

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

tacaswell
tacaswell approved these changes Feb 5, 2026
View reviewed changes
@QuLogic
QuLogic force-pushed the render-glyphs branch from b29dc90 to 0b7412a Compare February 6, 2026 03:25
@QuLogic QuLogic changed the title Refactor RendererAgg.draw_{mathtext,text} to use same glyph drawing algorithm Refactor RendererAgg.draw_{mathtext,text,tex} to use same base algorithm Feb 6, 2026
@QuLogic

QuLogic commented Feb 6, 2026

Copy link
Copy Markdown
Member Author

Now rebased to include the changes to draw_tex since #30039 went in. The test image changes are the same as before, since they were due to the first commit here. I'll leave this until tomorrow just in case there's anything you want to re-review here.

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

QuLogic added 4 commits February 6, 2026 15:38
@QuLogic
Change RendererAgg.draw_text to use FT2Font._render_glyph
931bcf3
This makes it more similar to `draw_mathtext`, and is necessary for
colour fonts, where the previously-cached bitmap would have been
downgraded to black&white strokes by FreeType when copied. It should
also reduce the necessary code paths with the other text drawing methods
as well.
@QuLogic
Deduplicate RendererAgg.draw_{mathtext,text}
6ec8fc8
All the glyph drawing loop is the same, other than a flexible size in
the former.
@QuLogic
Deduplicate RendererAgg.draw_tex with draw_{mathtext,text}
9a185c6
All the glyph drawing loop is the same, other than a slight transform
difference with slant/extend in the former.
@QuLogic
Also deduplicate box rendering in RendererAgg.draw_{mathtext,tex}
754bdab
@QuLogic
QuLogic force-pushed the render-glyphs branch from 0b7412a to 754bdab Compare February 6, 2026 20:47
@github-actions github-actions Bot removed the topic: mplot3d label Feb 6, 2026
@QuLogic
QuLogic merged commit c1d3c87 into matplotlib:text-overhaul Feb 6, 2026
35 of 37 checks passed

Uh oh!

There was an error while loading. Please reload this page.

@QuLogic
QuLogic deleted the render-glyphs branch February 6, 2026 22:26
@github-project-automation github-project-automation Bot moved this from Ready for Review to Done in Font and text overhaul Feb 6, 2026
wavebyrd pushed a commit to wavebyrd/matplotlib that referenced this pull request Mar 13, 2026
@QuLogic
Merge pull request matplotlib#31085 from QuLogic/render-glyphs
ec9f844
Refactor RendererAgg.draw_{mathtext,text,tex} to use same base algorithm
QuLogic added a commit to QuLogic/matplotlib that referenced this pull request Apr 10, 2026
@QuLogic
Update test images for font/text overhaul
12d2a4d
This includes images changes for the following pull requests / commits:

* [Fix center of rotation with
  rotation_mode='anchor'](matplotlib#29199)
  (c44db77)
* [Remove ttconv backwards-compatibility
  code](matplotlib#30145)
  (8caff88)
* [Remove kerning_factor from
  tests](matplotlib#29816)
  (7b4d725)
* [Set text hinting to
  defaults](matplotlib#29816)
  (8255ae2)
* [Update FreeType to
  2.13.3](matplotlib#29816)
  (89c054d)
* [Implement text shaping with
  libraqm](matplotlib#30000)
  (b0ded3a,
  9813523)
* [Add language parameter to Text
  objects](matplotlib#29794)
  (7ce8eae)
* [Fix auto-sized glyphs with BaKoMa
  fonts](matplotlib#29936)
  (3ba2c13)
* [pdf: Improve text with characters outside embedded font
  limits](matplotlib#30512)
  (b70fb88,
  6cedcf7)
* [Prepare `CharacterTracker` for advanced font
  features](matplotlib#30608)
  (8274e17,
  70dc388,
  df670cf,
  ed5e074)
* [Add font feature API to
  Text](matplotlib#29695)
  (972a688)
* [Fix spacing in r"$\max
  f$"](matplotlib#30715)
  (4a99a83)
* [Implement libraqm for vector
  outputs](matplotlib#30607)
  (bd17cd4)
* [Drop the FT2Font intermediate
  buffer](matplotlib#30059)
  (9d7d7b4)
* [Rasterize dvi files without
  dvipng](matplotlib#30039)
  (7627118)
* [Update bundled FreeType and HarfBuzz
  libraries](matplotlib#30938)
  (a161658,
  9619bcc)
* [Fix positioning of wide mathtext
  accents](matplotlib#31069)
  (c2fa7ba)
* [Refactor RendererAgg.draw_{mathtext,text,tex} to use same base
  algorithm](matplotlib#31085)
  (931bcf3)
* [Implement TeX's fraction and script
  alignment](matplotlib#31046)
  (94ff452,
  4bfa0f9,
  1cd8510)
* [Fix confusion between text height and ascent in metrics
  calculations](matplotlib#31107)
  (60f2310)
* [mathtext: Fetch quad width & axis height from font
  metrics](matplotlib#31110)
  (692df3f,
  383028b)
* [mathtext: add mathnormal and distinguish between normal and italic
  family](matplotlib#31121)
  (a6913f3)
* [ENH: Ignore empty text for
  tightbbox](matplotlib#31285)
  (d772043)
* [Drop axis_artist tickdir image compat, due to text-overhaul
  merge](matplotlib#31281)
  (2057583)
* [text: Use font metrics to determine line
  heights](matplotlib#31291)
  (3ab6a27,
  d961462,
  97f4943)
* [ps/pdf: Override font height metrics to support AFM
  files](matplotlib#31371)
  (e0913d4)
* [TST: Cleanup back-compat code in tests touched by text
  overhaul](matplotlib#31295)
  (7c33379)
* [TST: Set tests touched by text overhaul to mpl20
  style](matplotlib#31300)
  (41c4d8d)
@QuLogic QuLogic mentioned this pull request Apr 10, 2026
Font and text overhaul #30161
Merged
4 tasks done
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Reviewers

@tacaswell tacaswell tacaswell approved these changes
@anntzer anntzer anntzer approved these changes

Uh oh!

There was an error while loading. Please reload this page.

Assignees

No one assigned

Labels

backend: agg topic: text/fonts

Projects

Font and text overhaul
Status: Done

Milestone

v3.11.0

Development

Successfully merging this pull request may close these issues.

Uh oh!

There was an error while loading. Please reload this page.

3 participants

@QuLogic @anntzer @tacaswell
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.