update wmax, update README.md
This commit is contained in:
@@ -3,6 +3,8 @@ Drop-in replacement for Allegro_TTF that contains libschrift, instead of using F
|
||||
|
||||
It is 100% API compatible with the vanilla TrueType addon. Compile Allegro with these files inside of `/addons/ttf`.
|
||||
|
||||

|
||||
|
||||
Pros:
|
||||
- It doesn't require NT 6 kernel calls
|
||||
- It doesn't dynamically link against hundreds of thousands of lines of ugly corporate-backed C code you can't read
|
||||
@@ -14,4 +16,6 @@ Caveats:
|
||||
- The entire caching system is gone, fonts are baked to textures immediately and no further. This makes supporting some languages with this add-on inconvenient, or impossible.
|
||||
If your usecase doesn't need every fancy rendering feature and can use schrift, you probably aren't supporting enough characters and languages to need on-the-fly caching, so we consider this an acceptable tradeoff.
|
||||
- The `cache_text` setting in allegro5.cfg is now reused to determine what glyphs can be rendered at all. `skip_cache_misses` has no effect.
|
||||
When `cache_text` is undefined, the English and Romance alphabets will be generated by default.
|
||||
When `cache_text` is undefined, the [Latin](https://en.wikipedia.org/wiki/ASCII), [Germanic, and Romance](https://en.wikipedia.org/wiki/Latin_Extended-A) alphabets will be generated by default. (not necessarily 32 - 255)
|
||||
- **TODO** Alternatively, the developer can force a custom range of unicode characters to be generated using a new parameter in the `al_load_ttf_font` function.
|
||||
- Kerning, per-character advance and offsets, and other features which are exposed by libschrift are not currently implemented, but doing so is possible. See the above comparison screenshot.
|
||||
@@ -1 +0,0 @@
|
||||
#cmakedefine ALLEGRO_CFG_TTF_FREETYPE
|
||||
@@ -24,6 +24,9 @@ ALLEGRO_DEBUG_CHANNEL("font")
|
||||
#define delimit_blue (unsigned)255
|
||||
#define delimit_alpha (unsigned)255
|
||||
#define delimit_color al_map_rgba(delimit_red, delimit_green, delimit_blue, delimit_alpha)
|
||||
#define wmax (int32_t)2048 // fixed atlas width - 1024 or 2048 are ideal depending on font size
|
||||
// height is automatically adjusted in powers of two
|
||||
// todo we should expand this less when the card supports npot textures
|
||||
|
||||
/* globals */
|
||||
static bool ttf_inited;
|
||||
@@ -66,7 +69,8 @@ ALLEGRO_FONT *al_load_ttf_font_f(ALLEGRO_FILE *file,
|
||||
al_get_config_value(system_cfg, "ttf", "cache_text");
|
||||
if (!cache_text_str) {
|
||||
ALLEGRO_ERROR("No characters defined in cache_text! Using defaults\n");
|
||||
cache_text_str = " abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789.,!?/()@#$%^&*-_=+<>~`\u007F";
|
||||
// todo probably should just store a list of ranges instead, maybe even ditch the config var entirely
|
||||
cache_text_str = " abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789.,!?/()@#$%^&*-_=+<>~`\u007FĀāĂ㥹ĆćĈĉĊċČčĎďĐđĒēĔĕĖėĘęĚěĜĝĞğĠġĢģĤĥĦħĨĩĪīĬĭĮįİıIJijĴĵĶķĸĹĺĻļĽľĿŀŁłŃńŅņŇňʼnŊŋŌōŎŏŐőŒœŔŕŖŗŘřŚśŜŝŞşŠšŢţŤťŦŧŨũŪūŬŭŮůŰűŲųŴŵŶŷŸŹźŻżŽžſ";
|
||||
}
|
||||
|
||||
// read font file
|
||||
@@ -89,7 +93,6 @@ ALLEGRO_FONT *al_load_ttf_font_f(ALLEGRO_FILE *file,
|
||||
}
|
||||
|
||||
// convert glyphs into textures
|
||||
#define wmax (int32_t)1024
|
||||
int32_t woff = 1, hoff = 1, hmax = 128; // signed to calculate difference at texture edges
|
||||
gtex = al_create_bitmap(wmax, hmax);
|
||||
al_set_target_bitmap(gtex);
|
||||
|
||||
BIN
comparison.png
Normal file
BIN
comparison.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 136 KiB |
Reference in New Issue
Block a user