「App:Library:LVGL:docs:3rd party libraries:FreeType support」の版間の差分
(ページの作成:「https://docs.lvgl.io/8.2/libs/freetype.html __NOTOC__ {| class="wikitable" !英文 !自動翻訳 |- | | |} ---- :App:Library:LVGL:docs:3rd party libraries|戻…」) |
|||
9行目: | 9行目: | ||
|} | |} | ||
+ | |||
+ | |||
+ | = FreeType support = | ||
+ | Interface to FreeType to generate font bitmaps run time. | ||
+ | |||
+ | == Install FreeType == | ||
+ | |||
+ | * Download Freetype from here | ||
+ | * <code>make</code> | ||
+ | * <code>sudo make install</code> | ||
+ | |||
+ | == Add FreeType to your project == | ||
+ | |||
+ | * Add include path: <code>/usr/include/freetype2</code> (for GCC: <code>-I/usr/include/freetype2 -L/usr/local/lib</code>) | ||
+ | * Add library: <code>freetype</code> (for GCC: <code>-L/usr/local/lib -lfreetype</code>) | ||
+ | |||
+ | == Usage == | ||
+ | Enable <code>LV_USE_FREETYPE</code> in <code>lv_conf.h</code>. | ||
+ | |||
+ | To cache the glyphs from the opened fonts, set <code>LV_FREETYPE_CACHE_SIZE >= 0</code> and then use the following macros for detailed configuration: | ||
+ | |||
+ | # <code>LV_FREETYPE_CACHE_SIZE</code>:maximum memory(bytes) used to cache font bitmap, outline, character maps, etc. 0 means use the system default value, less than 0 means disable cache. Note: that this value does not account for managed FT_Face and FT_Size objects. | ||
+ | # <code>LV_FREETYPE_CACHE_FT_FACES</code>:maximum number of opened FT_Face objects managed by this cache instance.0 means use the system default value. Only useful when LV_FREETYPE_CACHE_SIZE >= 0. | ||
+ | # <code>LV_FREETYPE_CACHE_FT_SIZES</code>:maximum number of opened FT_Size objects managed by this cache instance. 0 means use the system default value. Only useful when LV_FREETYPE_CACHE_SIZE >= 0. | ||
+ | |||
+ | When you are sure that all the used font sizes will not be greater than 256, you can enable <code>LV_FREETYPE_SBIT_CACHE</code>, which is much more memory efficient for small bitmaps. | ||
+ | |||
+ | You can use <code>lv_ft_font_init()</code> to create FreeType fonts. It returns <code>true</code> to indicate success, at the same time, the <code>font</code> member of <code>lv_ft_info_t</code> will be filled with a pointer to an LVGL font, and you can use it like any LVGL font. | ||
+ | |||
+ | Font style supports bold and italic, you can use the following macros to set: | ||
+ | |||
+ | # <code>FT_FONT_STYLE_NORMAL</code>:default style. | ||
+ | # <code>FT_FONT_STYLE_ITALIC</code>:Italic style | ||
+ | # <code>FT_FONT_STYLE_BOLD</code>:bold style | ||
+ | |||
+ | They can be combined.eg:<code>FT_FONT_STYLE_BOLD | FT_FONT_STYLE_ITALIC</code>. | ||
+ | |||
+ | Note that, the FreeType extension doesn't use LVGL's file system. You can simply pass the path to the font as usual on your operating system or platform. | ||
+ | |||
+ | == Example == | ||
+ | |||
+ | === Open a front with FreeType === | ||
+ | [[ファイル:LVGL docs 3rdPartyLibs FreeType 01.png|サムネイル]] | ||
+ | |||
+ | |||
+ | https://docs.lvgl.io/8.2/libs/freetype.html#open-a-front-with-freetype | ||
+ | |||
+ | ---- | ||
+ | |||
+ | == Learn more == | ||
+ | |||
+ | * FreeType tutorial | ||
+ | * LVGL's font interface | ||
+ | |||
+ | == API == | ||
+ | Enums | ||
+ | |||
+ | ; <span id="_CPPv316LV_FT_FONT_STYLE"></span><span id="_CPPv216LV_FT_FONT_STYLE"></span><span id="lv__freetype_8h_1a1ba84fb8ade4d4c103a7f9d3521a02f9" class="target"></span>enum LV_FT_FONT_STYLE[https://docs.lvgl.io/8.2/libs/freetype.html#_CPPv416LV_FT_FONT_STYLE] <span id="_CPPv316LV_FT_FONT_STYLE"></span><span id="_CPPv216LV_FT_FONT_STYLE"></span><span id="lv__freetype_8h_1a1ba84fb8ade4d4c103a7f9d3521a02f9" class="target"></span> | ||
+ | : ''Values:'' | ||
+ | :; <span id="_CPPv3N16LV_FT_FONT_STYLE20FT_FONT_STYLE_NORMALE"></span><span id="_CPPv2N16LV_FT_FONT_STYLE20FT_FONT_STYLE_NORMALE"></span><span id="lv__freetype_8h_1a1ba84fb8ade4d4c103a7f9d3521a02f9abf4126e5116be22fe4c0af0ff336b186" class="target"></span>enumer[https://docs.lvgl.io/8.2/libs/freetype.html#_CPPv416LV_FT_FONT_STYLE]ator FT_FONT_STYLE_NORMAL[https://docs.lvgl.io/8.2/libs/freetype.html#_CPPv4N16LV_FT_FONT_STYLE20FT_FONT_STYLE_NORMALE] <span id="_CPPv3N16LV_FT_FONT_STYLE20FT_FONT_STYLE_NORMALE"></span><span id="_CPPv2N16LV_FT_FONT_STYLE20FT_FONT_STYLE_NORMALE"></span><span id="lv__freetype_8h_1a1ba84fb8ade4d4c103a7f9d3521a02f9abf4126e5116be22fe4c0af0ff336b186" class="target"></span> | ||
+ | :: | ||
+ | :; <span id="_CPPv3N16LV_FT_FONT_STYLE20FT_FONT_STYLE_ITALICE"></span><span id="_CPPv2N16LV_FT_FONT_STYLE20FT_FONT_STYLE_ITALICE"></span><span id="lv__freetype_8h_1a1ba84fb8ade4d4c103a7f9d3521a02f9aa703d47cf40ebeccde18785f528a96e2" class="target"></span>enumerator FT_FONT_ST[https://docs.lvgl.io/8.2/libs/freetype.html#_CPPv4N16LV_FT_FONT_STYLE20FT_FONT_STYLE_NORMALE]YLE_ITALIC[https://docs.lvgl.io/8.2/libs/freetype.html#_CPPv4N16LV_FT_FONT_STYLE20FT_FONT_STYLE_ITALICE] <span id="_CPPv3N16LV_FT_FONT_STYLE20FT_FONT_STYLE_ITALICE"></span><span id="_CPPv2N16LV_FT_FONT_STYLE20FT_FONT_STYLE_ITALICE"></span><span id="lv__freetype_8h_1a1ba84fb8ade4d4c103a7f9d3521a02f9aa703d47cf40ebeccde18785f528a96e2" class="target"></span> | ||
+ | :: | ||
+ | :; <span id="_CPPv3N16LV_FT_FONT_STYLE18FT_FONT_STYLE_BOLDE"></span><span id="_CPPv2N16LV_FT_FONT_STYLE18FT_FONT_STYLE_BOLDE"></span><span id="lv__freetype_8h_1a1ba84fb8ade4d4c103a7f9d3521a02f9a1f361569958a1ecf690aa777f1f37d87" class="target"></span>enumerator FT_FONT_ST[https://docs.lvgl.io/8.2/libs/freetype.html#_CPPv4N16LV_FT_FONT_STYLE20FT_FONT_STYLE_ITALICE]YLE_BOLD[https://docs.lvgl.io/8.2/libs/freetype.html#_CPPv4N16LV_FT_FONT_STYLE18FT_FONT_STYLE_BOLDE] <span id="_CPPv3N16LV_FT_FONT_STYLE18FT_FONT_STYLE_BOLDE"></span><span id="_CPPv2N16LV_FT_FONT_STYLE18FT_FONT_STYLE_BOLDE"></span><span id="lv__freetype_8h_1a1ba84fb8ade4d4c103a7f9d3521a02f9a1f361569958a1ecf690aa777f1f37d87" class="target"></span> | ||
+ | :: | ||
+ | |||
+ | Functions | ||
+ | |||
+ | ; <span id="_CPPv316lv_freetype_init8uint16_t8uint16_t8uint32_t"></span><span id="_CPPv216lv_freetype_init8uint16_t8uint16_t8uint32_t"></span><span id="lv_freetype_init__uint16_t.uint16_t.uint32_t"></span><span id="lv__freetype_8h_1a8ca334813647721c3fcdbbb1ce443fb6" class="target"></span>bool l[https://docs.lvgl.io/8.2/libs/freetype.html#_CPPv4N16LV_FT_FONT_STYLE18FT_FONT_STYLE_BOLDE]v_freetype_init(uint16_t max_faces, uint16_t max_sizes, uint32_t max_bytes)[https://docs.lvgl.io/8.2/libs/freetype.html#_CPPv416lv_freetype_init8uint16_t8uint16_t8uint32_t] <span id="_CPPv316lv_freetype_init8uint16_t8uint16_t8uint32_t"></span><span id="_CPPv216lv_freetype_init8uint16_t8uint16_t8uint32_t"></span><span id="lv_freetype_init__uint16_t.uint16_t.uint32_t"></span><span id="lv__freetype_8h_1a8ca334813647721c3fcdbbb1ce443fb6" class="target"></span> | ||
+ | : init freetype library | ||
+ | :; Parameters | ||
+ | ::* max_faces -- Maximum number of opene[https://docs.lvgl.io/8.2/libs/freetype.html#_CPPv416lv_freetype_init8uint16_t8uint16_t8uint32_t]d FT_Face objects managed by this cache instance. Use 0 for defaults. | ||
+ | ::* max_sizes -- Maximum number of opened FT_Size objects managed by this cache instance. Use 0 for defaults. | ||
+ | ::* max_bytes -- Maximum number of bytes to use for cached data nodes. Use 0 for defaults. Note that this value does not account for managed FT_Face and FT_Size objects. | ||
+ | :; Returns | ||
+ | :: true on success, otherwise false. | ||
+ | |||
+ | ; <span id="_CPPv319lv_freetype_destroyv"></span><span id="_CPPv219lv_freetype_destroyv"></span><span id="lv_freetype_destroy__void"></span><span id="lv__freetype_8h_1a7ce3c9bfea8f9e0459c56a8b4cb7fa79" class="target"></span>void lv_freetype_destroy(void)[https://docs.lvgl.io/8.2/libs/freetype.html#_CPPv419lv_freetype_destroyv] <span id="_CPPv319lv_freetype_destroyv"></span><span id="_CPPv219lv_freetype_destroyv"></span><span id="lv_freetype_destroy__void"></span><span id="lv__freetype_8h_1a7ce3c9bfea8f9e0459c56a8b4cb7fa79" class="target"></span> | ||
+ | : Destroy freetype library | ||
+ | [https://docs.lvgl.io/8.2/libs/freetype.html#_CPPv419lv_freetype_destroyv] | ||
+ | |||
+ | ; <span id="_CPPv315lv_ft_font_initP12lv_ft_info_t"></span><span id="_CPPv215lv_ft_font_initP12lv_ft_info_t"></span><span id="lv_ft_font_init__lv_ft_info_tP"></span><span id="lv__freetype_8h_1af8c1c5dfb3d8484c67914966f496fa5d" class="target"></span>bool lv_ft_font_init(lv_ft_info_t *info)[https://docs.lvgl.io/8.2/libs/freetype.html#_CPPv415lv_ft_font_initP12lv_ft_info_t] <span id="_CPPv315lv_ft_font_initP12lv_ft_info_t"></span><span id="_CPPv215lv_ft_font_initP12lv_ft_info_t"></span><span id="lv_ft_font_init__lv_ft_info_tP"></span><span id="lv__freetype_8h_1af8c1c5dfb3d8484c67914966f496fa5d" class="target"></span> | ||
+ | : Creates a font with info parameter s[https://docs.lvgl.io/8.2/libs/freetype.html#_CPPv415lv_ft_font_initP12lv_ft_info_t]pecified. | ||
+ | :; Parameters | ||
+ | :: info -- See lv_ft_info_t for details. when success, lv_ft_info_t->font point to the font you created. | ||
+ | :; Returns | ||
+ | :: true on success, otherwise false. | ||
+ | |||
+ | ; <span id="_CPPv318lv_ft_font_destroyP9lv_font_t"></span><span id="_CPPv218lv_ft_font_destroyP9lv_font_t"></span><span id="lv_ft_font_destroy__lv_font_tP"></span><span id="lv__freetype_8h_1a14e8da96c428a2a3659b18ac7c548a5d" class="target"></span>void lv_ft_font_destroy(lv_font_t *font)[https://docs.lvgl.io/8.2/libs/freetype.html#_CPPv418lv_ft_font_destroyP9lv_font_t] <span id="_CPPv318lv_ft_font_destroyP9lv_font_t"></span><span id="_CPPv218lv_ft_font_destroyP9lv_font_t"></span><span id="lv_ft_font_destroy__lv_font_tP"></span><span id="lv__freetype_8h_1a14e8da96c428a2a3659b18ac7c548a5d" class="target"></span> | ||
+ | : Destroy a font that has been created[https://docs.lvgl.io/8.2/libs/freetype.html#_CPPv418lv_ft_font_destroyP9lv_font_t]. | ||
+ | :; Parameters | ||
+ | :: font -- pointer to font. | ||
+ | |||
+ | ; <span id="_CPPv312lv_ft_info_t"></span><span id="_CPPv212lv_ft_info_t"></span><span id="lv_ft_info_t"></span><span id="structlv__ft__info__t" class="target"></span>struct lv_ft_info_t[https://docs.lvgl.io/8.2/libs/freetype.html#_CPPv412lv_ft_info_t] <span id="_CPPv312lv_ft_info_t"></span><span id="_CPPv212lv_ft_info_t"></span><span id="lv_ft_info_t"></span><span id="structlv__ft__info__t" class="target"></span> | ||
+ | : Public Members [https://docs.lvgl.io/8.2/libs/freetype.html#_CPPv412lv_ft_info_t] | ||
+ | :; <span id="_CPPv3N12lv_ft_info_t4nameE"></span><span id="_CPPv2N12lv_ft_info_t4nameE"></span><span id="lv_ft_info_t::name__cCP"></span><span id="structlv__ft__info__t_1a553cf8a5701a8fca3c7aea5f9ad23791" class="target"></span>const char *name[https://docs.lvgl.io/8.2/libs/freetype.html#_CPPv4N12lv_ft_info_t4nameE] <span id="_CPPv3N12lv_ft_info_t4nameE"></span><span id="_CPPv2N12lv_ft_info_t4nameE"></span><span id="lv_ft_info_t::name__cCP"></span><span id="structlv__ft__info__t_1a553cf8a5701a8fca3c7aea5f9ad23791" class="target"></span> | ||
+ | :: | ||
+ | :; <span id="_CPPv3N12lv_ft_info_t3memE"></span><span id="_CPPv2N12lv_ft_info_t3memE"></span><span id="lv_ft_info_t::mem__voidCP"></span><span id="structlv__ft__info__t_1a087c8647c7f86ba5a43b142d8733b0bd" class="target"></span>const [https://docs.lvgl.io/8.2/libs/freetype.html#_CPPv4N12lv_ft_info_t4nameE]void *mem[https://docs.lvgl.io/8.2/libs/freetype.html#_CPPv4N12lv_ft_info_t3memE] <span id="_CPPv3N12lv_ft_info_t3memE"></span><span id="_CPPv2N12lv_ft_info_t3memE"></span><span id="lv_ft_info_t::mem__voidCP"></span><span id="structlv__ft__info__t_1a087c8647c7f86ba5a43b142d8733b0bd" class="target"></span> | ||
+ | :: | ||
+ | :; <span id="_CPPv3N12lv_ft_info_t8mem_sizeE"></span><span id="_CPPv2N12lv_ft_info_t8mem_sizeE"></span><span id="lv_ft_info_t::mem_size__s"></span><span id="structlv__ft__info__t_1a23549db5fa70cb314a0ac19a5cc61aae" class="target"></span>size_[https://docs.lvgl.io/8.2/libs/freetype.html#_CPPv4N12lv_ft_info_t3memE]t mem_size[https://docs.lvgl.io/8.2/libs/freetype.html#_CPPv4N12lv_ft_info_t8mem_sizeE] <span id="_CPPv3N12lv_ft_info_t8mem_sizeE"></span><span id="_CPPv2N12lv_ft_info_t8mem_sizeE"></span><span id="lv_ft_info_t::mem_size__s"></span><span id="structlv__ft__info__t_1a23549db5fa70cb314a0ac19a5cc61aae" class="target"></span> | ||
+ | :: | ||
+ | :; <span id="_CPPv3N12lv_ft_info_t4fontE"></span><span id="_CPPv2N12lv_ft_info_t4fontE"></span><span id="lv_ft_info_t::font__lv_font_tP"></span><span id="structlv__ft__info__t_1a76ba9e1f18a57250cb61b04df77b6a15" class="target"></span>lv_fo[https://docs.lvgl.io/8.2/libs/freetype.html#_CPPv4N12lv_ft_info_t8mem_sizeE]nt_t *font[https://docs.lvgl.io/8.2/libs/freetype.html#_CPPv4N12lv_ft_info_t4fontE] <span id="_CPPv3N12lv_ft_info_t4fontE"></span><span id="_CPPv2N12lv_ft_info_t4fontE"></span><span id="lv_ft_info_t::font__lv_font_tP"></span><span id="structlv__ft__info__t_1a76ba9e1f18a57250cb61b04df77b6a15" class="target"></span> | ||
+ | :: | ||
+ | :; <span id="_CPPv3N12lv_ft_info_t6weightE"></span><span id="_CPPv2N12lv_ft_info_t6weightE"></span><span id="lv_ft_info_t::weight__uint16_t"></span><span id="structlv__ft__info__t_1a35fb57771e69d1f84be27bfe41e61a87" class="target"></span>uint1[https://docs.lvgl.io/8.2/libs/freetype.html#_CPPv4N12lv_ft_info_t4fontE]6_t weight[https://docs.lvgl.io/8.2/libs/freetype.html#_CPPv4N12lv_ft_info_t6weightE] <span id="_CPPv3N12lv_ft_info_t6weightE"></span><span id="_CPPv2N12lv_ft_info_t6weightE"></span><span id="lv_ft_info_t::weight__uint16_t"></span><span id="structlv__ft__info__t_1a35fb57771e69d1f84be27bfe41e61a87" class="target"></span> | ||
+ | :: | ||
+ | :; <span id="_CPPv3N12lv_ft_info_t5styleE"></span><span id="_CPPv2N12lv_ft_info_t5styleE"></span><span id="lv_ft_info_t::style__uint16_t"></span><span id="structlv__ft__info__t_1afbd2099d6fc045edd53e5830c8cfad65" class="target"></span>uint1[https://docs.lvgl.io/8.2/libs/freetype.html#_CPPv4N12lv_ft_info_t6weightE]6_t style | ||
2022年6月28日 (火) 12:55時点における版
https://docs.lvgl.io/8.2/libs/freetype.html
英文 | 自動翻訳 |
---|---|
FreeType support
Interface to FreeType to generate font bitmaps run time.
Install FreeType
- Download Freetype from here
make
sudo make install
Add FreeType to your project
- Add include path:
/usr/include/freetype2
(for GCC:-I/usr/include/freetype2 -L/usr/local/lib
) - Add library:
freetype
(for GCC:-L/usr/local/lib -lfreetype
)
Usage
Enable LV_USE_FREETYPE
in lv_conf.h
.
To cache the glyphs from the opened fonts, set LV_FREETYPE_CACHE_SIZE >= 0
and then use the following macros for detailed configuration:
LV_FREETYPE_CACHE_SIZE
:maximum memory(bytes) used to cache font bitmap, outline, character maps, etc. 0 means use the system default value, less than 0 means disable cache. Note: that this value does not account for managed FT_Face and FT_Size objects.LV_FREETYPE_CACHE_FT_FACES
:maximum number of opened FT_Face objects managed by this cache instance.0 means use the system default value. Only useful when LV_FREETYPE_CACHE_SIZE >= 0.LV_FREETYPE_CACHE_FT_SIZES
:maximum number of opened FT_Size objects managed by this cache instance. 0 means use the system default value. Only useful when LV_FREETYPE_CACHE_SIZE >= 0.
When you are sure that all the used font sizes will not be greater than 256, you can enable LV_FREETYPE_SBIT_CACHE
, which is much more memory efficient for small bitmaps.
You can use lv_ft_font_init()
to create FreeType fonts. It returns true
to indicate success, at the same time, the font
member of lv_ft_info_t
will be filled with a pointer to an LVGL font, and you can use it like any LVGL font.
Font style supports bold and italic, you can use the following macros to set:
FT_FONT_STYLE_NORMAL
:default style.FT_FONT_STYLE_ITALIC
:Italic styleFT_FONT_STYLE_BOLD
:bold style
They can be combined.eg:FT_FONT_STYLE_BOLD | FT_FONT_STYLE_ITALIC
.
Note that, the FreeType extension doesn't use LVGL's file system. You can simply pass the path to the font as usual on your operating system or platform.
Example
Open a front with FreeType
https://docs.lvgl.io/8.2/libs/freetype.html#open-a-front-with-freetype
Learn more
- FreeType tutorial
- LVGL's font interface
API
Enums
- enum LV_FT_FONT_STYLE[1]
- Values:
Functions
- bool l[8]v_freetype_init(uint16_t max_faces, uint16_t max_sizes, uint32_t max_bytes)[9]
- init freetype library
- Parameters
-
- max_faces -- Maximum number of opene[10]d FT_Face objects managed by this cache instance. Use 0 for defaults.
- max_sizes -- Maximum number of opened FT_Size objects managed by this cache instance. Use 0 for defaults.
- max_bytes -- Maximum number of bytes to use for cached data nodes. Use 0 for defaults. Note that this value does not account for managed FT_Face and FT_Size objects.
- Returns
- true on success, otherwise false.
- void lv_freetype_destroy(void)[11]
- Destroy freetype library
- bool lv_ft_font_init(lv_ft_info_t *info)[13]
- Creates a font with info parameter s[14]pecified.
- Parameters
- info -- See lv_ft_info_t for details. when success, lv_ft_info_t->font point to the font you created.
- Returns
- true on success, otherwise false.
- void lv_ft_font_destroy(lv_font_t *font)[15]
- Destroy a font that has been created[16].
- Parameters
- font -- pointer to font.