| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102 |
- /*
- @module lvgl
- @summary LVGL图像库
- @version 1.0
- @date 2021.06.01
- */
- #include "luat_base.h"
- #include "luat_lvgl.h"
- #include "lvgl.h"
- #include "luat_malloc.h"
- #include "luat_lvgl_fonts.h"
- /*
- 获取内置字体
- @api lvgl.font_get(name)
- @string 字体名称+字号, 例如 opposans_m_10 simsun_48
- @return userdata 字体指针
- @usage
- local font = lvgl.font_get("simsun_48")
- */
- int luat_lv_font_get(lua_State *L) {
- lv_font_t* font = NULL;
- const char* fontname = luaL_checkstring(L, 1);
- if (!strcmp("", fontname)) {
- }
- #ifdef LV_FONT_MONTSERRAT_14
- else if (!strcmp("montserrat_14", fontname)) { font = &lv_font_montserrat_14;}
- #endif
- #ifdef LV_FONT_OPPOSANS_M_8
- else if (!strcmp("opposans_m_8", fontname)) { font = &lv_font_opposans_m_8;}
- #endif
- #ifdef LV_FONT_OPPOSANS_M_10
- else if (!strcmp("opposans_m_10", fontname)) { font = &lv_font_opposans_m_10;}
- #endif
- #ifdef LV_FONT_OPPOSANS_M_12
- else if (!strcmp("opposans_m_12", fontname)) { font = &lv_font_opposans_m_12;}
- #endif
- #ifdef LV_FONT_OPPOSANS_M_14
- else if (!strcmp("opposans_m_14", fontname)) { font = &lv_font_opposans_m_14;}
- #endif
- #ifdef LV_FONT_OPPOSANS_M_16
- else if (!strcmp("opposans_m_16", fontname)) { font = &lv_font_opposans_m_16;}
- #endif
- #ifdef LV_FONT_OPPOSANS_M_18
- else if (!strcmp("opposans_m_18", fontname)) { font = &lv_font_opposans_m_18;}
- #endif
- #ifdef LV_FONT_OPPOSANS_M_20
- else if (!strcmp("opposans_m_20", fontname)) { font = &lv_font_opposans_m_20;}
- #endif
- #ifdef LV_FONT_OPPOSANS_M_22
- else if (!strcmp("opposans_m_22", fontname)) { font = &lv_font_opposans_m_22;}
- #endif
- #ifdef USE_LVGL_SIMSUN_48
- else if (!strcmp("simsun_48", fontname)) { font = &lv_font_simsun_48;}
- #endif
- if (font) {
- lua_pushlightuserdata(L, font);
- return 1;
- }
- return 0;
- }
- /*
- 从文件系统加载字体
- @api lvgl.font_load(path)
- @string 字体路径
- @return userdata 字体指针
- @usage
- local font = lvgl.font_load("/font_simsun_32.bin")
- */
- int luat_lv_font_load(lua_State *L) {
- const char* fontname = luaL_checkstring(L, 1);
- lv_font_t* font = lv_font_load(fontname);
- if (font) {
- lua_pushlightuserdata(L, font);
- return 1;
- }
- return 0;
- }
- /*
- 释放字体,慎用!!!仅通过font_load加载的字体允许卸载,通过font_get获取的字体不允许卸载
- @api lvgl.font_free(font)
- @string 字体路径
- @return userdata 字体指针
- @usage
- local font = lvgl.font_load("/font_simsun_32.bin")
- -- N N N N 操作
- -- 确定字体不被使用,不被引用,且内存紧张需要释放
- lvgl.font_free(font)
- */
- int luat_lv_font_free(lua_State *L) {
- lv_font_t* font = lua_touserdata(L, 1);
- if (font) {
- lv_font_free(font);
- }
- return 0;
- }
|