Andri Yngvason
85563d59f8
main: Pin wl_output version to 3
...
Otherwise, things will crash when the compositor adds support for a
newer version.
2021-12-15 23:13:58 +00:00
Andri Yngvason
7581cf0bc4
Correct transform for y-inverted buffers
2021-09-25 00:24:38 +00:00
Andri Yngvason
1a41154b8c
Remove left-over #include
2021-09-21 23:14:42 +00:00
Andri Yngvason
0d05b08fb0
Remove damage-refinery
...
It has been moved into neatvnc
2021-09-20 21:34:40 +00:00
Andri Yngvason
61ebb57696
Let neatvnc handle buffer transforms
2021-09-20 01:03:15 +00:00
Andri Yngvason
87c040c919
Align with nvnc_fb_pool API change
2021-09-05 00:47:34 +00:00
Andri Yngvason
6c3d9bbb9f
Use new NeatVNC buffer submission API
2021-09-04 21:04:00 +00:00
Ryan Farley
81192ac74d
Support UNIX domain sockets
...
Makes use of the functionality added in
https://github.com/any1/neatvnc/pull/49 to support UNIX domain sockets
with a command line flag.
2021-04-06 14:19:28 +00:00
Andri Yngvason
2dc16d2e07
Also exit on ECONNRESET
2020-12-31 13:28:15 +00:00
Andri Yngvason
e3af211523
keyboard: Show warning when multiple layouts are specified
2020-12-27 19:34:06 +00:00
Andri Yngvason
0178c13627
keyboard: Always use layout index 0
...
Layout switching isn't supported anyhow. Better not to confuse things.
2020-12-27 19:26:54 +00:00
Andri Yngvason
b9142a94ae
Add xkb config options
2020-12-26 21:32:06 +00:00
Andri Yngvason
d0aa51aa6e
keyboard: Pass struct xkb_rule_names to keyboard_init
2020-12-26 21:07:49 +00:00
Andri Yngvason
482ebaf168
keyboard: Match shift levels to keycodes when needed
2020-12-26 17:19:34 +00:00
Andri Yngvason
2957f6f3a2
keyboard: Split keyboard_feed_code() into more functions
2020-12-26 17:19:34 +00:00
Arnavion
a9b2d93568
Don't free the front buffer if screencopy fails
...
It is possible for `screencopy_failed` to be called without
the front buffer ever being set, such as when the output is dpms-off.
Fixes #65
2020-12-19 12:53:33 +00:00
Andri Yngvason
d757e6db88
Add handler for raw key events
2020-11-29 20:50:39 +00:00
Andri Yngvason
d978d94041
keyboard: Extract function 'keyboard_feed_code()'
2020-11-29 18:58:21 +00:00
NickSica
6a73f293fc
Add PAM authentication
2020-11-03 22:18:46 +00:00
Andri Yngvason
fa4dc0f169
Limit usage text to 80 characters per line
2020-10-17 18:16:12 +00:00
Flakebi
98d703bfa8
Fix de-neo layout
...
- Add possibility to specify layout variant with -k <layout>-<variant>
- Add ISO_Level5_Shift and ISO_Level5_Lock to modifier keys
2020-10-17 18:06:12 +00:00
Antonin Décimo
41f30bf7ca
Fix use-after-free in error path
2020-10-01 09:57:14 +00:00
Andri Yngvason
4a098e27f9
Don't init data_control if it's not supported by compositor
2020-09-22 20:08:10 +00:00
Andri Yngvason
30295bb715
data-control: Destroy data device on exit
2020-09-22 20:01:11 +00:00
Andri Yngvason
5c30d7752c
data-control: Clean up whole receive context in aml_free_fn
...
This takes care of the case where wayvnc exits before the whole offer
has been processed.
2020-09-22 19:53:05 +00:00
Andri Yngvason
9a2f761a02
data-control: Don't free data-control-manager twice
2020-09-22 19:37:35 +00:00
Andri Yngvason
630e2e67bc
data-control: Make offer handling asynchronous
2020-09-22 03:12:46 -06:00
Scott Moreau
3ee9aac35e
Add basic clipboard support
...
Uses wlr-data-control-unstable-v1 protocol to interface with the clipboard
making copy/paste of text to/from host clipboard possible.
2020-09-22 03:11:03 -06:00
Andri Yngvason
8038e65597
Clean up aml on nvnc init failure
2020-08-23 13:25:45 +00:00
Andri Yngvason
dcf3b5869c
Clean up config on exit
2020-08-23 13:18:47 +00:00
Andri Yngvason
7ef8d0b0ae
Exit if enabling auth fails
2020-08-23 13:10:59 +00:00
Andri Yngvason
69d36dd7ef
buffer: Fix buffer attribute comparison
2020-07-28 17:32:14 +00:00
Jan Beich
72dd8a159c
shm: guard fallback on FreeBSD < 13 as well
...
../src/shm.c:35:13: warning: unused function 'randname' [-Wunused-function]
static void randname(char *buf)
^
2020-07-27 20:04:42 +00:00
Jan Beich
6916780389
buffer: guard gbm.h after 3742dc7144
...
../src/buffer.c:25:10: fatal error: 'gbm.h' file not found
#include <gbm.h>
^~~~~~~
2020-07-27 19:51:59 +00:00
Andri Yngvason
3742dc7144
Add build option for enabling screencopy-dmabuf
2020-07-26 15:12:14 +00:00
Andri Yngvason
ca069ea738
buffer: Add function to get available buffer types
2020-07-26 14:26:58 +00:00
Andri Yngvason
f8344fda16
main: Suppress unused variable warnings in release build
2020-07-26 13:47:40 +00:00
Andri Yngvason
ef6756d0f4
keyboard: suppress unused variable warnings in release build
2020-07-26 13:47:20 +00:00
Andri Yngvason
8ff47ee559
Add a way to learn the version of wayvnc and its dependencies
2020-07-26 11:49:02 +00:00
Andri Yngvason
c53ab3bbf5
Report average damaged area per frame in performance ticker
2020-07-25 22:51:37 +00:00
Andri Yngvason
0be56b2100
Add documentation for performance counters
2020-07-25 22:21:48 +00:00
Andri Yngvason
c8ba15c455
Add performance counters
2020-07-25 22:17:13 +00:00
Andri Yngvason
85fca04e27
Resize buffers on modeset
2020-07-19 14:38:35 +00:00
Andri Yngvason
4a5838c180
screencopy: Release front buffer on screencopy_stop()
2020-07-19 14:37:48 +00:00
Andri Yngvason
c79eb98e68
output: Add callbacks for change notification
2020-07-19 13:56:10 +00:00
Andri Yngvason
f9b3d98f83
pixels: Fix endian macros, take 3
2020-07-18 09:23:42 +00:00
Andri Yngvason
bed4b7261e
screencopy: Disable linux-dmabuf code path
...
I need to iron out some kinks before it's made the default
2020-07-17 16:27:46 +00:00
Andri Yngvason
0c86f9cf53
screencopy: Don't delay if time_left == 0
2020-07-17 16:22:17 +00:00
Andri Yngvason
ce86f51699
screencopy: Fix pixel format of shm buffers
2020-07-16 18:10:12 +00:00
Andri Yngvason
14768ca6e3
pixels: Add function to convert from wl_shm format to fourcc
2020-07-16 18:09:18 +00:00
Andri Yngvason
fbd8020778
pixels: Fix more endienness macros
2020-07-16 17:46:44 +00:00
Jan Beich
1bc095bd75
pixels: detect endianness via compiler defines
...
../src/pixels.c:24:10: fatal error: 'endian.h' file not found
#include <endian.h>
^~~~~~~~~~
../src/pixels.c:58:6: error: expected value in expression
#elif
^
2020-07-16 14:34:56 +00:00
Andri Yngvason
2cb9f663a0
Align with aml API changes
2020-07-11 21:33:02 +00:00
Andri Yngvason
184ed0a7ef
Allow the user to adjust the FPS limit
2020-07-11 20:53:31 +00:00
Andri Yngvason
73ade6b84e
Add dtrace probes for rendering and damage checking
2020-07-11 20:53:31 +00:00
Andri Yngvason
e5272618ba
Destroy wl_registry on exit
2020-07-11 20:53:31 +00:00
Andri Yngvason
0268b52c53
Use native pixel format
2020-07-11 20:53:31 +00:00
Andri Yngvason
c0f1036f97
pixels: Add more formats and take into account endianness
2020-07-11 20:53:31 +00:00
Andri Yngvason
ef74911298
Exit on mode change intead of crashing
2020-07-11 20:53:31 +00:00
Andri Yngvason
9d2e22b9bd
pixels: Add copyright notice
2020-07-11 20:53:31 +00:00
Andri Yngvason
9a9c7c8be6
buffer: Cleanup dmabuf params after use
2020-07-11 20:53:31 +00:00
Andri Yngvason
1406ce1cf8
Clean up damage refinery on exit
2020-07-11 20:53:31 +00:00
Andri Yngvason
cd7594320b
Clean up gbm device on exit
2020-07-11 20:53:31 +00:00
Andri Yngvason
4c14c11de4
transform-util: Add copyright notice
2020-07-11 20:53:31 +00:00
Andri Yngvason
b8df02838e
pixman-renderer: Add copyright notice
2020-07-11 20:53:31 +00:00
Andri Yngvason
ee3b6d74cf
buffer: Add copyright notice
2020-07-11 20:53:31 +00:00
Andri Yngvason
7b6372ef49
damage-refinery: Add copyright notice
2020-07-11 20:53:31 +00:00
Andri Yngvason
843368c993
screencopy: Actually use y-inversion flag
2020-07-11 20:53:31 +00:00
Andri Yngvason
46fdbfb109
screencopy: Set the rate limit to 30 Hz
2020-07-11 20:53:31 +00:00
Andri Yngvason
2b522ee596
Remove frame-capture abstraction
2020-07-11 20:53:31 +00:00
Andri Yngvason
b0ec79acf8
Move damage hints into buffer abstraction
2020-07-11 20:53:31 +00:00
Andri Yngvason
0615cd44c6
buffer: Add damage field
2020-07-11 20:53:31 +00:00
Andri Yngvason
0edaded063
Remove dead code
2020-07-11 20:53:30 +00:00
Andri Yngvason
84c57a7333
buffer: Fix pool release/acquire
2020-07-11 20:52:01 +00:00
Andri Yngvason
f68bb825e1
buffer: Fix error check and use non-linear
2020-07-11 20:52:01 +00:00
Andri Yngvason
0178dd8a39
screencopy: map dmabuf after it's ready
2020-07-11 20:52:01 +00:00
Andri Yngvason
19eb9af7e5
buffer: Unmap before release/destroy
2020-07-11 20:52:01 +00:00
Andri Yngvason
3fc07f571d
screencopy: Use linux-dmabuf if available
2020-07-11 20:52:01 +00:00
Andri Yngvason
70216b5829
main: Add gbm and linux-dmabuf
2020-07-11 20:52:01 +00:00
Andri Yngvason
4a21939b43
buffer: Use create_immed
2020-07-11 20:52:01 +00:00
Andri Yngvason
4fa019d31f
buffer: Add DMA-BUFs
2020-07-11 20:52:01 +00:00
Andri Yngvason
9b136c90de
buffer: Add specific handling for different buffers
2020-07-11 20:52:01 +00:00
Andri Yngvason
480392e40c
buffer: Add buffer type to interface
2020-07-11 20:52:01 +00:00
Andri Yngvason
59cc119d76
main: Refine damage hints
2020-07-11 20:52:01 +00:00
Andri Yngvason
fe590f3940
damage-refinery: Use damage hint
2020-07-11 20:52:01 +00:00
Andri Yngvason
e398dcc235
damage-refinery: Hash directly instead of copying
2020-07-11 20:52:01 +00:00
Andri Yngvason
439d3997d4
damage-refinery: Use negative stride to handle y-inversion
2020-07-11 20:52:01 +00:00
Andri Yngvason
c515a29951
Create hash based damage checker
2020-07-11 20:52:01 +00:00
Andri Yngvason
946ace1760
Fix damage transform
2020-07-11 20:52:01 +00:00
Andri Yngvason
12555bea13
pixman-renderer: Use negative stride for y-inversion
2020-07-11 20:52:01 +00:00
Andri Yngvason
1cafc25655
Transform damage coordinates
2020-07-11 20:52:01 +00:00
Andri Yngvason
6b1dc2e6c3
Add utilities for managing output transforms
2020-07-11 20:52:01 +00:00
Andri Yngvason
507b76dfbd
Create pixman renderer
2020-07-11 20:52:01 +00:00
Andri Yngvason
29f1669d55
buffer: Leave pixman out of buffers
2020-07-11 20:52:01 +00:00
Andri Yngvason
e65cae43c2
Extract pixel format conversion into own file
2020-07-11 20:52:01 +00:00
Andri Yngvason
a6e1ba25ea
Render using pixman
2020-07-11 20:52:00 +00:00
Andri Yngvason
4fb472f611
Create a buffer abstraction
2020-07-11 20:52:00 +00:00
Andri Yngvason
0a139a1ac4
Align with aml API changes
2020-07-06 16:46:30 +00:00
Andri Yngvason
4f1bca55c3
Exit when main selected seat/output goes away
2020-06-12 23:15:22 +00:00
Andri Yngvason
041ac60ef6
renderer: Add more error messages
2020-06-10 22:09:22 +00:00
Andri Yngvason
ff882b7774
keyboard: Ignore shift level on modifiers
2020-05-26 22:19:48 +00:00
Andri Yngvason
ff1223e4f9
keyboard: Fix comparison of signed and unsigned value
2020-05-18 20:38:48 +00:00
Andri Yngvason
9b48290d09
Improve error handling in wayland dispatch
2020-05-10 12:21:10 +00:00
Andri Yngvason
151e916752
renderer: Set GL_PACK_ALIGNMENT to 1
...
Otherwise row stride will multiple of 4, even for damage data.
2020-05-10 12:21:10 +00:00
Andri Yngvason
0761a5b818
damage: Fix uninitialised value
2020-05-10 12:21:10 +00:00
Andri Yngvason
4f5933c07f
dmabuf: Limit rate to 30 FPS
2020-05-03 19:58:50 +00:00
Andri Yngvason
f5453ffe1e
keyboard: Relax matching criteria on shift level
...
Clients behave differently when it comes to sending release events for keys,
so it's hard to rely on any one kind of behaviour.
2020-05-01 17:34:22 +00:00
Andri Yngvason
405268fc58
keyboard: Log keyboard symbol lookup errors
2020-05-01 17:19:14 +00:00
Andri Yngvason
6e889211db
renderer: Run glFinish() before glReadPixels()
2020-04-26 14:15:57 +00:00
Andri Yngvason
8cc8c198d2
renderer: Run glFinish() after rendering dmabuf frame
2020-04-26 14:14:06 +00:00
Andri Yngvason
06a249897b
dmabuf: Show a debug message when frames are held for too long.
2020-04-26 14:14:06 +00:00
Andri Yngvason
04569b01f2
dmabuf: Add dtrace probes
2020-04-26 11:24:29 +00:00
Andri Yngvason
9d6310cb14
dmabuf: Remove rate limiting
2020-04-26 10:39:58 +00:00
Andri Yngvason
6becbacbe5
Align with NeatVNC interface changes
2020-04-12 21:46:48 +00:00
Andri Yngvason
1fc664a014
Remove call to nvnc_set_dimensions()
2020-04-12 16:14:18 +00:00
Andri Yngvason
f9deca5c9c
shm: Add copyright notice
...
Putting a proper license on this to appease package maintainers.
2020-04-12 13:08:42 +00:00
Greg V
3f62295214
keyboard: rename keymap_len to keymap_size
2020-04-09 15:39:09 +03:00
Greg V
fa49aca45a
keyboard: check that write finished writing everything
...
(Use loop to write until the end)
2020-04-09 15:38:13 +03:00
Greg V
ccc582cd58
keyboard: allocate shm with *actually* correct size
...
strlen returns "the number of characters that precede the terminating NUL".
We do need to send the \0 byte, since xkbcommon on the receiving end
*is* expecting a C string. And e.g. wlroots does strlen+1.
2020-04-09 15:37:18 +03:00
Andri Yngvason
14d62d0029
Fix transformations
...
This fixes #29
2020-04-09 11:50:48 +00:00
Andri Yngvason
58a181ccbc
Redesign update/rendering loop
...
Every change to the framebuffer is now copied into a single buffer
inside a single callback. This simplifies things a lot, and might even
perform better.
2020-04-07 23:37:31 +00:00
Greg V
d610076614
shm: support memfd and SHM_ANON
2020-04-06 02:07:25 +03:00
Greg V
720b127dee
keyboard: allocate shm with correct size
...
This was working on Linux because shm_open there returns a regular file,
but this is required on FreeBSD where shm_open returns a memory-backed fd.
2020-04-06 00:26:22 +03:00
Andri Yngvason
be401b5e4a
Report error when binding to address fails
...
This fixes #21
2020-04-04 22:38:23 +00:00
Andri Yngvason
6e521a07a0
Merge frames rather than dropping them when encoder is too slow
2020-04-04 21:03:49 +00:00
Andri Yngvason
238c196e6b
Capture a new frame immediately when a client requests a whole frame
2020-04-04 15:01:38 +00:00
Andri Yngvason
ee4917f200
Make sure that frames being written to are not in use by the encoder
2020-04-04 13:14:07 +00:00
Andri Yngvason
8ce312e9eb
renderer: Add dtrace probes
2020-04-02 00:55:18 +00:00
Andri Yngvason
075680994e
screencopy: Add dtrace probes
2020-04-02 00:34:00 +00:00
Andri Yngvason
dc7adf8f3b
renderer: Use ATTR_INDEX_ constants for glEnableVertex*
2020-03-29 14:05:33 +00:00
Andri Yngvason
e85f219aff
Make sure damage buffer is properly aligned
2020-03-29 13:09:28 +00:00
Andri Yngvason
b14a0b854b
Rotate NeatVNC framebuffers rather than allocating new ones
2020-03-28 19:23:03 +00:00
Andri Yngvason
2bb17c8215
Blit the whole frame when a new client connects
2020-03-28 15:20:59 +00:00
Andri Yngvason
e7586e8753
Only copy the damaged region from GPU
2020-03-28 15:05:04 +00:00
Andri Yngvason
1ebd9a7647
damage: Respect frame boundaries
2020-03-28 14:34:12 +00:00
Andri Yngvason
b6ca7aff8c
Join process_frame() and update_vnc()
2020-03-28 14:09:29 +00:00
Andri Yngvason
bfbc81bf04
Use GPU damage checker
2020-03-28 13:07:33 +00:00
Andri Yngvason
52c18ffe23
damage: Add asynchronous damage checking
2020-03-28 13:05:59 +00:00
Andri Yngvason
7f5431d922
Move rendering calls into frame-capture
2020-03-28 11:44:40 +00:00
Andri Yngvason
c91816f247
Implement damage buffer conversion
2020-03-28 10:59:21 +00:00
Andri Yngvason
b0a6b6bd2a
renderer: Swap FPOs rather than textures
2020-03-28 10:59:21 +00:00
Andri Yngvason
ae90348ece
renderer: Save previous rendered frame rather than previous imported frame
...
We can't keep dmabufs very long.
2020-03-26 21:43:35 +00:00
Andri Yngvason
b5f1ff0898
renderer: Render to texture
2020-03-26 18:49:37 +00:00
Andri Yngvason
7e709c23e9
renderer: Add damage renderer
2020-03-25 23:21:11 +00:00
Andri Yngvason
6536cbd56f
renderer: Add damage shaders
2020-03-25 23:21:11 +00:00
Andri Yngvason
557f0f365b
renderer: Set up texture bindings on render()
2020-03-25 21:27:57 +00:00
Andri Yngvason
a8fd0d6765
renderer: Show error when linking shaders fails
2020-03-25 21:07:36 +00:00
Andri Yngvason
996729f9bb
renderer: Show error message when shader compilation failse
2020-03-25 20:44:54 +00:00
Andri Yngvason
13216fa507
renderer: Add u_tex1 to shaders
2020-03-25 20:26:15 +00:00
Andri Yngvason
49c584f80d
renderer: Move shader setup into render()
2020-03-24 22:57:02 +00:00