mirror of
https://github.com/slint-ui/slint.git
synced 2025-12-23 09:19:32 +00:00
60 lines
1.6 KiB
C++
60 lines
1.6 KiB
C++
// Copyright © SixtyFPS GmbH <info@slint.dev>
|
|
// SPDX-License-Identifier: MIT
|
|
|
|
#include "slint-esp.h"
|
|
#include "carousel_demo.h"
|
|
#include <ctime>
|
|
#include <memory>
|
|
|
|
#include <slint-platform.h>
|
|
|
|
#include <bsp/display.h>
|
|
#include <bsp/esp-bsp.h>
|
|
|
|
#if defined(BSP_LCD_DRAW_BUFF_SIZE)
|
|
# define DRAW_BUF_SIZE BSP_LCD_DRAW_BUFF_SIZE
|
|
#else
|
|
# define DRAW_BUF_SIZE (BSP_LCD_H_RES * CONFIG_BSP_LCD_DRAW_BUF_HEIGHT)
|
|
#endif
|
|
|
|
#if defined(EXAMPLE_TARGET_S3_BOX)
|
|
# include <bsp/touch.h>
|
|
#endif
|
|
#include <vector>
|
|
|
|
extern "C" void app_main(void)
|
|
{
|
|
/* Initialize I2C (for touch and audio) */
|
|
#if defined(EXAMPLE_TARGET_S3_BOX)
|
|
bsp_i2c_init();
|
|
#endif
|
|
|
|
/* Initialize display */
|
|
esp_lcd_panel_io_handle_t io_handle = NULL;
|
|
esp_lcd_panel_handle_t panel_handle = NULL;
|
|
const bsp_display_config_t bsp_disp_cfg = {
|
|
.max_transfer_sz = DRAW_BUF_SIZE * sizeof(uint16_t),
|
|
};
|
|
bsp_display_new(&bsp_disp_cfg, &panel_handle, &io_handle);
|
|
esp_lcd_touch_handle_t touch_handle = NULL;
|
|
#if defined(EXAMPLE_TARGET_S3_BOX)
|
|
const bsp_touch_config_t bsp_touch_cfg = {};
|
|
bsp_touch_new(&bsp_touch_cfg, &touch_handle);
|
|
#endif
|
|
|
|
/* Set display brightness to 100% */
|
|
bsp_display_backlight_on();
|
|
|
|
static std::vector<slint::platform::Rgb565Pixel> buffer(BSP_LCD_H_RES * BSP_LCD_V_RES);
|
|
|
|
slint_esp_init(SlintPlatformConfiguration {
|
|
.size = slint::PhysicalSize({ BSP_LCD_H_RES, BSP_LCD_V_RES }),
|
|
.panel_handle = panel_handle,
|
|
.touch_handle = touch_handle,
|
|
.buffer1 = buffer,
|
|
.byte_swap = true });
|
|
|
|
auto carousel_demo = MainWindow::create();
|
|
|
|
carousel_demo->run();
|
|
}
|