Commit Graph

91 Commits (29b33672ead4346daba3f239f4d1746adb735d7c)

Author SHA1 Message Date
Andri Yngvason 29b33672ea renderer-egl: Don't clear before drawing
That interferes with damage tracking
2022-07-02 10:47:35 +00:00
Andri Yngvason 505b03a47e main: Extract function: window_damage_region 2022-07-02 10:47:35 +00:00
Andri Yngvason 47ba673c8b main: Extract function: apply_buffer_damage 2022-07-02 10:47:35 +00:00
Andri Yngvason d0818501f8 main: Extract function: get_frame_damage 2022-07-02 10:47:35 +00:00
Andri Yngvason 3a3d129e8f main: Remove redundant if 2022-07-02 10:47:35 +00:00
Andri Yngvason af59624f83 open-h264: Add padding to packet buffer
According to documentation this padding should be there and valgrind will
complain if it isn't.
2022-07-02 10:47:35 +00:00
Andri Yngvason f6a634f30b Free av_frames when done with them 2022-07-02 10:47:35 +00:00
Andri Yngvason 469db1ba3a renderer-egl: Clean up properly on exit 2022-07-02 10:47:35 +00:00
Andri Yngvason 37b3431e00 main: Add a canary ticker
This should help to notice when something is badly blocking the main loop.
2022-07-02 10:47:35 +00:00
Andri Yngvason cf56a1f416 Handle all buffered messages in the socket handler
Otherwise, some buffered messages will be left over
2022-07-02 10:46:00 +00:00
Andri Yngvason 2b99d0c019 sockets: Simplify write function 2022-07-02 10:46:00 +00:00
Andri Yngvason 1d9fcb5ebc Add dtrace probes for pts rects 2022-07-02 10:46:00 +00:00
Andri Yngvason 8970accb86 sockets: Replace select() with poll()
select() has been deprecated for a very long time and is considered harmful
2022-07-02 10:46:00 +00:00
Andri Yngvason d4faccba28 Remove useless feature test macros 2022-07-02 10:46:00 +00:00
Andri Yngvason 9a2a318991 Move SetFormatAndEncodings back into rfbproto.c 2022-07-02 10:46:00 +00:00
Andri Yngvason 760db16923 Remove dead code 2022-07-02 10:46:00 +00:00
Andri Yngvason f38e43e096 README: Remove libvncclient dependency 2022-07-02 10:46:00 +00:00
Andri Yngvason f4d40df8f6 Dispatch events while waiting for server data
Blocking the event loop is very bad
2022-07-02 10:46:00 +00:00
Andri Yngvason 23d1c82943 Merge libvncclient into the project 2022-07-02 10:46:00 +00:00
Andri Yngvason 3e8b6c311c .gitignore: Add .clang_complete 2022-07-02 10:45:34 +00:00
Daniel Lublin 0ea00b45ef Fail verbosely if we can't talk to wayland
Useful when mistakenly run in X
2022-06-30 15:26:13 +00:00
Jan Beich 83886345b1 vnc: consistently use builtin byteswap after b725a08b47
src/vnc.c:27:10: fatal error: 'byteswap.h' file not found
 #include <byteswap.h>
          ^~~~~~~~~~~~
2022-04-24 16:21:24 +00:00
Andri Yngvason b725a08b47 vnc: Add presentation timestamps 2022-04-14 18:41:34 +00:00
Andri Yngvason 3a96498113 vnc: Queue up two extra frambuffer updates
This way the server knows that the client can take up to 3 updates in a
row and doesn't have to wait for an update request after every single
frame.
2022-04-11 21:20:32 +00:00
Andri Yngvason 5b4694e1fd main: Remove dmabufs with alpha channel
They cause rendering issues
2022-04-10 17:00:09 +00:00
Andri Yngvason 7e89a36f43 main: Prioritise open-h264 encoding 2022-04-10 16:56:59 +00:00
Andri Yngvason 72c497e61d vnc: Re-implement libvncclient's SetFormatAndEncodings
Otherwise, we can't prioritise open-h264
2022-04-10 16:56:04 +00:00
Andri Yngvason 09c851750e open-h264: Fix frame parsing 2022-04-10 16:13:54 +00:00
Andri Yngvason 0b757d6623 main: User triple buffering
Apparently, double buffering isn't enough
2022-04-10 14:59:23 +00:00
Andri Yngvason 93869627ed open-h264: Add copyright notice 2022-04-10 13:56:11 +00:00
Andri Yngvason a69d5adc7a main: Pass AVFrames to egl renderer 2022-04-10 13:55:14 +00:00
Andri Yngvason c4ffd8eef6 renderer-egl: Add function to render AVFrames 2022-04-10 13:55:14 +00:00
Andri Yngvason 3e652be8d6 vnc: Add Open H.264 encoding extension 2022-04-10 13:55:14 +00:00
Andri Yngvason 14299b6cff main: Add option to turn off egl 2022-04-09 16:27:50 +00:00
Andri Yngvason ed4c8b1cd0 renderer-egl: Only copy damaged regions 2022-04-09 16:21:17 +00:00
Andri Yngvason 698ac6947b Pass frame damage to renderer via image struct 2022-04-09 16:19:57 +00:00
Andri Yngvason 040a87836d buffer: Clean up damage 2022-04-09 16:19:08 +00:00
Andri Yngvason 9afe099377 buffer: Apply full damage to new dmabuf 2022-04-09 16:18:35 +00:00
Andri Yngvason e6ea9068f0 Implement GL rendering 2022-04-09 15:21:24 +00:00
Andri Yngvason 07e8e5c303 Add dmabuf 2022-04-09 12:09:11 +00:00
Andri Yngvason 6bba21283f Move buffer functions into own file 2022-04-09 11:36:09 +00:00
Andri Yngvason ec51388fec Extract rendering into own unit 2022-04-03 22:17:27 +00:00
Andri Yngvason 9c7a4d6b07 Use drm format instead of wl_shm_format
Using the drm fourcc format as the main pixel format, helps when
adding linux-dmabuf support.
2022-04-03 19:00:19 +00:00
Andri Yngvason 15b5d5a33f Scale image to fit window 2022-04-02 12:51:37 +00:00
Andri Yngvason 545be152ce Add pixman region utils 2022-04-02 12:49:41 +00:00
Andri Yngvason 80d18ac6aa main: Use pixman for rendering 2022-03-30 21:48:54 +00:00
Andri Yngvason 767f7ce816 Add pixel format conversion utils 2022-03-30 21:48:21 +00:00
Andri Yngvason 1a713b6642 Use intermediate pixel buffer for VNC client 2022-03-28 21:40:44 +00:00
Andri Yngvason 1ca82ce2e2 meson: Don't require libvncserver as a subproject 2020-12-06 22:16:58 +00:00
Andri Yngvason 2414e23dd6 Use double-buffering
Without double-buffering there's a slight chance that the vnc code could
start writing to the buffer before the compositor is done with it.
2020-12-06 21:04:56 +00:00