[kandinsky/font build] Using all font only when reader app is defined, else it's the classic font

This commit is contained in:
Mino1289
2021-11-04 23:59:18 +01:00
parent 6ff8b007be
commit 32ccd8530c
6 changed files with 233 additions and 76 deletions

View File

@@ -1,11 +1,7 @@
apps += Reader::App
app_headers += apps/reader/app.h
ifeq ($(ISBUILDINGFLASHER), 1)
$(warning Reduced font glyphs)
else
RASTERIZER_CFLAGS += -DHAS_READER
endif
SFLAGS += -DHAS_READER
app_sreader_src = $(addprefix apps/reader/,\
app.cpp \

View File

@@ -44,8 +44,8 @@ $(BUILD_DIR)/flasher.light.$(EXE): $(call flavored_object_for,$(flasher_src),lig
$(BUILD_DIR)/flasher.verbose.$(EXE): $(call flavored_object_for,$(flasher_src),usbxip)
$(BUILD_DIR)/flasher.verbose.flash.$(EXE): $(call flavored_object_for,$(flasher_src))
$(BUILD_DIR)/flasher.%.$(EXE): LDFLAGS += -Lion/src/$(PLATFORM)/flasher
$(BUILD_DIR)/flasher.%.$(EXE): ISBUILDINGFLASHER:=1
$(BUILD_DIR)/flasher.%.$(EXE): LDSCRIPT = ion/src/$(PLATFORM)/shared/ram.ld
$(BUILD_DIR)/flasher.%.$(EXE): RASTERIZER_CFLAGS += -DISBUILDINGFLASHER
$(BUILD_DIR)/flasher.%.flash.$(EXE): LDSCRIPT = ion/src/$(PLATFORM)/$(MODEL)/internal_flash.ld
#TODO Do not build all apps... Put elsewhere?

View File

@@ -32,7 +32,15 @@ tests_src += $(addprefix kandinsky/test/,\
rect.cpp\
)
code_points = kandinsky/fonts/code_points.h
ifdef ($(ISBUILDINGFLASHER))
code_points = kandinsky/fonts/code_points.h
else
ifdef ($(HAS_READER))
code_points = kandinsky/fonts/code_points_latex.h
else
code_points = kandinsky/fonts/code_points.h
endif
endif
RASTERIZER_CFLAGS := -std=c99 $(shell pkg-config freetype2 --cflags)
RASTERIZER_LDFLAGS := $(shell pkg-config freetype2 --libs)

View File

@@ -106,7 +106,6 @@ uint32_t CodePoints[] = {
0x7e, // ~ // TILDE
0xb0, // ° // DEGREE SIGN
0xb1, // ± // PLUS OR MINUS
0xb7, // · // MIDDLE DOT
0xc6, // Æ // LATIN CAPITAL LETTER AE
@@ -131,88 +130,22 @@ uint32_t CodePoints[] = {
0x30b, // ˝// COMBINING DOUBLE ACUTE ACCENT
0x327, // ̧ // COMBINING CEDILLA
0x391, // Α // GREEK CAPITAL LETTER ALPHA
0x392, // Β // GREEK CAPITAL LETTER BETA
0x393, // Γ // GREEK CAPITAL LETTER GAMMA
0x394, // Δ // GREEK CAPITAL LETTER DELTA
#ifdef HAS_READER
0x395, // Ε // GREEK CAPITAL LETTER EPSILON
0x396, // Ζ // GREEK CAPITAL LETTER ZETA
0x397, // Η // GREEK CAPITAL LETTER ETA
0x398, // Θ // GREEK CAPITAL LETTER THETA
0x399, // Ι // GREEK CAPITAL LETTER IOTA
0x39a, // Κ // GREEK CAPITAL LETTER KAPPA
0x39b, // Λ // GREEK CAPITAL LETTER LAMBDA
0x39c, // Μ // GREEK CAPITAL LETTER MU
0x39d, // Ν // GREEK CAPITAL LETTER NU
0x39e, // Ξ // GREEK CAPITAL LETTER KSI
0x39f, // Ο // GREEK CAPITAL LETTER OMICRON
0x3a0, // Π // GREEK CAPITAL LETTER PI
0x3a1, // Ρ // GREEK CAPITAL LETTER RHO
0x3a3, // Σ // GREEK CAPITAL LETTER SIGMA
0x3a4, // Τ // GREEK CAPITAL LETTER TAU
0x3a5, // Υ // GREEK CAPITAL LETTER UPSILON
0x3a6, // Φ // GREEK CAPITAL LETTER PHI
0x3a7, // Χ // GREEK CAPITAL LETTER KHI
0x3a8, // Ψ // GREEK CAPITAL LETTER PSI
#endif
0x3a9, // Ω // GREEK CAPITAL LETTER OMEGA
#ifdef HAS_READER
0x3b1, // α // GREEK SMALL LETTER ALPHA
0x3b2, // β // GREEK SMALL LETTER BETA
0x3b3, // γ // GREEK SMALL LETTER GAMMA
0x3b4, // δ // GREEK SMALL LETTER DELTA
0x3b5, // ε // GREEK SMALL LETTER EPSILON
0x3b6, // ζ // GREEK SMALL LETTER ZETA
0x3b7, // η // GREEK SMALL LETTER ETA
#endif
0x3b8, // θ // GREEK SMALL LETTER THETA
#ifdef HAS_READER
0x3b9, // ι // GREEK SMALL LETTER IOTA
0x3ba, // κ // GREEK SMALL LETTER KAPPA
0x3bb, // λ // GREEK SMALL LETTER LAMBDA
#endif
0x3bb, // λ // GREEK SMALL LETTER LAMDA
0x3bc, // μ // GREEK SMALL LETTER MU
#ifdef HAS_READER
0x3bd, // ν // GREEK SMALL LETTER NU
0x3be, // ξ // GREEK SMALL LETTER KSI
0x3bf, // ο // GREEK SMALL LETTER OMICRON
#endif
0x3c0, // π // GREEK SMALL LETTER PI
0x3c1, // ρ // GREEK SMALL LETTER RHO
0x3c3, // σ // GREEK SMALL LETTER SIGMA
#ifdef HAS_READER
0x3c4, // τ // GREEK SMALL LETTER TAU
0x3c5, // υ // GREEK SMALL LETTER UPSILON
0x3c6, // φ // GREEK SMALL LETTER PHI
0x3c7, // χ // GREEK SMALL LETTER KHI
0x3c8, // ψ // GREEK SMALL LETTER PSI
0x3c9, // ω // GREEK SMALL LETTER OMEGA
#endif
0x1d07, // ᴇ // LATIN LETTER SMALL CAPITAL E
0x212f, // // SCRIPT SMALL E
#ifdef HAS_READER
0x2190, // ← // BACKWARD ARROW (leftarrow)
0x2191, // ↑ // TOP ARROW (uparrow)
0x2192, // → // FORWARD ARROW (rightarrow)
0x2193, // ↓ // BOTTOM ARROW (downarrow)
0x2194, // ↔ // BACKWARD FORWARD ARROW (leftrightarrow)
0x2195, // ↕ // TOP BOTTOM ARROW (updownarrow)
0x21d0, // ⇐ // DOUBLE BACKWARD ARROW (Leftarrow)
0x21d1, // ⇑ // DOUBLE TOP ARROW (Uparrow)
0x21d2, // ⇒ // DOUBLE FORWARD ARROW (Rightarrow)
0x21d3, // ⇓ // DOUBLE BOTTOM ARROW (Downarrow)
0x2200, // ∀ // FORALL
0x2202, // ∂ // PARTIAL
0x2203, // ∃ // EXIST
#endif
0x2192, // → // RIGHTWARDS ARROW
0x2211, // ∑ // N-ARY SUMMATION
0x221a, // √ // SQUARE ROOT
0x221e, // ∞ // INFINITY
0x222b, // ∫ // INTEGRAL
0x2248, // ≈ // ALMOST EQUAL TO
0x2260, // ≠ // NOT EQUAL TO
0x2261, // ≡ // IS CONGRUENT TO
0x2264, // ≤ // LESS-THAN OR EQUAL TO
0x2265, // ≥ // GREATER-THAN OR EQUAL TO
0xFFFD, // <20> // REPLACEMENT CHARACTER

View File

@@ -0,0 +1,212 @@
#ifndef KANDINSKY_FONTS_CODE_POINTS_H
#define KANDINSKY_FONTS_CODE_POINTS_H
// [0x30a].map{|i| "0x" + i.to_s(16) +", // " + [i].pack("U") + " // " + Unicode::Name.of([i].pack("U"))}.join("|")
#include <stdint.h>
/* This array lists the code points that are rasterized by rasterizer.c. We put
* most characters from the LATIN charset, and some mathematical characters. */
uint32_t CodePoints[] = {
0x20, // // SPACE
0x21, // ! // EXCLAMATION MARK
0x22, // " // QUOTATION MARK
0x23, // # // NUMBER SIGN
0x24, // $ // DOLLAR SIGN
0x25, // % // PERCENT SIGN
0x26, // & // AMPERSAND
0x27, // ' // APOSTROPHE
0x28, // ( // LEFT PARENTHESIS
0x29, // ) // RIGHT PARENTHESIS
0x2a, // * // ASTERISK
0x2b, // + // PLUS SIGN
0x2c, // , // COMMA
0x2d, // - // HYPHEN-MINUS
0x2e, // . // FULL STOP
0x2f, // / // SOLIDUS
0x30, // 0 // DIGIT ZERO
0x31, // 1 // DIGIT ONE
0x32, // 2 // DIGIT TWO
0x33, // 3 // DIGIT THREE
0x34, // 4 // DIGIT FOUR
0x35, // 5 // DIGIT FIVE
0x36, // 6 // DIGIT SIX
0x37, // 7 // DIGIT SEVEN
0x38, // 8 // DIGIT EIGHT
0x39, // 9 // DIGIT NINE
0x3a, // : // COLON
0x3b, // ; // SEMICOLON
0x3c, // < // LESS-THAN SIGN
0x3d, // = // EQUALS SIGN
0x3e, // > // GREATER-THAN SIGN
0x3f, // ? // QUESTION MARK
0x40, // @ // COMMERCIAL AT
0x41, // A // LATIN CAPITAL LETTER A
0x42, // B // LATIN CAPITAL LETTER B
0x43, // C // LATIN CAPITAL LETTER C
0x44, // D // LATIN CAPITAL LETTER D
0x45, // E // LATIN CAPITAL LETTER E
0x46, // F // LATIN CAPITAL LETTER F
0x47, // G // LATIN CAPITAL LETTER G
0x48, // H // LATIN CAPITAL LETTER H
0x49, // I // LATIN CAPITAL LETTER I
0x4a, // J // LATIN CAPITAL LETTER J
0x4b, // K // LATIN CAPITAL LETTER K
0x4c, // L // LATIN CAPITAL LETTER L
0x4d, // M // LATIN CAPITAL LETTER M
0x4e, // N // LATIN CAPITAL LETTER N
0x4f, // O // LATIN CAPITAL LETTER O
0x50, // P // LATIN CAPITAL LETTER P
0x51, // Q // LATIN CAPITAL LETTER Q
0x52, // R // LATIN CAPITAL LETTER R
0x53, // S // LATIN CAPITAL LETTER S
0x54, // T // LATIN CAPITAL LETTER T
0x55, // U // LATIN CAPITAL LETTER U
0x56, // V // LATIN CAPITAL LETTER V
0x57, // W // LATIN CAPITAL LETTER W
0x58, // X // LATIN CAPITAL LETTER X
0x59, // Y // LATIN CAPITAL LETTER Y
0x5a, // Z // LATIN CAPITAL LETTER Z
0x5b, // [ // LEFT SQUARE BRACKET
0x5c, // \ // REVERSE SOLIDUS
0x5d, // ] // RIGHT SQUARE BRACKET
0x5e, // ^ // CIRCUMFLEX ACCENT
0x5f, // _ // LOW LINE
0x60, // ` // GRAVE ACCENT
0x61, // a // LATIN SMALL LETTER A
0x62, // b // LATIN SMALL LETTER B
0x63, // c // LATIN SMALL LETTER C
0x64, // d // LATIN SMALL LETTER D
0x65, // e // LATIN SMALL LETTER E
0x66, // f // LATIN SMALL LETTER F
0x67, // g // LATIN SMALL LETTER G
0x68, // h // LATIN SMALL LETTER H
0x69, // i // LATIN SMALL LETTER I
0x6a, // j // LATIN SMALL LETTER J
0x6b, // k // LATIN SMALL LETTER K
0x6c, // l // LATIN SMALL LETTER L
0x6d, // m // LATIN SMALL LETTER M
0x6e, // n // LATIN SMALL LETTER N
0x6f, // o // LATIN SMALL LETTER O
0x70, // p // LATIN SMALL LETTER P
0x71, // q // LATIN SMALL LETTER Q
0x72, // r // LATIN SMALL LETTER R
0x73, // s // LATIN SMALL LETTER S
0x74, // t // LATIN SMALL LETTER T
0x75, // u // LATIN SMALL LETTER U
0x76, // v // LATIN SMALL LETTER V
0x77, // w // LATIN SMALL LETTER W
0x78, // x // LATIN SMALL LETTER X
0x79, // y // LATIN SMALL LETTER Y
0x7a, // z // LATIN SMALL LETTER Z
0x7b, // { // LEFT CURLY BRACKET
0x7c, // | // VERTICAL LINE
0x7d, // } // RIGHT CURLY BRACKET
0x7e, // ~ // TILDE
0xb0, // ° // DEGREE SIGN
0xb1, // ± // PLUS OR MINUS
0xb7, // · // MIDDLE DOT
0xc6, // Æ // LATIN CAPITAL LETTER AE
0xd0, // Ð // LATIN CAPITAL LETTER ETH
0xd7, // × // MULTIPLICATION SIGN
0xd8, // Ø // LATIN CAPITAL LETTER O WITH STROKE
0xde, // Þ // LATIN CAPITAL LETTER THORN
0xdf, // ß // LATIN SMALL LETTER SHARP S
0xe6, // æ // LATIN SMALL LETTER AE
0xf0, // ð // LATIN SMALL LETTER ETH
0xf7, // ÷ // DIVISION SIGN
0xf8, // ø // LATIN SMALL LETTER O WITH STROKE
0xfe, // þ // LATIN SMALL LETTER THORN
0x300, // ̀ // COMBINING GRAVE ACCENT
0x301, // ́ // COMBINING ACUTE ACCENT
0x302, // ̂ // COMBINING CIRCUMFLEX ACCENT
0x303, // ̃ // COMBINING TILDE
0x305, // ̅ // COMBINING OVERLINE
0x308, // ̈ // COMBINING DIAERESIS
0x30a, // ̊ // COMBINING RING ABOVE
0x30b, // ˝// COMBINING DOUBLE ACUTE ACCENT
0x327, // ̧ // COMBINING CEDILLA
0x391, // Α // GREEK CAPITAL LETTER ALPHA
0x392, // Β // GREEK CAPITAL LETTER BETA
0x393, // Γ // GREEK CAPITAL LETTER GAMMA
0x394, // Δ // GREEK CAPITAL LETTER DELTA
0x395, // Ε // GREEK CAPITAL LETTER EPSILON
0x396, // Ζ // GREEK CAPITAL LETTER ZETA
0x397, // Η // GREEK CAPITAL LETTER ETA
0x398, // Θ // GREEK CAPITAL LETTER THETA
0x399, // Ι // GREEK CAPITAL LETTER IOTA
0x39a, // Κ // GREEK CAPITAL LETTER KAPPA
0x39b, // Λ // GREEK CAPITAL LETTER LAMBDA
0x39c, // Μ // GREEK CAPITAL LETTER MU
0x39d, // Ν // GREEK CAPITAL LETTER NU
0x39e, // Ξ // GREEK CAPITAL LETTER KSI
0x39f, // Ο // GREEK CAPITAL LETTER OMICRON
0x3a0, // Π // GREEK CAPITAL LETTER PI
0x3a1, // Ρ // GREEK CAPITAL LETTER RHO
0x3a3, // Σ // GREEK CAPITAL LETTER SIGMA
0x3a4, // Τ // GREEK CAPITAL LETTER TAU
0x3a5, // Υ // GREEK CAPITAL LETTER UPSILON
0x3a6, // Φ // GREEK CAPITAL LETTER PHI
0x3a7, // Χ // GREEK CAPITAL LETTER KHI
0x3a8, // Ψ // GREEK CAPITAL LETTER PSI
0x3a9, // Ω // GREEK CAPITAL LETTER OMEGA
0x3b1, // α // GREEK SMALL LETTER ALPHA
0x3b2, // β // GREEK SMALL LETTER BETA
0x3b3, // γ // GREEK SMALL LETTER GAMMA
0x3b4, // δ // GREEK SMALL LETTER DELTA
0x3b5, // ε // GREEK SMALL LETTER EPSILON
0x3b6, // ζ // GREEK SMALL LETTER ZETA
0x3b7, // η // GREEK SMALL LETTER ETA
0x3b8, // θ // GREEK SMALL LETTER THETA
0x3b9, // ι // GREEK SMALL LETTER IOTA
0x3ba, // κ // GREEK SMALL LETTER KAPPA
0x3bb, // λ // GREEK SMALL LETTER LAMBDA
0x3bc, // μ // GREEK SMALL LETTER MU
0x3bd, // ν // GREEK SMALL LETTER NU
0x3be, // ξ // GREEK SMALL LETTER KSI
0x3bf, // ο // GREEK SMALL LETTER OMICRON
0x3c0, // π // GREEK SMALL LETTER PI
0x3c1, // ρ // GREEK SMALL LETTER RHO
0x3c3, // σ // GREEK SMALL LETTER SIGMA
0x3c4, // τ // GREEK SMALL LETTER TAU
0x3c5, // υ // GREEK SMALL LETTER UPSILON
0x3c6, // φ // GREEK SMALL LETTER PHI
0x3c7, // χ // GREEK SMALL LETTER KHI
0x3c8, // ψ // GREEK SMALL LETTER PSI
0x3c9, // ω // GREEK SMALL LETTER OMEGA
0x1d07, // ᴇ // LATIN LETTER SMALL CAPITAL E
0x212f, // // SCRIPT SMALL E
0x2190, // ← // BACKWARD ARROW (leftarrow)
0x2191, // ↑ // TOP ARROW (uparrow)
0x2192, // → // FORWARD ARROW (rightarrow)
0x2193, // ↓ // BOTTOM ARROW (downarrow)
0x2194, // ↔ // BACKWARD FORWARD ARROW (leftrightarrow)
0x2195, // ↕ // TOP BOTTOM ARROW (updownarrow)
0x21d0, // ⇐ // DOUBLE BACKWARD ARROW (Leftarrow)
0x21d1, // ⇑ // DOUBLE TOP ARROW (Uparrow)
0x21d2, // ⇒ // DOUBLE FORWARD ARROW (Rightarrow)
0x21d3, // ⇓ // DOUBLE BOTTOM ARROW (Downarrow)
0x2200, // ∀ // FORALL
0x2202, // ∂ // PARTIAL
0x2203, // ∃ // EXIST
0x2211, // ∑ // N-ARY SUMMATION
0x221a, // √ // SQUARE ROOT
0x221e, // ∞ // INFINITY
0x222b, // ∫ // INTEGRAL
0x2248, // ≈ // ALMOST EQUAL TO
0x2260, // ≠ // NOT EQUAL TO
0x2261, // ≡ // IS CONGRUENT TO
0x2264, // ≤ // LESS-THAN OR EQUAL TO
0x2265, // ≥ // GREATER-THAN OR EQUAL TO
0xFFFD, // <20> // REPLACEMENT CHARACTER
0x1d422, // 𝐢 // MATHEMATICAL BOLD SMALL I"
};
int NumberOfCodePoints = sizeof(CodePoints)/sizeof(CodePoints[0]);
#endif

View File

@@ -15,7 +15,15 @@
#include <ft2build.h>
#include FT_FREETYPE_H
#ifdef ISBUILDINGFLASHER
#include "code_points.h"
#else
#ifdef HAS_READER
#include "code_points_latex.h"
#else
#include "code_points.h"
#endif
#endif
#include "../../ion/src/external/lz4/lz4hc.h"