Просмотр исходного кода

update: 更新bsp/linux,能出现窗口了

Wendal Chen 4 лет назад
Родитель
Сommit
0e705d7ed3

+ 1 - 1
bsp/linux/CMakeLists.txt

@@ -123,7 +123,7 @@ add_subdirectory(${TOPROOT}/components/lvgl lvgl.out)
 
 add_executable(luatos src/main.c)
 target_link_libraries(luat freertos10 pthread fatfs lvgl)
-target_link_libraries(luatos freertos10 lua luatos_msys fatfs luat pthread cjson mbedtls lvgl m
+target_link_libraries(luatos freertos10 lua luatos_msys fatfs luat pthread cjson mbedtls lvgl m dl
 gtk-3 gdk-3 pangocairo-1.0 pango-1.0 atk-1.0 cairo-gobject cairo gdk_pixbuf-2.0 gio-2.0 gobject-2.0 glib-2.0
 )
 

+ 35 - 1
bsp/linux/include/luat_conf_bsp.h

@@ -25,7 +25,7 @@
 
 #define LUAT_USE_LVGL 1
 #define USE_GTK 1
-
+#define LUA_USE_LINUX 1
 //#define LUAT_FORCE_WIN32 1
 
 #define LV_FONT_OPPOSANS_M_8
@@ -38,4 +38,38 @@
 #define LV_FONT_OPPOSANS_M_22
 #define USE_LVGL_SIMSUN_48
 
+#define LUAT_USE_LVGL_ARC   //圆弧 无依赖
+#define LUAT_USE_LVGL_BAR   //进度条 无依赖
+#define LUAT_USE_LVGL_BTN   //按钮 依赖容器CONT
+#define LUAT_USE_LVGL_BTNMATRIX   //按钮矩阵 无依赖
+#define LUAT_USE_LVGL_CALENDAR   //日历 无依赖
+#define LUAT_USE_LVGL_CANVAS   //画布 依赖图片IMG
+#define LUAT_USE_LVGL_CHECKBOX   //复选框 依赖按钮BTN 标签LABEL
+#define LUAT_USE_LVGL_CHART   //图表 无依赖
+#define LUAT_USE_LVGL_CONT   //容器 无依赖
+#define LUAT_USE_LVGL_CPICKER   //颜色选择器 无依赖
+#define LUAT_USE_LVGL_DROPDOWN   //下拉列表 依赖页面PAGE 标签LABEL
+#define LUAT_USE_LVGL_GAUGE   //仪表 依赖进度条BAR 仪表(弧形刻度)LINEMETER
+#define LUAT_USE_LVGL_IMG   //图片 依赖标签LABEL
+#define LUAT_USE_LVGL_IMGBTN   //图片按钮 依赖按钮BTN
+#define LUAT_USE_LVGL_KEYBOARD   //键盘 依赖图片按钮IMGBTN
+#define LUAT_USE_LVGL_LABEL   //标签 无依赖
+#define LUAT_USE_LVGL_LED   //LED 无依赖
+#define LUAT_USE_LVGL_LINE   //线 无依赖
+#define LUAT_USE_LVGL_LIST   //列表 依赖页面PAGE 按钮BTN 标签LABEL
+#define LUAT_USE_LVGL_LINEMETER   //仪表(弧形刻度) 无依赖
+#define LUAT_USE_LVGL_OBJMASK   //对象蒙版 无依赖
+#define LUAT_USE_LVGL_MSGBOX   //消息框 依赖图片按钮IMGBTN 标签LABEL
+#define LUAT_USE_LVGL_PAGE   //页面 依赖容器CONT
+#define LUAT_USE_LVGL_SPINNER   //旋转器 依赖圆弧ARC 动画ANIM
+#define LUAT_USE_LVGL_ROLLER   //滚筒 无依赖
+#define LUAT_USE_LVGL_SLIDER   //滑杆 依赖进度条BAR
+#define LUAT_USE_LVGL_SPINBOX   //数字调整框 无依赖
+#define LUAT_USE_LVGL_SWITCH   //开关 依赖滑杆SLIDER
+#define LUAT_USE_LVGL_TEXTAREA   //文本框 依赖标签LABEL 页面PAGE
+#define LUAT_USE_LVGL_TABLE   //表格 依赖标签LABEL
+#define LUAT_USE_LVGL_TABVIEW   //页签 依赖页面PAGE 图片按钮IMGBTN
+#define LUAT_USE_LVGL_TILEVIEW   //平铺视图 依赖页面PAGE
+#define LUAT_USE_LVGL_WIN   //窗口 依赖容器CONT 按钮BTN 标签LABEL 图片IMG 页面PAGE
+
 #endif

+ 20 - 0
bsp/linux/main.lua

@@ -0,0 +1,20 @@
+
+
+local sys = require "sys"
+
+log.info("sys", "from linux")
+
+sys.taskInit(function ()
+    sys.wait(1000)
+
+    --lvgl.init()
+    local scr = lvgl.obj_create()
+    local btn = lvgl.btn_create(scr)
+    local label = lvgl.label_create(btn)
+    lvgl.label_set_text("hi")
+
+    lvgl.load(scr)
+end)
+
+sys.run()
+

+ 2 - 1
bsp/linux/src/main.c

@@ -59,7 +59,8 @@ int main(int argc, char** argv) {
 
 #ifdef LUAT_USE_LVGL
     lv_init();
-
+    void lvgl_linux_init(void);
+    lvgl_linux_init();
     xTaskCreate( _lvgl_handler, "lvgl", 1024*2, NULL, 23, NULL );
 #endif
 

+ 1 - 1
components/lvgl/binding/luat_lib_lvgl7.c

@@ -41,7 +41,7 @@ int luat_lv_init(lua_State *L) {
     lua_pushboolean(L, 1);
     return 1;
     #elif defined(LUA_USE_LINUX)
-    lvgl_linux_init();
+    //lvgl_linux_init();
     lua_pushboolean(L, 1);
     return 1;
     #else

+ 2 - 2
components/lvgl/exts/lv_drivers/gtkdrv/gtkdrv.h

@@ -13,11 +13,11 @@ extern "C" {
 /*********************
  *      INCLUDES
  *********************/
-#include "lv_drv_conf.h"
+#include "src/lv_drv_conf.h"
 
 #if USE_GTK
 
-#include "lvgl/lvgl.h"
+#include "lvgl.h"
 
 
 /*********************