| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144 |
- /* Configuration constants for mcufont. */
- #ifndef _MF_CONFIG_H_
- #define _MF_CONFIG_H_
- #ifdef __AVR__
- #include <avr/pgmspace.h>
- #elif defined(ARDUINO_ARCH_ESP8266) || defined(ARDUINO_ARCH_ESP32)
- #include <pgmspace.h>
- #else
- #include <stdint.h>
- #define PROGMEM
- #define pgm_read_byte(addr) (*(const unsigned char *)(addr))
- #define pgm_read_word(addr) (*(const uint16_t *)(addr))
- #endif /* __AVR__ */
- /*******************************************************
- * Configuration settings related to build environment *
- *******************************************************/
- /* Name of the file that contains all the included fonts. */
- #ifndef MF_FONT_FILE_NAME
- #define MF_FONT_FILE_NAME "fonts.h"
- #endif
- /*****************************************
- * Configuration settings related to API *
- *****************************************/
- /* Encoding for the input data.
- * With the unicode encodings, the library supports the range of unicode
- * characters 0x0000-0xFFFF (the Basic Multilingual Plane).
- *
- * ASCII: Plain ascii (somewhat works with ISO8859-1 also)
- * UTF8: UTF8 encoding (variable number of bytes)
- * UTF16: UTF16 encoding (2 bytes per character, compatible with UCS-2)
- * WCHAR: Use compiler's wchar_t (usually same as UTF16)
- */
- #define MF_ENCODING_ASCII 0
- #define MF_ENCODING_UTF8 1
- #define MF_ENCODING_UTF16 2
- #define MF_ENCODING_WCHAR 3
- #ifndef MF_ENCODING
- #define MF_ENCODING MF_ENCODING_UTF8
- #endif
- /************************************************************************
- * Configuration settings related to visual appearance of rendered text *
- ************************************************************************/
- /* Minimum space between characters, in percents of the glyph width.
- * Increasing this causes the kerning module to leave more space between
- * characters.
- */
- #ifndef MF_KERNING_SPACE_PERCENT
- #define MF_KERNING_SPACE_PERCENT 15
- #endif
- /* Minimum space between characters, in pixels. Added to the percentual
- * spacing. This pixel-based value guarantees enough space even with small
- * fonts.
- */
- #ifndef MF_KERNING_SPACE_PIXELS
- #define MF_KERNING_SPACE_PIXELS 3
- #endif
- /* Maximum adjustment done by the kerning algorithm, as percent of the
- * glyph width.
- */
- #ifndef MF_KERNING_LIMIT
- #define MF_KERNING_LIMIT 20
- #endif
- /* Spacing of tabulator stops. The value is multiplied by the width of the
- * 'm' character in the current font.
- */
- #ifndef MF_TABSIZE
- #define MF_TABSIZE 8
- #endif
- /*************************************************************************
- * Configuration settings to strip down library to reduce resource usage *
- *************************************************************************/
- /* Enable or disable the kerning module.
- * Disabling it saves some code size and run time, but causes the spacing
- * between characters to be less consistent.
- */
- #ifndef MF_USE_KERNING
- #define MF_USE_KERNING 1
- #endif
- /* Enable or disable the advanced word wrap algorithm.
- * If disabled, uses a simpler algorithm.
- */
- #ifndef MF_USE_ADVANCED_WORDWRAP
- #define MF_USE_ADVANCED_WORDWRAP 1
- #endif
- /* Enable of disable the justification algorithm.
- * If disabled, mf_render_justified renders just left-aligned.
- */
- #ifndef MF_USE_JUSTIFY
- #define MF_USE_JUSTIFY 1
- #endif
- /* Enable or disable the center and right alignment code.
- * If disabled, any alignment results in MF_ALIGN_LEFT.
- */
- #ifndef MF_USE_ALIGN
- #define MF_USE_ALIGN 1
- #endif
- /* Enable or disable the support for tab alignment.
- * If disabled, tabs will be rendered as regular space character.
- */
- #ifndef MF_USE_TABS
- #define MF_USE_TABS 1
- #endif
- /* Number of vertical zones to use when computing kerning.
- * Larger values give more accurate kerning, but are slower and use somewhat
- * more memory. There is no point to increase this beyond the height of the
- * font.
- */
- #ifndef MF_KERNING_ZONES
- #define MF_KERNING_ZONES 16
- #endif
- /* Add extern "C" when used from C++. */
- #ifdef __cplusplus
- #define MF_EXTERN extern "C"
- #else
- #define MF_EXTERN extern
- #endif
- #endif
|