Compare commits
5
Commits
develop
...
feat-aa-fonts
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
4e12083566 | ||
|
|
cf4f7be8af | ||
|
|
e69241ef54 | ||
|
|
72b99a2a9c | ||
|
|
62448b3c08 |
@@ -282,8 +282,17 @@ static void renderCharImpl(const GfxRenderer& renderer, GfxRenderer::RenderMode
|
|||||||
const uint8_t bmpVal = 3 - ((byte >> bit_index) & 0x3);
|
const uint8_t bmpVal = 3 - ((byte >> bit_index) & 0x3);
|
||||||
|
|
||||||
if (renderMode == GfxRenderer::BW && bmpVal < 3) {
|
if (renderMode == GfxRenderer::BW && bmpVal < 3) {
|
||||||
// Black (also paints over the grays in BW mode)
|
// Default: gray pixels paint solid black. Required when grayscale
|
||||||
renderer.drawPixel(screenX, screenY, pixelState);
|
// passes follow (their LUT lightens pixels it assumes were just
|
||||||
|
// driven solid black), and it is the plain non-AA look otherwise.
|
||||||
|
// Fast AA: partial (anti-aliased edge) coverage dithers with the
|
||||||
|
// same period-2 patterns as fillRectDither (dark grey = 50%
|
||||||
|
// checkerboard, light grey = 25%), approximating AA in a single
|
||||||
|
// BW pass. Skipped pixels leave the background untouched.
|
||||||
|
if (!renderer.isFastAntiAliasing() || bmpVal == 0 || (bmpVal == 1 && ((screenX + screenY) & 1) == 0) ||
|
||||||
|
(bmpVal == 2 && (screenX & 1) == 0 && (screenY & 1) == 0)) {
|
||||||
|
renderer.drawPixel(screenX, screenY, pixelState);
|
||||||
|
}
|
||||||
} else if (renderMode == GfxRenderer::GRAYSCALE_MSB && (bmpVal == 1 || bmpVal == 2)) {
|
} else if (renderMode == GfxRenderer::GRAYSCALE_MSB && (bmpVal == 1 || bmpVal == 2)) {
|
||||||
// Light gray (also mark the MSB if it's going to be a dark gray too)
|
// Light gray (also mark the MSB if it's going to be a dark gray too)
|
||||||
// Dedicated X3 gray LUTs now provide proper 4-level gray on both devices
|
// Dedicated X3 gray LUTs now provide proper 4-level gray on both devices
|
||||||
|
|||||||
@@ -44,6 +44,13 @@ class GfxRenderer {
|
|||||||
RenderMode renderMode;
|
RenderMode renderMode;
|
||||||
Orientation orientation;
|
Orientation orientation;
|
||||||
bool fadingFix;
|
bool fadingFix;
|
||||||
|
// Fast text anti-aliasing: when set, BW-mode rendering of 2-bit glyphs
|
||||||
|
// dithers partial-coverage (gray) pixels instead of painting them solid
|
||||||
|
// black, approximating AA in a single BW pass with no grayscale refresh.
|
||||||
|
// Must stay false when grayscale LSB/MSB passes follow the BW render: the
|
||||||
|
// gray LUT lightens pixels it assumes were just driven solid black, and
|
||||||
|
// dither-skipped white pixels would take its white-drive frames unopposed.
|
||||||
|
bool fastAntiAliasing = false;
|
||||||
uint8_t* frameBuffer = nullptr;
|
uint8_t* frameBuffer = nullptr;
|
||||||
uint16_t panelWidth = HalDisplay::DISPLAY_WIDTH;
|
uint16_t panelWidth = HalDisplay::DISPLAY_WIDTH;
|
||||||
uint16_t panelHeight = HalDisplay::DISPLAY_HEIGHT;
|
uint16_t panelHeight = HalDisplay::DISPLAY_HEIGHT;
|
||||||
@@ -224,6 +231,8 @@ class GfxRenderer {
|
|||||||
// Grayscale functions
|
// Grayscale functions
|
||||||
void setRenderMode(const RenderMode mode) { this->renderMode = mode; }
|
void setRenderMode(const RenderMode mode) { this->renderMode = mode; }
|
||||||
RenderMode getRenderMode() const { return renderMode; }
|
RenderMode getRenderMode() const { return renderMode; }
|
||||||
|
void setFastAntiAliasing(const bool enabled) { this->fastAntiAliasing = enabled; }
|
||||||
|
bool isFastAntiAliasing() const { return fastAntiAliasing; }
|
||||||
// Grayscale preconditioning settle pass (no-op on X4). The rect overload
|
// Grayscale preconditioning settle pass (no-op on X4). The rect overload
|
||||||
// takes the gray region in LOGICAL screen coordinates and rotates it to the
|
// takes the gray region in LOGICAL screen coordinates and rotates it to the
|
||||||
// panel; the no-arg overload settles the full frame. Call after the BW base
|
// panel; the no-arg overload settles the full frame. Call after the BW base
|
||||||
|
|||||||
@@ -65,6 +65,8 @@ STR_SLEEP_COVER_MODE: "Рэжым вокладкі сну"
|
|||||||
STR_HIDE_BATTERY: "Схаваць % батарэі"
|
STR_HIDE_BATTERY: "Схаваць % батарэі"
|
||||||
STR_EXTRA_SPACING: "Дадат. інтэрвал абзаца"
|
STR_EXTRA_SPACING: "Дадат. інтэрвал абзаца"
|
||||||
STR_TEXT_AA: "Згладжванне тэксту"
|
STR_TEXT_AA: "Згладжванне тэксту"
|
||||||
|
STR_TEXT_AA_FULL: "Поўнае"
|
||||||
|
STR_TEXT_AA_FAST: "Хуткае"
|
||||||
STR_SHORT_PWR_BTN: "Кароткае націсканне PWR"
|
STR_SHORT_PWR_BTN: "Кароткае націсканне PWR"
|
||||||
STR_ORIENTATION: "Арыентацыя чытання"
|
STR_ORIENTATION: "Арыентацыя чытання"
|
||||||
STR_SIDE_BTN_LAYOUT: "Бакавыя кнопкі"
|
STR_SIDE_BTN_LAYOUT: "Бакавыя кнопкі"
|
||||||
|
|||||||
@@ -65,6 +65,8 @@ STR_SLEEP_COVER_MODE: "Mode de pantalla de repòs"
|
|||||||
STR_HIDE_BATTERY: "Oculta el % de bateria"
|
STR_HIDE_BATTERY: "Oculta el % de bateria"
|
||||||
STR_EXTRA_SPACING: "Espaiat de paràgraf extra"
|
STR_EXTRA_SPACING: "Espaiat de paràgraf extra"
|
||||||
STR_TEXT_AA: "Antialiàsing del text"
|
STR_TEXT_AA: "Antialiàsing del text"
|
||||||
|
STR_TEXT_AA_FULL: "Complet"
|
||||||
|
STR_TEXT_AA_FAST: "Ràpid"
|
||||||
STR_IMAGES: "Imatges"
|
STR_IMAGES: "Imatges"
|
||||||
STR_IMAGES_DISPLAY: "Mostrar"
|
STR_IMAGES_DISPLAY: "Mostrar"
|
||||||
STR_IMAGES_PLACEHOLDER: "Text de mostra"
|
STR_IMAGES_PLACEHOLDER: "Text de mostra"
|
||||||
|
|||||||
@@ -65,6 +65,8 @@ STR_SLEEP_COVER_MODE: "Obrazovka spánku Režim krytu"
|
|||||||
STR_HIDE_BATTERY: "Skrýt baterii %"
|
STR_HIDE_BATTERY: "Skrýt baterii %"
|
||||||
STR_EXTRA_SPACING: "Extra mezery mezi odstavci"
|
STR_EXTRA_SPACING: "Extra mezery mezi odstavci"
|
||||||
STR_TEXT_AA: "Vyhlazování textu"
|
STR_TEXT_AA: "Vyhlazování textu"
|
||||||
|
STR_TEXT_AA_FULL: "Plné"
|
||||||
|
STR_TEXT_AA_FAST: "Rychlé"
|
||||||
STR_SHORT_PWR_BTN: "Krátké stisknutí tlačítka napájení"
|
STR_SHORT_PWR_BTN: "Krátké stisknutí tlačítka napájení"
|
||||||
STR_ORIENTATION: "Orientace čtení"
|
STR_ORIENTATION: "Orientace čtení"
|
||||||
STR_SIDE_BTN_LAYOUT: "Rozvržení bočních tlačítek (čtečka)"
|
STR_SIDE_BTN_LAYOUT: "Rozvržení bočních tlačítek (čtečka)"
|
||||||
|
|||||||
@@ -65,6 +65,8 @@ STR_SLEEP_COVER_MODE: "Hvile-skærm omslag-tilstand"
|
|||||||
STR_HIDE_BATTERY: "Skjul batteri %"
|
STR_HIDE_BATTERY: "Skjul batteri %"
|
||||||
STR_EXTRA_SPACING: "Ekstra afsnitsafstand"
|
STR_EXTRA_SPACING: "Ekstra afsnitsafstand"
|
||||||
STR_TEXT_AA: "Tekst Anti-Aliasing"
|
STR_TEXT_AA: "Tekst Anti-Aliasing"
|
||||||
|
STR_TEXT_AA_FULL: "Fuld"
|
||||||
|
STR_TEXT_AA_FAST: "Hurtig"
|
||||||
STR_IMAGES: "Billeder"
|
STR_IMAGES: "Billeder"
|
||||||
STR_IMAGES_DISPLAY: "Vis"
|
STR_IMAGES_DISPLAY: "Vis"
|
||||||
STR_IMAGES_PLACEHOLDER: "Pladsholder"
|
STR_IMAGES_PLACEHOLDER: "Pladsholder"
|
||||||
|
|||||||
@@ -65,6 +65,8 @@ STR_SLEEP_COVER_MODE: "Slaapscherm omslag-modus"
|
|||||||
STR_HIDE_BATTERY: "Batterij % verbergen"
|
STR_HIDE_BATTERY: "Batterij % verbergen"
|
||||||
STR_EXTRA_SPACING: "Extra regelafstand alinea"
|
STR_EXTRA_SPACING: "Extra regelafstand alinea"
|
||||||
STR_TEXT_AA: "Tekst Anti-Aliasing"
|
STR_TEXT_AA: "Tekst Anti-Aliasing"
|
||||||
|
STR_TEXT_AA_FULL: "Volledig"
|
||||||
|
STR_TEXT_AA_FAST: "Snel"
|
||||||
STR_IMAGES: "Afbeeldingen"
|
STR_IMAGES: "Afbeeldingen"
|
||||||
STR_IMAGES_DISPLAY: "Weergave"
|
STR_IMAGES_DISPLAY: "Weergave"
|
||||||
STR_IMAGES_PLACEHOLDER: "Placeholder"
|
STR_IMAGES_PLACEHOLDER: "Placeholder"
|
||||||
|
|||||||
@@ -66,6 +66,8 @@ STR_SLEEP_COVER_MODE: "Sleep Screen Cover Mode"
|
|||||||
STR_HIDE_BATTERY: "Hide Battery %"
|
STR_HIDE_BATTERY: "Hide Battery %"
|
||||||
STR_EXTRA_SPACING: "Extra Paragraph Spacing"
|
STR_EXTRA_SPACING: "Extra Paragraph Spacing"
|
||||||
STR_TEXT_AA: "Text Anti-Aliasing"
|
STR_TEXT_AA: "Text Anti-Aliasing"
|
||||||
|
STR_TEXT_AA_FULL: "Full"
|
||||||
|
STR_TEXT_AA_FAST: "Fast"
|
||||||
STR_IMAGES: "Images"
|
STR_IMAGES: "Images"
|
||||||
STR_IMAGES_DISPLAY: "Display"
|
STR_IMAGES_DISPLAY: "Display"
|
||||||
STR_IMAGES_PLACEHOLDER: "Placeholder"
|
STR_IMAGES_PLACEHOLDER: "Placeholder"
|
||||||
|
|||||||
@@ -65,6 +65,8 @@ STR_SLEEP_COVER_MODE: "Lepotilanäytön kansitila"
|
|||||||
STR_HIDE_BATTERY: "Piilota akun %"
|
STR_HIDE_BATTERY: "Piilota akun %"
|
||||||
STR_EXTRA_SPACING: "Kappaleiden lisäväli"
|
STR_EXTRA_SPACING: "Kappaleiden lisäväli"
|
||||||
STR_TEXT_AA: "Tekstin reunanpehmennys"
|
STR_TEXT_AA: "Tekstin reunanpehmennys"
|
||||||
|
STR_TEXT_AA_FULL: "Täysi"
|
||||||
|
STR_TEXT_AA_FAST: "Nopea"
|
||||||
STR_SHORT_PWR_BTN: "Lyhyt virtapainikkeen painallus"
|
STR_SHORT_PWR_BTN: "Lyhyt virtapainikkeen painallus"
|
||||||
STR_ORIENTATION: "Lukusuunta"
|
STR_ORIENTATION: "Lukusuunta"
|
||||||
STR_SIDE_BTN_LAYOUT: "Sivupainikkeiden asettelu (lukija)"
|
STR_SIDE_BTN_LAYOUT: "Sivupainikkeiden asettelu (lukija)"
|
||||||
|
|||||||
@@ -65,6 +65,8 @@ STR_SLEEP_COVER_MODE: "Mode écran de veille"
|
|||||||
STR_HIDE_BATTERY: "Masquer % batterie"
|
STR_HIDE_BATTERY: "Masquer % batterie"
|
||||||
STR_EXTRA_SPACING: "Espacement paragraphes"
|
STR_EXTRA_SPACING: "Espacement paragraphes"
|
||||||
STR_TEXT_AA: "Lissage du texte"
|
STR_TEXT_AA: "Lissage du texte"
|
||||||
|
STR_TEXT_AA_FULL: "Complet"
|
||||||
|
STR_TEXT_AA_FAST: "Rapide"
|
||||||
STR_IMAGES: "Images"
|
STR_IMAGES: "Images"
|
||||||
STR_IMAGES_DISPLAY: "Affichage"
|
STR_IMAGES_DISPLAY: "Affichage"
|
||||||
STR_IMAGES_PLACEHOLDER: "Espace réservé"
|
STR_IMAGES_PLACEHOLDER: "Espace réservé"
|
||||||
|
|||||||
@@ -65,6 +65,8 @@ STR_SLEEP_COVER_MODE: "Standby-Bildmodus"
|
|||||||
STR_HIDE_BATTERY: "Batterie % ausblenden"
|
STR_HIDE_BATTERY: "Batterie % ausblenden"
|
||||||
STR_EXTRA_SPACING: "Absatzabstand"
|
STR_EXTRA_SPACING: "Absatzabstand"
|
||||||
STR_TEXT_AA: "Schriftglättung"
|
STR_TEXT_AA: "Schriftglättung"
|
||||||
|
STR_TEXT_AA_FULL: "Voll"
|
||||||
|
STR_TEXT_AA_FAST: "Schnell"
|
||||||
STR_SHORT_PWR_BTN: "An-Taste kurz drücken"
|
STR_SHORT_PWR_BTN: "An-Taste kurz drücken"
|
||||||
STR_ORIENTATION: "Leseausrichtung"
|
STR_ORIENTATION: "Leseausrichtung"
|
||||||
STR_SIDE_BTN_LAYOUT: "Seitliche Tasten (Lesen)"
|
STR_SIDE_BTN_LAYOUT: "Seitliche Tasten (Lesen)"
|
||||||
|
|||||||
@@ -66,6 +66,8 @@ STR_SLEEP_COVER_MODE: "תצוגת כריכה במצב שינה"
|
|||||||
STR_HIDE_BATTERY: "הסתר אחוזי סוללה"
|
STR_HIDE_BATTERY: "הסתר אחוזי סוללה"
|
||||||
STR_EXTRA_SPACING: "מרווח פסקאות מוגדל"
|
STR_EXTRA_SPACING: "מרווח פסקאות מוגדל"
|
||||||
STR_TEXT_AA: "החלקת קצוות טקסט"
|
STR_TEXT_AA: "החלקת קצוות טקסט"
|
||||||
|
STR_TEXT_AA_FULL: "מלאה"
|
||||||
|
STR_TEXT_AA_FAST: "מהירה"
|
||||||
STR_IMAGES: "תמונות"
|
STR_IMAGES: "תמונות"
|
||||||
STR_IMAGES_DISPLAY: "הצג תמונות"
|
STR_IMAGES_DISPLAY: "הצג תמונות"
|
||||||
STR_IMAGES_PLACEHOLDER: "סמן"
|
STR_IMAGES_PLACEHOLDER: "סמן"
|
||||||
|
|||||||
@@ -65,6 +65,8 @@ STR_SLEEP_COVER_MODE: "Alvásképernyő borítómód"
|
|||||||
STR_HIDE_BATTERY: "Akkumulátor % elrejtése"
|
STR_HIDE_BATTERY: "Akkumulátor % elrejtése"
|
||||||
STR_EXTRA_SPACING: "Extra bekezdésköz"
|
STR_EXTRA_SPACING: "Extra bekezdésköz"
|
||||||
STR_TEXT_AA: "Szöveg élsimítás"
|
STR_TEXT_AA: "Szöveg élsimítás"
|
||||||
|
STR_TEXT_AA_FULL: "Teljes"
|
||||||
|
STR_TEXT_AA_FAST: "Gyors"
|
||||||
STR_IMAGES: "Képek"
|
STR_IMAGES: "Képek"
|
||||||
STR_IMAGES_DISPLAY: "Megjelenítés"
|
STR_IMAGES_DISPLAY: "Megjelenítés"
|
||||||
STR_IMAGES_PLACEHOLDER: "Helyőrző"
|
STR_IMAGES_PLACEHOLDER: "Helyőrző"
|
||||||
|
|||||||
@@ -65,6 +65,8 @@ STR_SLEEP_COVER_MODE: "Modalità copertina"
|
|||||||
STR_HIDE_BATTERY: "Nascondi % batteria"
|
STR_HIDE_BATTERY: "Nascondi % batteria"
|
||||||
STR_EXTRA_SPACING: "Spaziatura extra paragrafi"
|
STR_EXTRA_SPACING: "Spaziatura extra paragrafi"
|
||||||
STR_TEXT_AA: "Anti-aliasing testo"
|
STR_TEXT_AA: "Anti-aliasing testo"
|
||||||
|
STR_TEXT_AA_FULL: "Completo"
|
||||||
|
STR_TEXT_AA_FAST: "Veloce"
|
||||||
STR_IMAGES: "Immagini"
|
STR_IMAGES: "Immagini"
|
||||||
STR_IMAGES_DISPLAY: "Visualizza"
|
STR_IMAGES_DISPLAY: "Visualizza"
|
||||||
STR_IMAGES_PLACEHOLDER: "Segnaposto"
|
STR_IMAGES_PLACEHOLDER: "Segnaposto"
|
||||||
|
|||||||
@@ -64,6 +64,8 @@ STR_SLEEP_COVER_MODE: "Ұйқы экраны мұқаба режимі"
|
|||||||
STR_HIDE_BATTERY: "Батарея % жасыру"
|
STR_HIDE_BATTERY: "Батарея % жасыру"
|
||||||
STR_EXTRA_SPACING: "Қосымша абзац аралығы"
|
STR_EXTRA_SPACING: "Қосымша абзац аралығы"
|
||||||
STR_TEXT_AA: "Мәтін сырғытпасы"
|
STR_TEXT_AA: "Мәтін сырғытпасы"
|
||||||
|
STR_TEXT_AA_FULL: "Толық"
|
||||||
|
STR_TEXT_AA_FAST: "Жылдам"
|
||||||
STR_SHORT_PWR_BTN: "Қуат түймесін қысқа басу"
|
STR_SHORT_PWR_BTN: "Қуат түймесін қысқа басу"
|
||||||
STR_ORIENTATION: "Оқу бағдары"
|
STR_ORIENTATION: "Оқу бағдары"
|
||||||
STR_SIDE_BTN_LAYOUT: "Бүйірлік түймелер орналасуы (оқырман)"
|
STR_SIDE_BTN_LAYOUT: "Бүйірлік түймелер орналасуы (оқырман)"
|
||||||
|
|||||||
@@ -65,6 +65,8 @@ STR_SLEEP_COVER_MODE: "Viršelio režimas"
|
|||||||
STR_HIDE_BATTERY: "Slėpti baterijos %"
|
STR_HIDE_BATTERY: "Slėpti baterijos %"
|
||||||
STR_EXTRA_SPACING: "Tarpai tarp pastraipų"
|
STR_EXTRA_SPACING: "Tarpai tarp pastraipų"
|
||||||
STR_TEXT_AA: "Teksto glotninimas"
|
STR_TEXT_AA: "Teksto glotninimas"
|
||||||
|
STR_TEXT_AA_FULL: "Pilnas"
|
||||||
|
STR_TEXT_AA_FAST: "Greitas"
|
||||||
STR_IMAGES: "Paveikslėliai"
|
STR_IMAGES: "Paveikslėliai"
|
||||||
STR_IMAGES_DISPLAY: "Rodyti"
|
STR_IMAGES_DISPLAY: "Rodyti"
|
||||||
STR_IMAGES_PLACEHOLDER: "Vietaženklis"
|
STR_IMAGES_PLACEHOLDER: "Vietaženklis"
|
||||||
|
|||||||
@@ -65,6 +65,8 @@ STR_SLEEP_COVER_MODE: "Okładki wygaszacza"
|
|||||||
STR_HIDE_BATTERY: "Ukryj % baterii"
|
STR_HIDE_BATTERY: "Ukryj % baterii"
|
||||||
STR_EXTRA_SPACING: "Dodatkowe odstępy paragrafów"
|
STR_EXTRA_SPACING: "Dodatkowe odstępy paragrafów"
|
||||||
STR_TEXT_AA: "Wygładzanie tekstu"
|
STR_TEXT_AA: "Wygładzanie tekstu"
|
||||||
|
STR_TEXT_AA_FULL: "Pełne"
|
||||||
|
STR_TEXT_AA_FAST: "Szybkie"
|
||||||
STR_IMAGES: "Obrazki"
|
STR_IMAGES: "Obrazki"
|
||||||
STR_IMAGES_DISPLAY: "Pokazuj"
|
STR_IMAGES_DISPLAY: "Pokazuj"
|
||||||
STR_IMAGES_PLACEHOLDER: "Ramki"
|
STR_IMAGES_PLACEHOLDER: "Ramki"
|
||||||
|
|||||||
@@ -66,6 +66,8 @@ STR_SLEEP_COVER_MODE: "Modo capa tela repouso"
|
|||||||
STR_HIDE_BATTERY: "Ocultar % da bateria"
|
STR_HIDE_BATTERY: "Ocultar % da bateria"
|
||||||
STR_EXTRA_SPACING: "Espaço de parágrafos extra"
|
STR_EXTRA_SPACING: "Espaço de parágrafos extra"
|
||||||
STR_TEXT_AA: "Suavização de texto"
|
STR_TEXT_AA: "Suavização de texto"
|
||||||
|
STR_TEXT_AA_FULL: "Completa"
|
||||||
|
STR_TEXT_AA_FAST: "Rápida"
|
||||||
STR_IMAGES: "Imagens"
|
STR_IMAGES: "Imagens"
|
||||||
STR_IMAGES_DISPLAY: "Exibição"
|
STR_IMAGES_DISPLAY: "Exibição"
|
||||||
STR_IMAGES_PLACEHOLDER: "Espaço reservado"
|
STR_IMAGES_PLACEHOLDER: "Espaço reservado"
|
||||||
|
|||||||
@@ -65,6 +65,8 @@ STR_SLEEP_COVER_MODE: "Mod ecran de repaus cu copertă"
|
|||||||
STR_HIDE_BATTERY: "Ascunde procentul bateriei"
|
STR_HIDE_BATTERY: "Ascunde procentul bateriei"
|
||||||
STR_EXTRA_SPACING: "Spaţiere suplimentară între paragrafe"
|
STR_EXTRA_SPACING: "Spaţiere suplimentară între paragrafe"
|
||||||
STR_TEXT_AA: "Anti-Aliasing text"
|
STR_TEXT_AA: "Anti-Aliasing text"
|
||||||
|
STR_TEXT_AA_FULL: "Complet"
|
||||||
|
STR_TEXT_AA_FAST: "Rapid"
|
||||||
STR_IMAGES: "Imagini"
|
STR_IMAGES: "Imagini"
|
||||||
STR_IMAGES_DISPLAY: "Afişare"
|
STR_IMAGES_DISPLAY: "Afişare"
|
||||||
STR_IMAGES_PLACEHOLDER: "Substituent"
|
STR_IMAGES_PLACEHOLDER: "Substituent"
|
||||||
|
|||||||
@@ -66,6 +66,8 @@ STR_SLEEP_COVER_MODE: "Режим обложки сна"
|
|||||||
STR_HIDE_BATTERY: "Скрыть % батареи"
|
STR_HIDE_BATTERY: "Скрыть % батареи"
|
||||||
STR_EXTRA_SPACING: "Доп. интервал абзаца"
|
STR_EXTRA_SPACING: "Доп. интервал абзаца"
|
||||||
STR_TEXT_AA: "Сглаживание текста"
|
STR_TEXT_AA: "Сглаживание текста"
|
||||||
|
STR_TEXT_AA_FULL: "Полное"
|
||||||
|
STR_TEXT_AA_FAST: "Быстрое"
|
||||||
STR_IMAGES: "Изображения"
|
STR_IMAGES: "Изображения"
|
||||||
STR_IMAGES_DISPLAY: "Показать"
|
STR_IMAGES_DISPLAY: "Показать"
|
||||||
STR_IMAGES_PLACEHOLDER: "Заглушки"
|
STR_IMAGES_PLACEHOLDER: "Заглушки"
|
||||||
|
|||||||
@@ -66,6 +66,8 @@ STR_SLEEP_COVER_MODE: "Obrazovka spánku – režim krytu"
|
|||||||
STR_HIDE_BATTERY: "Skryť % batérie"
|
STR_HIDE_BATTERY: "Skryť % batérie"
|
||||||
STR_EXTRA_SPACING: "Dodatočné medzery medzi odsekmi"
|
STR_EXTRA_SPACING: "Dodatočné medzery medzi odsekmi"
|
||||||
STR_TEXT_AA: "Vyhladzovanie textu"
|
STR_TEXT_AA: "Vyhladzovanie textu"
|
||||||
|
STR_TEXT_AA_FULL: "Plné"
|
||||||
|
STR_TEXT_AA_FAST: "Rýchle"
|
||||||
STR_IMAGES: "Obrázky"
|
STR_IMAGES: "Obrázky"
|
||||||
STR_IMAGES_DISPLAY: "Zobraz"
|
STR_IMAGES_DISPLAY: "Zobraz"
|
||||||
STR_IMAGES_PLACEHOLDER: "Rezervované miesto"
|
STR_IMAGES_PLACEHOLDER: "Rezervované miesto"
|
||||||
|
|||||||
@@ -65,6 +65,8 @@ STR_SLEEP_COVER_MODE: "Način naslovnice v spanju"
|
|||||||
STR_HIDE_BATTERY: "Skrij % baterije"
|
STR_HIDE_BATTERY: "Skrij % baterije"
|
||||||
STR_EXTRA_SPACING: "Dodaten razmik med odstavki"
|
STR_EXTRA_SPACING: "Dodaten razmik med odstavki"
|
||||||
STR_TEXT_AA: "Glajenje besedila (AA)"
|
STR_TEXT_AA: "Glajenje besedila (AA)"
|
||||||
|
STR_TEXT_AA_FULL: "Polno"
|
||||||
|
STR_TEXT_AA_FAST: "Hitro"
|
||||||
STR_IMAGES: "Slike"
|
STR_IMAGES: "Slike"
|
||||||
STR_IMAGES_DISPLAY: "Prikaži"
|
STR_IMAGES_DISPLAY: "Prikaži"
|
||||||
STR_IMAGES_PLACEHOLDER: "Oznaka mesta"
|
STR_IMAGES_PLACEHOLDER: "Oznaka mesta"
|
||||||
|
|||||||
@@ -65,6 +65,8 @@ STR_SLEEP_COVER_MODE: "Modo de pantalla de suspensión"
|
|||||||
STR_HIDE_BATTERY: "Ocultar % de batería"
|
STR_HIDE_BATTERY: "Ocultar % de batería"
|
||||||
STR_EXTRA_SPACING: "Espaciado entre párrafos"
|
STR_EXTRA_SPACING: "Espaciado entre párrafos"
|
||||||
STR_TEXT_AA: "Suavizado de texto"
|
STR_TEXT_AA: "Suavizado de texto"
|
||||||
|
STR_TEXT_AA_FULL: "Completo"
|
||||||
|
STR_TEXT_AA_FAST: "Rápido"
|
||||||
STR_IMAGES: "Imágenes"
|
STR_IMAGES: "Imágenes"
|
||||||
STR_IMAGES_DISPLAY: "Mostrar"
|
STR_IMAGES_DISPLAY: "Mostrar"
|
||||||
STR_IMAGES_PLACEHOLDER: "Reemplazar"
|
STR_IMAGES_PLACEHOLDER: "Reemplazar"
|
||||||
|
|||||||
@@ -66,6 +66,8 @@ STR_SLEEP_COVER_MODE: "Viloskärmens omslagsläge"
|
|||||||
STR_HIDE_BATTERY: "Dölj batteriprocent"
|
STR_HIDE_BATTERY: "Dölj batteriprocent"
|
||||||
STR_EXTRA_SPACING: "Extra paragrafmellanrum"
|
STR_EXTRA_SPACING: "Extra paragrafmellanrum"
|
||||||
STR_TEXT_AA: "Textkantutjämning"
|
STR_TEXT_AA: "Textkantutjämning"
|
||||||
|
STR_TEXT_AA_FULL: "Full"
|
||||||
|
STR_TEXT_AA_FAST: "Snabb"
|
||||||
STR_IMAGES: "Bilder"
|
STR_IMAGES: "Bilder"
|
||||||
STR_IMAGES_DISPLAY: "Visa"
|
STR_IMAGES_DISPLAY: "Visa"
|
||||||
STR_IMAGES_PLACEHOLDER: "Platshållare"
|
STR_IMAGES_PLACEHOLDER: "Platshållare"
|
||||||
|
|||||||
@@ -64,6 +64,8 @@ STR_SLEEP_COVER_MODE: "Uyku Ekranı Kapak Modu"
|
|||||||
STR_HIDE_BATTERY: "Pil Yüzdesini Gizle"
|
STR_HIDE_BATTERY: "Pil Yüzdesini Gizle"
|
||||||
STR_EXTRA_SPACING: "Ekstra Paragraf Boşluğu"
|
STR_EXTRA_SPACING: "Ekstra Paragraf Boşluğu"
|
||||||
STR_TEXT_AA: "Metin Yumuşatma (AA)"
|
STR_TEXT_AA: "Metin Yumuşatma (AA)"
|
||||||
|
STR_TEXT_AA_FULL: "Tam"
|
||||||
|
STR_TEXT_AA_FAST: "Hızlı"
|
||||||
STR_SHORT_PWR_BTN: "Kısa Güç Tuşu Tıklaması"
|
STR_SHORT_PWR_BTN: "Kısa Güç Tuşu Tıklaması"
|
||||||
STR_ORIENTATION: "Okuma Yönü"
|
STR_ORIENTATION: "Okuma Yönü"
|
||||||
STR_SIDE_BTN_LAYOUT: "Yan Tuş Dizilimi (okuyucu)"
|
STR_SIDE_BTN_LAYOUT: "Yan Tuş Dizilimi (okuyucu)"
|
||||||
|
|||||||
@@ -66,6 +66,8 @@ STR_SLEEP_COVER_MODE: "Режим заповнення"
|
|||||||
STR_HIDE_BATTERY: "Приховати % батареї"
|
STR_HIDE_BATTERY: "Приховати % батареї"
|
||||||
STR_EXTRA_SPACING: "Додатковий інтервал між абзацами"
|
STR_EXTRA_SPACING: "Додатковий інтервал між абзацами"
|
||||||
STR_TEXT_AA: "Згладжування тексту"
|
STR_TEXT_AA: "Згладжування тексту"
|
||||||
|
STR_TEXT_AA_FULL: "Повне"
|
||||||
|
STR_TEXT_AA_FAST: "Швидке"
|
||||||
STR_IMAGES: "Зображення"
|
STR_IMAGES: "Зображення"
|
||||||
STR_IMAGES_DISPLAY: "Показати"
|
STR_IMAGES_DISPLAY: "Показати"
|
||||||
STR_IMAGES_PLACEHOLDER: "Заглушка"
|
STR_IMAGES_PLACEHOLDER: "Заглушка"
|
||||||
|
|||||||
@@ -66,6 +66,8 @@ STR_SLEEP_COVER_MODE: "Mode de pantalla de repòs"
|
|||||||
STR_HIDE_BATTERY: "Oculta el % de bateria"
|
STR_HIDE_BATTERY: "Oculta el % de bateria"
|
||||||
STR_EXTRA_SPACING: "Espaiat de paràgraf extra"
|
STR_EXTRA_SPACING: "Espaiat de paràgraf extra"
|
||||||
STR_TEXT_AA: "Antialiàsing del text"
|
STR_TEXT_AA: "Antialiàsing del text"
|
||||||
|
STR_TEXT_AA_FULL: "Complet"
|
||||||
|
STR_TEXT_AA_FAST: "Ràpid"
|
||||||
STR_IMAGES: "Imatges"
|
STR_IMAGES: "Imatges"
|
||||||
STR_IMAGES_DISPLAY: "Mostrar"
|
STR_IMAGES_DISPLAY: "Mostrar"
|
||||||
STR_IMAGES_PLACEHOLDER: "Text de mostra"
|
STR_IMAGES_PLACEHOLDER: "Text de mostra"
|
||||||
|
|||||||
@@ -66,6 +66,8 @@ STR_SLEEP_COVER_MODE: "Kiểu ảnh bìa màn hình ngủ"
|
|||||||
STR_HIDE_BATTERY: "Ẩn % pin"
|
STR_HIDE_BATTERY: "Ẩn % pin"
|
||||||
STR_EXTRA_SPACING: "Giãn cách đoạn thêm"
|
STR_EXTRA_SPACING: "Giãn cách đoạn thêm"
|
||||||
STR_TEXT_AA: "Khử răng cưa chữ"
|
STR_TEXT_AA: "Khử răng cưa chữ"
|
||||||
|
STR_TEXT_AA_FULL: "Đầy đủ"
|
||||||
|
STR_TEXT_AA_FAST: "Nhanh"
|
||||||
STR_IMAGES: "Hình ảnh"
|
STR_IMAGES: "Hình ảnh"
|
||||||
STR_IMAGES_DISPLAY: "Hiển thị"
|
STR_IMAGES_DISPLAY: "Hiển thị"
|
||||||
STR_IMAGES_PLACEHOLDER: "Khung thay thế"
|
STR_IMAGES_PLACEHOLDER: "Khung thay thế"
|
||||||
|
|||||||
@@ -173,6 +173,13 @@ class CrossPointSettings {
|
|||||||
// Image rendering in EPUB reader
|
// Image rendering in EPUB reader
|
||||||
enum IMAGE_RENDERING { IMAGES_DISPLAY = 0, IMAGES_PLACEHOLDER = 1, IMAGES_SUPPRESS = 2, IMAGE_RENDERING_COUNT };
|
enum IMAGE_RENDERING { IMAGES_DISPLAY = 0, IMAGES_PLACEHOLDER = 1, IMAGES_SUPPRESS = 2, IMAGE_RENDERING_COUNT };
|
||||||
|
|
||||||
|
// Text anti-aliasing mode for 2-bit fonts. FULL runs the grayscale LUT
|
||||||
|
// passes after the BW page render (extra refresh per page turn). FAST
|
||||||
|
// approximates AA inside the single BW pass by dithering partial-coverage
|
||||||
|
// glyph pixels (GfxRenderer fast anti-aliasing flag). Value 1 must stay
|
||||||
|
// FULL: it was the "on" value of the old on/off toggle in saved settings.
|
||||||
|
enum TEXT_ANTIALIASING { TEXT_AA_OFF = 0, TEXT_AA_FULL = 1, TEXT_AA_FAST = 2, TEXT_ANTIALIASING_COUNT };
|
||||||
|
|
||||||
enum TILT_PAGE_TURN { TILT_OFF = 0, TILT_NORMAL = 1, TILT_NVERTED = 2, TILT_PAGE_TURN_COUNT };
|
enum TILT_PAGE_TURN { TILT_OFF = 0, TILT_NORMAL = 1, TILT_NVERTED = 2, TILT_PAGE_TURN_COUNT };
|
||||||
|
|
||||||
enum QUICK_RESUME_SLEEP_SCREEN {
|
enum QUICK_RESUME_SLEEP_SCREEN {
|
||||||
@@ -209,7 +216,7 @@ class CrossPointSettings {
|
|||||||
uint8_t clockHasBeenSynced = 0;
|
uint8_t clockHasBeenSynced = 0;
|
||||||
// Text rendering settings
|
// Text rendering settings
|
||||||
uint8_t extraParagraphSpacing = 1;
|
uint8_t extraParagraphSpacing = 1;
|
||||||
uint8_t textAntiAliasing = 1;
|
uint8_t textAntiAliasing = TEXT_AA_FULL;
|
||||||
// Short power button click behaviour
|
// Short power button click behaviour
|
||||||
uint8_t shortPwrBtn = IGNORE;
|
uint8_t shortPwrBtn = IGNORE;
|
||||||
// EPUB reading orientation settings
|
// EPUB reading orientation settings
|
||||||
|
|||||||
+5
-2
@@ -157,8 +157,11 @@ inline std::vector<SettingInfo> getSettingsList(const SdCardFontRegistry* regist
|
|||||||
"orientation", StrId::STR_CAT_READER),
|
"orientation", StrId::STR_CAT_READER),
|
||||||
SettingInfo::Toggle(StrId::STR_EXTRA_SPACING, &CrossPointSettings::extraParagraphSpacing,
|
SettingInfo::Toggle(StrId::STR_EXTRA_SPACING, &CrossPointSettings::extraParagraphSpacing,
|
||||||
"extraParagraphSpacing", StrId::STR_CAT_READER),
|
"extraParagraphSpacing", StrId::STR_CAT_READER),
|
||||||
SettingInfo::Toggle(StrId::STR_TEXT_AA, &CrossPointSettings::textAntiAliasing, "textAntiAliasing",
|
// Option order must match TEXT_ANTIALIASING values (popup index is
|
||||||
StrId::STR_CAT_READER),
|
// stored directly): OFF=0, FULL=1 (legacy toggle "on"), FAST=2.
|
||||||
|
SettingInfo::Enum(StrId::STR_TEXT_AA, &CrossPointSettings::textAntiAliasing,
|
||||||
|
{StrId::STR_STATE_OFF, StrId::STR_TEXT_AA_FULL, StrId::STR_TEXT_AA_FAST}, "textAntiAliasing",
|
||||||
|
StrId::STR_CAT_READER),
|
||||||
SettingInfo::Enum(StrId::STR_IMAGES, &CrossPointSettings::imageRendering,
|
SettingInfo::Enum(StrId::STR_IMAGES, &CrossPointSettings::imageRendering,
|
||||||
{StrId::STR_IMAGES_DISPLAY, StrId::STR_IMAGES_PLACEHOLDER, StrId::STR_IMAGES_SUPPRESS},
|
{StrId::STR_IMAGES_DISPLAY, StrId::STR_IMAGES_PLACEHOLDER, StrId::STR_IMAGES_SUPPRESS},
|
||||||
"imageRendering", StrId::STR_CAT_READER),
|
"imageRendering", StrId::STR_CAT_READER),
|
||||||
|
|||||||
@@ -1241,7 +1241,8 @@ void EpubReaderActivity::renderContents(std::unique_ptr<Page> page, const int or
|
|||||||
const auto tPrewarm = millis();
|
const auto tPrewarm = millis();
|
||||||
|
|
||||||
const bool pageHasImages = page->hasImages();
|
const bool pageHasImages = page->hasImages();
|
||||||
const bool needsTextGrayscale = SETTINGS.textAntiAliasing;
|
const bool needsTextGrayscale = SETTINGS.textAntiAliasing == CrossPointSettings::TEXT_AA_FULL;
|
||||||
|
const bool fastTextAA = SETTINGS.textAntiAliasing == CrossPointSettings::TEXT_AA_FAST;
|
||||||
const bool needsAnyGrayscale = needsTextGrayscale || pageHasImages;
|
const bool needsAnyGrayscale = needsTextGrayscale || pageHasImages;
|
||||||
auto renderGrayscalePass = [&]() {
|
auto renderGrayscalePass = [&]() {
|
||||||
if (needsTextGrayscale) {
|
if (needsTextGrayscale) {
|
||||||
@@ -1251,7 +1252,11 @@ void EpubReaderActivity::renderContents(std::unique_ptr<Page> page, const int or
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// Fast AA dithers 2-bit glyph edges in the BW pass itself, no grayscale
|
||||||
|
// refresh. Scoped to the page render so nothing else inherits the flag.
|
||||||
|
renderer.setFastAntiAliasing(fastTextAA);
|
||||||
page->render(renderer, fontId, orientedMarginLeft, orientedMarginTop);
|
page->render(renderer, fontId, orientedMarginLeft, orientedMarginTop);
|
||||||
|
renderer.setFastAntiAliasing(false);
|
||||||
renderStatusBar();
|
renderStatusBar();
|
||||||
const auto tBwRender = millis();
|
const auto tBwRender = millis();
|
||||||
|
|
||||||
@@ -1268,7 +1273,9 @@ void EpubReaderActivity::renderContents(std::unique_ptr<Page> page, const int or
|
|||||||
|
|
||||||
// Re-render page content to restore images into the blanked area
|
// Re-render page content to restore images into the blanked area
|
||||||
// Status bar is not re-rendered here to avoid reading stale dynamic values (e.g. battery %)
|
// Status bar is not re-rendered here to avoid reading stale dynamic values (e.g. battery %)
|
||||||
|
renderer.setFastAntiAliasing(fastTextAA);
|
||||||
page->render(renderer, fontId, orientedMarginLeft, orientedMarginTop);
|
page->render(renderer, fontId, orientedMarginLeft, orientedMarginTop);
|
||||||
|
renderer.setFastAntiAliasing(false);
|
||||||
renderer.displayBuffer(HalDisplay::FAST_REFRESH);
|
renderer.displayBuffer(HalDisplay::FAST_REFRESH);
|
||||||
} else {
|
} else {
|
||||||
renderer.displayBuffer(HalDisplay::HALF_REFRESH);
|
renderer.displayBuffer(HalDisplay::HALF_REFRESH);
|
||||||
|
|||||||
@@ -400,13 +400,16 @@ void TxtReaderActivity::renderPage() {
|
|||||||
renderLines(); // scan pass — text accumulated, no drawing
|
renderLines(); // scan pass — text accumulated, no drawing
|
||||||
scope.endScanAndPrewarm();
|
scope.endScanAndPrewarm();
|
||||||
|
|
||||||
// BW rendering
|
// BW rendering. Fast AA dithers 2-bit glyph edges in this single pass;
|
||||||
|
// scoped to the page text so nothing else inherits the flag.
|
||||||
|
renderer.setFastAntiAliasing(SETTINGS.textAntiAliasing == CrossPointSettings::TEXT_AA_FAST);
|
||||||
renderLines();
|
renderLines();
|
||||||
|
renderer.setFastAntiAliasing(false);
|
||||||
renderStatusBar();
|
renderStatusBar();
|
||||||
|
|
||||||
ReaderUtils::displayWithRefreshCycle(renderer, pagesUntilFullRefresh);
|
ReaderUtils::displayWithRefreshCycle(renderer, pagesUntilFullRefresh);
|
||||||
|
|
||||||
if (SETTINGS.textAntiAliasing) {
|
if (SETTINGS.textAntiAliasing == CrossPointSettings::TEXT_AA_FULL) {
|
||||||
ReaderUtils::renderAntiAliased(renderer, [&renderLines]() { renderLines(); });
|
ReaderUtils::renderAntiAliased(renderer, [&renderLines]() { renderLines(); });
|
||||||
}
|
}
|
||||||
// scope destructor clears font cache via FontCacheManager
|
// scope destructor clears font cache via FontCacheManager
|
||||||
|
|||||||
Reference in New Issue
Block a user