12f7665310
This adds basic VNC protocol support using the Neat VNC library (https://github.com/any1/neatvnc). Neat VNC depends on the AML main loop library. The backend makes use of AML's integrated epoll backend and connects AML via file descriptor with the Wayland event loop. This implementation does not support authentication and hardcodes the pixel format currently. Co-authored-by: Philipp Zabel <p.zabel@pengutronix.de> Co-authored-by: Rouven Czerwinski <r.czerwinski@pengutronix.de> Signed-off-by: Stefan Agner <stefan@agner.ch> [r.czerwinski@pengutronix.de: - use new (as of 0.5.0) Neat VNC buffer API, with a buffer pool] Signed-off-by: Rouven Czerwinski <r.czerwinski@pengutronix.de> [p.zabel@pengutronix.de: - transform repaint damage to output coordinates - transform pointer coordinates into global space - check that outputs and heads are in fact ours, see aab722bb1785..060ef82d9360 - track damage across multiple frame buffers - choose pixel format by drm_fourcc, see8b6c3fe0ad
- enable ctrl and alt modifiers - fix frame timing to achieve a constant repaint rate - pass initial size explicitly, seef4559b0760
- use resize_output with pixman-renderer, see 55d08f9634e8..84b5d0eb4bee - allow configuring the refresh rate] Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
33 lines
938 B
Meson
33 lines
938 B
Meson
if not get_option('backend-vnc')
|
|
subdir_done()
|
|
endif
|
|
|
|
config_h.set('BUILD_VNC_COMPOSITOR', '1')
|
|
dep_neatvnc = dependency('neatvnc', version: ['>= 0.5.0', '< 0.6.0'], required: false)
|
|
if not dep_neatvnc.found()
|
|
error('VNC backend requires neatvnc which was not found. Or, you can use \'-Dbackend-vnc=false\'.')
|
|
endif
|
|
|
|
dep_aml = dependency('aml', version: ['>= 0.1.0', '< 0.3.0'], required: false)
|
|
if not dep_aml.found()
|
|
error('VNC backend requires libaml which was not found. Or, you can use \'-Dbackend-vnc=false\'.')
|
|
endif
|
|
|
|
deps_vnc = [
|
|
dep_libweston_private,
|
|
dep_neatvnc,
|
|
dep_aml,
|
|
dep_libdrm_headers,
|
|
]
|
|
plugin_vnc = shared_library(
|
|
'vnc-backend',
|
|
[ 'vnc.c' ],
|
|
include_directories: common_inc,
|
|
dependencies: deps_vnc,
|
|
name_prefix: '',
|
|
install: true,
|
|
install_dir: dir_module_libweston
|
|
)
|
|
env_modmap += 'vnc-backend.so=@0@;'.format(plugin_vnc.full_path())
|
|
install_headers(backend_vnc_h, subdir: dir_include_libweston_install)
|