examples/lvgldemo: Add configuration for double buffering support
This commit is contained in:
parent
2d0a174cec
commit
cbce79ddb3
@ -22,6 +22,18 @@ config EXAMPLES_LVGLDEMO_BUFF_SIZE
|
|||||||
int "Display buffer size (in line)"
|
int "Display buffer size (in line)"
|
||||||
default 20
|
default 20
|
||||||
|
|
||||||
|
config EXAMPLES_LVGLDEMO_DOUBLE_BUFFERING
|
||||||
|
bool "Enable double buffering"
|
||||||
|
default n
|
||||||
|
---help---
|
||||||
|
When double buffering is enabled, LVGL expects the size of both
|
||||||
|
buffers as:
|
||||||
|
CONFIG_LV_HOR_RES * CONFIG_EXAMPLES_LVGLDEMO_BUFF_SIZE.
|
||||||
|
True double buffering support is enabled if both buffers have the
|
||||||
|
same dimensions as the display device resolution. Otherwise,
|
||||||
|
LVGL will perform a number of partial refreshes according to the
|
||||||
|
defined buffer size.
|
||||||
|
|
||||||
config EXAMPLES_LVGLDEMO_ASYNC_FLUSH
|
config EXAMPLES_LVGLDEMO_ASYNC_FLUSH
|
||||||
bool "Flush the display buffer asynchronously"
|
bool "Flush the display buffer asynchronously"
|
||||||
default n
|
default n
|
||||||
|
@ -41,8 +41,8 @@
|
|||||||
|
|
||||||
#include <sys/boardctl.h>
|
#include <sys/boardctl.h>
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
|
#include <stddef.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <stdio.h>
|
|
||||||
#include <time.h>
|
#include <time.h>
|
||||||
#include <debug.h>
|
#include <debug.h>
|
||||||
|
|
||||||
@ -52,10 +52,8 @@
|
|||||||
#include "lcddev.h"
|
#include "lcddev.h"
|
||||||
|
|
||||||
#ifdef CONFIG_INPUT
|
#ifdef CONFIG_INPUT
|
||||||
|
|
||||||
#include "tp.h"
|
#include "tp.h"
|
||||||
#include "tp_cal.h"
|
#include "tp_cal.h"
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
@ -112,7 +110,13 @@ static void monitor_cb(lv_disp_drv_t * disp_drv, uint32_t time, uint32_t px)
|
|||||||
* Private Data
|
* Private Data
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
static lv_color_t buf[DISPLAY_BUFFER_SIZE];
|
static lv_color_t buffer1[DISPLAY_BUFFER_SIZE];
|
||||||
|
|
||||||
|
#ifdef CONFIG_EXAMPLES_LVGLDEMO_DOUBLE_BUFFERING
|
||||||
|
static lv_color_t buffer2[DISPLAY_BUFFER_SIZE];
|
||||||
|
#else
|
||||||
|
# define buffer2 NULL
|
||||||
|
#endif
|
||||||
|
|
||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
* Public Functions
|
* Public Functions
|
||||||
@ -178,7 +182,7 @@ int main(int argc, FAR char *argv[])
|
|||||||
|
|
||||||
/* Basic LVGL display driver initialization */
|
/* Basic LVGL display driver initialization */
|
||||||
|
|
||||||
lv_disp_buf_init(&disp_buf, buf, NULL, DISPLAY_BUFFER_SIZE);
|
lv_disp_buf_init(&disp_buf, buffer1, buffer2, DISPLAY_BUFFER_SIZE);
|
||||||
lv_disp_drv_init(&disp_drv);
|
lv_disp_drv_init(&disp_drv);
|
||||||
disp_drv.buffer = &disp_buf;
|
disp_drv.buffer = &disp_buf;
|
||||||
disp_drv.monitor_cb = monitor_cb;
|
disp_drv.monitor_cb = monitor_cb;
|
||||||
@ -200,7 +204,6 @@ int main(int argc, FAR char *argv[])
|
|||||||
lv_disp_drv_register(&disp_drv);
|
lv_disp_drv_register(&disp_drv);
|
||||||
|
|
||||||
#ifdef CONFIG_INPUT
|
#ifdef CONFIG_INPUT
|
||||||
|
|
||||||
/* Touchpad Initialization */
|
/* Touchpad Initialization */
|
||||||
|
|
||||||
tp_init();
|
tp_init();
|
||||||
@ -214,7 +217,6 @@ int main(int argc, FAR char *argv[])
|
|||||||
|
|
||||||
indev_drv.read_cb = tp_read;
|
indev_drv.read_cb = tp_read;
|
||||||
lv_indev_drv_register(&indev_drv);
|
lv_indev_drv_register(&indev_drv);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(CONFIG_EXAMPLES_LVGLDEMO_BENCHMARK)
|
#if defined(CONFIG_EXAMPLES_LVGLDEMO_BENCHMARK)
|
||||||
@ -228,7 +230,6 @@ int main(int argc, FAR char *argv[])
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef CONFIG_INPUT
|
#ifdef CONFIG_INPUT
|
||||||
|
|
||||||
/* Start TP calibration */
|
/* Start TP calibration */
|
||||||
|
|
||||||
#ifdef CONFIG_EXAMPLES_LVGLDEMO_CALIBRATE
|
#ifdef CONFIG_EXAMPLES_LVGLDEMO_CALIBRATE
|
||||||
@ -236,7 +237,6 @@ int main(int argc, FAR char *argv[])
|
|||||||
#else
|
#else
|
||||||
tp_set_cal_values(p, p + 1, p + 2, p + 3);
|
tp_set_cal_values(p, p + 1, p + 2, p + 3);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* Handle LVGL tasks */
|
/* Handle LVGL tasks */
|
||||||
|
Loading…
Reference in New Issue
Block a user