treewide: add Wayland and SDL2 backends
This commit is contained in:
parent
271cdf8534
commit
e69bcf5dc2
11 changed files with 44 additions and 3 deletions
|
|
@ -56,6 +56,9 @@ On distributions based on systemd, `unl0kr` can be used as a [password agent](ht
|
||||||
# systemd-ask-password --no-tty # Unl0kr is started
|
# systemd-ask-password --no-tty # Unl0kr is started
|
||||||
```
|
```
|
||||||
|
|
||||||
|
**Note**: SDL2 can be used as display backend for development purposes by setting the Meson option `developer` and use `backend=sdl` in the configuration file.
|
||||||
|
Other uses besides development are not supported by Buffybox.
|
||||||
|
|
||||||
## Packaging
|
## Packaging
|
||||||
|
|
||||||
Create a full package:
|
Create a full package:
|
||||||
|
|
|
||||||
|
|
@ -115,6 +115,7 @@ hostname=mydevice
|
||||||
- [libinput] - Input device handling
|
- [libinput] - Input device handling
|
||||||
- [libudev] - Device enumeration
|
- [libudev] - Device enumeration
|
||||||
- [libxkbcommon] - Keyboard layout support
|
- [libxkbcommon] - Keyboard layout support
|
||||||
|
- [libdrm] - DRM backend
|
||||||
- evdev kernel module
|
- evdev kernel module
|
||||||
|
|
||||||
## Backends
|
## Backends
|
||||||
|
|
|
||||||
|
|
@ -1159,7 +1159,8 @@
|
||||||
*==================*/
|
*==================*/
|
||||||
|
|
||||||
/** Use SDL to open window on PC and handle mouse and keyboard. */
|
/** Use SDL to open window on PC and handle mouse and keyboard. */
|
||||||
#define LV_USE_SDL 0
|
// LV_USE_SDL is defined dynamically via meson.build so we must not define it here
|
||||||
|
// #define LV_USE_SDL 0
|
||||||
#if LV_USE_SDL
|
#if LV_USE_SDL
|
||||||
#define LV_SDL_INCLUDE_PATH <SDL2/SDL.h>
|
#define LV_SDL_INCLUDE_PATH <SDL2/SDL.h>
|
||||||
#define LV_SDL_RENDER_MODE LV_DISPLAY_RENDER_MODE_DIRECT /**< LV_DISPLAY_RENDER_MODE_DIRECT is recommended for best performance */
|
#define LV_SDL_RENDER_MODE LV_DISPLAY_RENDER_MODE_DIRECT /**< LV_DISPLAY_RENDER_MODE_DIRECT is recommended for best performance */
|
||||||
|
|
@ -1231,6 +1232,7 @@
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/** Driver for /dev/dri/card */
|
/** Driver for /dev/dri/card */
|
||||||
|
// LV_USE_LINUX_DRM is defined dynamically via meson.build so we must not define it here
|
||||||
//#define LV_USE_LINUX_DRM 0
|
//#define LV_USE_LINUX_DRM 0
|
||||||
|
|
||||||
#if LV_USE_LINUX_DRM
|
#if LV_USE_LINUX_DRM
|
||||||
|
|
|
||||||
|
|
@ -23,6 +23,13 @@ else
|
||||||
f0rmz_args += '-DLV_USE_LINUX_DRM=0'
|
f0rmz_args += '-DLV_USE_LINUX_DRM=0'
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
if deplibsdl.found()
|
||||||
|
f0rmz_dependencies += deplibsdl
|
||||||
|
f0rmz_args += '-DLV_USE_SDL=1'
|
||||||
|
else
|
||||||
|
f0rmz_args += '-DLV_USE_SDL=0'
|
||||||
|
endif
|
||||||
|
|
||||||
executable('f0rmz',
|
executable('f0rmz',
|
||||||
include_directories: common_include_dirs,
|
include_directories: common_include_dirs,
|
||||||
sources: f0rmz_sources + shared_sources + shared_sources_ul_f0 + squeek2lvgl_sources + lvgl_sources,
|
sources: f0rmz_sources + shared_sources + shared_sources_ul_f0 + squeek2lvgl_sources + lvgl_sources,
|
||||||
|
|
|
||||||
|
|
@ -14,6 +14,7 @@ depinih = dependency('inih')
|
||||||
deplibinput = dependency('libinput')
|
deplibinput = dependency('libinput')
|
||||||
deplibudev = dependency('libudev')
|
deplibudev = dependency('libudev')
|
||||||
depxkbcommon = dependency('xkbcommon') # For unl0kr and f0rmz only
|
depxkbcommon = dependency('xkbcommon') # For unl0kr and f0rmz only
|
||||||
|
deplibsdl = dependency('sdl2', required: get_option('developer'))
|
||||||
|
|
||||||
if get_option('man')
|
if get_option('man')
|
||||||
depscdoc = dependency('scdoc', native: true)
|
depscdoc = dependency('scdoc', native: true)
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,5 @@
|
||||||
option('with-drm', type: 'feature', value: 'auto', description: 'Enable DRM backend')
|
option('with-drm', type: 'feature', value: 'auto', description: 'Enable DRM backend')
|
||||||
|
option('developer', type: 'feature', value: 'auto', description: 'Enable developer features')
|
||||||
option('man', type: 'boolean', value: true, description: 'Install manual pages')
|
option('man', type: 'boolean', value: true, description: 'Install manual pages')
|
||||||
option('systemd-buffyboard-service', type: 'feature', value: 'auto', description: 'Install systemd service file for buffyboard')
|
option('systemd-buffyboard-service', type: 'feature', value: 'auto', description: 'Install systemd service file for buffyboard')
|
||||||
option('systemd-password-agent', type: 'feature', value: 'auto', description: 'Build a systemd password agent for touchscreens')
|
option('systemd-password-agent', type: 'feature', value: 'auto', description: 'Build a systemd password agent for touchscreens')
|
||||||
|
|
|
||||||
|
|
@ -16,6 +16,9 @@ static const char *backends[] = {
|
||||||
#endif
|
#endif
|
||||||
#if LV_USE_LINUX_DRM
|
#if LV_USE_LINUX_DRM
|
||||||
"drm",
|
"drm",
|
||||||
|
#endif
|
||||||
|
#if LV_USE_SDL
|
||||||
|
"sdl",
|
||||||
#endif
|
#endif
|
||||||
NULL
|
NULL
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -9,7 +9,7 @@
|
||||||
|
|
||||||
#include "lv_conf.h"
|
#include "lv_conf.h"
|
||||||
|
|
||||||
#if LV_USE_LINUX_FBDEV == 0 && LV_USE_LINUX_DRM == 0
|
#if LV_USE_LINUX_FBDEV == 0 && LV_USE_LINUX_DRM == 0 && LV_USE_SDL == 0
|
||||||
#error Neither of graphical backends is enabled
|
#error Neither of graphical backends is enabled
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
@ -26,6 +26,9 @@ typedef enum {
|
||||||
#if LV_USE_LINUX_DRM
|
#if LV_USE_LINUX_DRM
|
||||||
BBX_BACKENDS_BACKEND_DRM,
|
BBX_BACKENDS_BACKEND_DRM,
|
||||||
#endif
|
#endif
|
||||||
|
#if LV_USE_SDL
|
||||||
|
BBX_BACKENDS_BACKEND_SDL,
|
||||||
|
#endif
|
||||||
} bbx_backends_backend_id_t;
|
} bbx_backends_backend_id_t;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
|
|
@ -63,6 +63,17 @@ lv_display_t *bbx_display_create(bbx_backends_backend_id_t backend_id, bbx_displ
|
||||||
break;
|
break;
|
||||||
#endif /* LV_USE_LINUX_DRM */
|
#endif /* LV_USE_LINUX_DRM */
|
||||||
|
|
||||||
|
#if LV_USE_SDL
|
||||||
|
case BBX_BACKENDS_BACKEND_SDL:
|
||||||
|
bbx_log(BBX_LOG_LEVEL_VERBOSE, "Using SDL2 backend");
|
||||||
|
disp = lv_sdl_window_create(config->hor_res > 0 ? config->hor_res: 800, config->ver_res > 0 ? config->ver_res: 480);
|
||||||
|
if (!disp) {
|
||||||
|
bbx_log(BBX_LOG_LEVEL_ERROR, "Failed to create SDL2 display");
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
#endif /* LV_USE_SDL */
|
||||||
|
|
||||||
default:
|
default:
|
||||||
bbx_log(BBX_LOG_LEVEL_ERROR, "Unable to find suitable backend");
|
bbx_log(BBX_LOG_LEVEL_ERROR, "Unable to find suitable backend");
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
|
||||||
|
|
@ -1159,7 +1159,8 @@
|
||||||
*==================*/
|
*==================*/
|
||||||
|
|
||||||
/** Use SDL to open window on PC and handle mouse and keyboard. */
|
/** Use SDL to open window on PC and handle mouse and keyboard. */
|
||||||
#define LV_USE_SDL 0
|
// LV_USE_SDL is defined dynamically via meson.build so we must not define it here
|
||||||
|
// #define LV_USE_SDL 0
|
||||||
#if LV_USE_SDL
|
#if LV_USE_SDL
|
||||||
#define LV_SDL_INCLUDE_PATH <SDL2/SDL.h>
|
#define LV_SDL_INCLUDE_PATH <SDL2/SDL.h>
|
||||||
#define LV_SDL_RENDER_MODE LV_DISPLAY_RENDER_MODE_DIRECT /**< LV_DISPLAY_RENDER_MODE_DIRECT is recommended for best performance */
|
#define LV_SDL_RENDER_MODE LV_DISPLAY_RENDER_MODE_DIRECT /**< LV_DISPLAY_RENDER_MODE_DIRECT is recommended for best performance */
|
||||||
|
|
@ -1231,6 +1232,7 @@
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/** Driver for /dev/dri/card */
|
/** Driver for /dev/dri/card */
|
||||||
|
// LV_USE_LINUX_DRM is defined dynamically via meson.build so we must not define it here
|
||||||
//#define LV_USE_LINUX_DRM 0
|
//#define LV_USE_LINUX_DRM 0
|
||||||
|
|
||||||
#if LV_USE_LINUX_DRM
|
#if LV_USE_LINUX_DRM
|
||||||
|
|
|
||||||
|
|
@ -23,6 +23,13 @@ else
|
||||||
unl0kr_args += '-DLV_USE_LINUX_DRM=0'
|
unl0kr_args += '-DLV_USE_LINUX_DRM=0'
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
if deplibsdl.found()
|
||||||
|
unl0kr_dependencies += deplibsdl
|
||||||
|
unl0kr_args += '-DLV_USE_SDL=1'
|
||||||
|
else
|
||||||
|
unl0kr_args += '-DLV_USE_SDL=0'
|
||||||
|
endif
|
||||||
|
|
||||||
executable('unl0kr',
|
executable('unl0kr',
|
||||||
include_directories: common_include_dirs,
|
include_directories: common_include_dirs,
|
||||||
sources: unl0kr_sources + shared_sources + shared_sources_ul_f0 + squeek2lvgl_sources + lvgl_sources,
|
sources: unl0kr_sources + shared_sources + shared_sources_ul_f0 + squeek2lvgl_sources + lvgl_sources,
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue