
MCU-Renderer ist eine C-Sprache-Grafikbibliothek für MCUs, die sich darauf konzentriert, nicht flackernde, anti-aliased-Text mit geringer Ressourcenanwendungen sowohl für monochrom als auch für Farb-LCD-Displays zu rendern.
Fügen Sie die entsprechende Header-Datei hinzu, um mit MCU-Renderer zu beginnen.
Um die Bibliothek zu initialisieren, rufen Sie die entsprechende Funktion mr_xxx_init() auf. Das Display wird zunächst ausgeschaltet, sodass Sie vor dem ersten Bildschirmaktualisierung zeichnen können. Um die Anzeige einzuschalten, rufen Sie mr_xxx_set_display() auf. Auf Farb -LCD -Bildschirmen müssen Sie auch den Schlafmodus mit mr_xxx_set_sleep() deaktivieren.
Geben Sie als nächstes die Schriftarten ein. Sie können die im Ordner Schriftarten verfügbaren Schriftarten verwenden oder Ihre eigene vorbereiten, wie der Abschnitt "Vorbereitungen" erklärt.
Richten Sie danach ein Bildschirmlayout ein, das aus nicht überlappenden Rechtecken besteht. Dadurch wird das Flackern beim Aktualisieren des Bildschirms vermieden.
Um ein gefülltes Rechteck zu zeichnen, rufen Sie mr_set_fill_color() an, um die Füllfarbe und mr_draw_rectangle() für die tatsächliche Zeichnung festzulegen. Sie können Webfarben (z. B. #FF2020) in MCU-Renderer-Farben mit dem mr_get_color Makro konvertieren.
Um eine Bitmap in einem von Benutzer bereitgestellten uint8_t -Framebuffer zu zeichnen, rufen Sie mr_set_stroke_color() auf, um die Vordergrundfarbe festzulegen, mr_set_fill_color() um die Hintergrundfarbe und mr_draw_bitmap() zum Zeichnen der Bitmap festzulegen.
Um ein Bild in einem von Benutzer bereitgestellten RGB565-Framebuffer zu zeichnen, rufen Sie mr_draw_image() auf.
To draw a text rectangle, call mr_set_font() to set the font, mr_set_fill_color() to set the background color, mr_set_stroke_color() to set the text color, and mr_draw_text() , mr_draw_text_utf8() and mr_draw_text_utf16() to render C-strings, UTF-8 strings and UTF-16 Saiten. Der offset -Parameter gibt die obere linke Ecke des Textes innerhalb des Zeichnungsrechtecks an: Verwenden Sie horizontal zum Zentrum von Text die Funktionen mr_get_text_width() , mr_get_text_utf8_width() und mr_get_text_utf16_width() Funktionen; Um den Text vertikal zu zentrieren, erhalten Sie die Metriken der aktuellen Schriftart mit mr_get_cap_height() (Höhe von Großbuchstaben a), mr_get_ascent() (oben in der Zeile zu Grundlinie), mr_get_descent() (Basis bis unter die Leitung) und mr_get_line_height() (Höhe der Linie). Stellen Sie sicher, dass Sie die Schriftart einstellen, bevor Sie alle Metriken abrufen.
Rechteckgrenzen dürfen die Anzeigegröße nicht überschreiten. Der offset -Parameter der Textzeichnungsfunktionen ist nicht begrenzt.
Monochromanzeigen und SDL erfordern eine Bildschirm -Aktualisierung. Rufen Sie zum Auftun des Bildschirms mr_xxx_refresh_screen() auf, nachdem Sie die Zeichnung beendet haben.
Siehe Beispiele.
(ASCII-Zeichen 0x20-0x7e)
(Größen in Bytes)
| Schriftart | Roboto 12 px | Roboto 24 px | Roboto 48 PX | Roboto 72 px |
|---|---|---|---|---|
| Adafruit_gfx/tft_espi (1 bpp) | 3832 | 14589 | 56677 | 129389 |
| U8G2 (1 BPP) | 1508 | 3039 | 6632 | N / A |
| MCU-Renderer 1 BPP | 1473 | 2891 | 5902 | 9511 |
| MCU-Renderer 2 BPP | 2052 | 4162 | 8743 | 13969 |
| MCU-Renderer 3 BPP | 2695 | 5677 | 12128 | 18701 |
| MCU-Renderer 4 BPP | 3328 | 7329 | 15533 | 23676 |
| McUfont (4 BPP) | 3125 | 6296 | 12969 | 20045 |
| Tft_espi (VLW) | 7642 | 19387 | 65833 | 143333 |
Um Ihre Schriftarten in das MCU-Renderer-Format umzuwandeln, verwenden Sie das fontconv Tool (in Binärform unter Releases erhältlich), mit dem Sie sowohl .bdf als auch .pcf Bitmap-Schriftarten sowie .ttf , .ttc , .otf , .otc und .woff Vector-FONT konvertieren können.
In der digitalen Typografie werden 72 Punkte normalerweise als 96 Pixel definiert. Um eine Vektor -Schriftart auf eine bestimmte Pixelgröße zu rasterisieren, konvertieren Sie die Pixelgröße in eine Punktgröße, indem Sie mit dem Faktor 4/3 multiplizieren. Nicht alle Schriftarten folgen dieser Regel, daher müssen Sie diesen Faktor möglicherweise optimieren.
fontconv berechnet die Kappenhöhe (die Höhe des Großbuchstabens A) als Differenz zwischen der Aufstiegshöhe (oberhalb der Linie bis zur Grundlinie) und der Abstiegshöhe (Grundlinie bis unterer Linie). Bei einigen Schriftarten ist diese Berechnung ungenau, sodass Sie die CAP -Höhe überschreiben können, um das richtige Ergebnis zu erzielen. Sie können auch die Aufstiegshöhe und die Abstiegshöhe überschreiben.