diff options
Diffstat (limited to 'fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/samples/littlevgl/vgl-wasm-runtime/src/platform/zephyr/display_indev.c')
-rw-r--r-- | fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/samples/littlevgl/vgl-wasm-runtime/src/platform/zephyr/display_indev.c | 105 |
1 files changed, 105 insertions, 0 deletions
diff --git a/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/samples/littlevgl/vgl-wasm-runtime/src/platform/zephyr/display_indev.c b/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/samples/littlevgl/vgl-wasm-runtime/src/platform/zephyr/display_indev.c new file mode 100644 index 000000000..b2f9f8e52 --- /dev/null +++ b/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/samples/littlevgl/vgl-wasm-runtime/src/platform/zephyr/display_indev.c @@ -0,0 +1,105 @@ +/* + * Copyright (C) 2019 Intel Corporation. All rights reserved. + * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception + */ +#include <stdio.h> +#include <stdbool.h> +#include "display_indev.h" +#include "display.h" +#include "wasm_export.h" +#include "app_manager_export.h" + +#define MONITOR_HOR_RES 320 +#define MONITOR_VER_RES 240 +#ifndef MONITOR_ZOOM +#define MONITOR_ZOOM 1 +#endif + +extern int +ili9340_init(); + +static int lcd_initialized = 0; + +void +display_init(void) +{ + if (lcd_initialized != 0) { + return; + } + lcd_initialized = 1; + xpt2046_init(); + ili9340_init(); + display_blanking_off(NULL); +} + +void +display_flush(wasm_exec_env_t exec_env, int32_t x1, int32_t y1, int32_t x2, + int32_t y2, lv_color_t *color) +{ + wasm_module_inst_t module_inst = get_module_inst(exec_env); + struct display_buffer_descriptor desc; + + if (!wasm_runtime_validate_native_addr(module_inst, color, + sizeof(lv_color_t))) + return; + + uint16_t w = x2 - x1 + 1; + uint16_t h = y2 - y1 + 1; + + desc.buf_size = 3 * w * h; + desc.width = w; + desc.pitch = w; + desc.height = h; + display_write(NULL, x1, y1, &desc, (void *)color); + + /*lv_flush_ready();*/ +} + +void +display_fill(wasm_exec_env_t exec_env, int32_t x1, int32_t y1, int32_t x2, + int32_t y2, lv_color_t *color) +{} + +void +display_map(wasm_exec_env_t exec_env, int32_t x1, int32_t y1, int32_t x2, + int32_t y2, const lv_color_t *color) +{} + +bool +display_input_read(wasm_exec_env_t exec_env, void *data) +{ + wasm_module_inst_t module_inst = get_module_inst(exec_env); + lv_indev_data_t *lv_data = (lv_indev_data_t *)data; + + if (!wasm_runtime_validate_native_addr(module_inst, lv_data, + sizeof(lv_indev_data_t))) + return false; + + return touchscreen_read(lv_data); +} + +void +display_deinit(wasm_exec_env_t exec_env) +{} + +void +display_vdb_write(wasm_exec_env_t exec_env, void *buf, lv_coord_t buf_w, + lv_coord_t x, lv_coord_t y, lv_color_t *color, lv_opa_t opa) +{ + wasm_module_inst_t module_inst = get_module_inst(exec_env); + uint8_t *buf_xy = (uint8_t *)buf + 3 * x + 3 * y * buf_w; + + if (!wasm_runtime_validate_native_addr(module_inst, color, + sizeof(lv_color_t))) + return; + + *buf_xy = color->red; + *(buf_xy + 1) = color->green; + *(buf_xy + 2) = color->blue; +} + +int +time_get_ms(wasm_exec_env_t exec_env) +{ + return k_uptime_get_32(); +} |