Quantum 
							
						 
					 
					
						
						
							
						
						009ae02e32 
					 
					
						
						
							
							[client] egl: add graph tracking time taken to import frame  
						
						... 
						
						
						
						This tracks the time taken to load the frame buffer into an OpenGL texture. 
						
						
					 
					
						2021-07-29 10:08:52 +10:00 
						 
				 
			
				
					
						
							
							
								Quantum 
							
						 
					 
					
						
						
							
						
						6ed1f4662d 
					 
					
						
						
							
							[client] imgui: report failed font atlas building  
						
						... 
						
						
						
						Also removed the inefficient code to build the default atlas. 
						
						
					 
					
						2021-07-26 17:08:02 +10:00 
						 
				 
			
				
					
						
							
							
								Quantum 
							
						 
					 
					
						
						
							
						
						120fe63c0f 
					 
					
						
						
							
							[client] egl: keep x/y coordinates of cursor rectangle non-negative  
						
						... 
						
						
						
						This shifts the rectangles upwards instead of cutting off the rectangles,
but it keeps the code simple. 
						
						
					 
					
						2021-07-26 07:56:46 +10:00 
						 
				 
			
				
					
						
							
							
								Quantum 
							
						 
					 
					
						
						
							
						
						181b165a4b 
					 
					
						
						
							
							[client] egl: generate correct cursor damage with cursor rotation  
						
						
						
						
					 
					
						2021-07-25 17:35:29 +10:00 
						 
				 
			
				
					
						
							
							
								Quantum 
							
						 
					 
					
						
						
							
						
						d9cdc8d26c 
					 
					
						
						
							
							[client] egl: rotate damage rectangles according to client side rotation  
						
						
						
						
					 
					
						2021-07-25 16:56:48 +10:00 
						 
				 
			
				
					
						
							
							
								Quantum 
							
						 
					 
					
						
						
							
						
						d0722349e6 
					 
					
						
						
							
							[client] egl: make damage overlay support rendering rotated rectangles  
						
						
						
						
					 
					
						2021-07-25 16:56:48 +10:00 
						 
				 
			
				
					
						
							
							
								Geoffrey McRae 
							
						 
					 
					
						
						
							
						
						2ef80a5d34 
					 
					
						
						
							
							[client] overlay: cosmetic changes to the overlay display  
						
						
						
						
					 
					
						2021-07-25 16:49:25 +10:00 
						 
				 
			
				
					
						
							
							
								Quantum 
							
						 
					 
					
						
						
							
						
						e7761abf3c 
					 
					
						
						
							
							[client] wayland: invalidate window on configure  
						
						... 
						
						
						
						This avoids sending potentially meaningless damage values after a surface
configuration event. 
						
						
					 
					
						2021-07-25 15:36:44 +10:00 
						 
				 
			
				
					
						
							
							
								Geoffrey McRae 
							
						 
					 
					
						
						
							
						
						3905834807 
					 
					
						
						
							
							[client] x11: call app_invalidateWindow on expose  
						
						
						
						
					 
					
						2021-07-25 15:30:56 +10:00 
						 
				 
			
				
					
						
							
							
								Geoffrey McRae 
							
						 
					 
					
						
						
							
						
						60a58d4d8d 
					 
					
						
						
							
							[client] all: make it possible to signal full window invalidation  
						
						... 
						
						
						
						Now that we are drawing with damage rects, when the window is hidden and
then exposed the window may not get fully redrawn. This provides
`app_invalidateWindow` for the display server backend to call when the
screen needs a full redraw. 
						
						
					 
					
						2021-07-25 15:29:29 +10:00 
						 
				 
			
				
					
						
							
							
								Geoffrey McRae 
							
						 
					 
					
						
						
							
						
						8c2a77e84e 
					 
					
						
						
							
							[client] don't skip the first frame if we do not yet have a frame  
						
						... 
						
						
						
						A frame serial of `0` is valid and will happen if either the host app
has just started, or the serial has overflowed. 
						
						
					 
					
						2021-07-25 15:10:40 +10:00 
						 
				 
			
				
					
						
							
							
								Geoffrey McRae 
							
						 
					 
					
						
						
							
						
						9dffde74b2 
					 
					
						
						
							
							[client] main: skip duplicate frames  
						
						... 
						
						
						
						When a new client connects to our session the host will repeat the last
valid frame for the new client. This change will detect this and skip
the duplicated frame. 
						
						
					 
					
						2021-07-25 13:46:48 +10:00 
						 
				 
			
				
					
						
							
							
								arcnmx 
							
						 
					 
					
						
						
							
						
						3b37898eb2 
					 
					
						
						
							
							[all] use cmake FindPkgConfig IMPORTED_TARGETs  
						
						
						
						
					 
					
						2021-07-24 12:35:48 +10:00 
						 
				 
			
				
					
						
							
							
								arcnmx 
							
						 
					 
					
						
						
							
						
						aa2ea05af9 
					 
					
						
						
							
							[client] removed unused GMP dependency  
						
						
						
						
					 
					
						2021-07-24 12:35:48 +10:00 
						 
				 
			
				
					
						
							
							
								arcnmx 
							
						 
					 
					
						
						
							
						
						38cb348201 
					 
					
						
						
							
							[all] make OPTIMIZE_FOR_NATIVE a tristate option  
						
						
						
						
					 
					
						2021-07-24 12:35:17 +10:00 
						 
				 
			
				
					
						
							
							
								arcnmx 
							
						 
					 
					
						
						
							
						
						be664c49c8 
					 
					
						
						
							
							[all] cmake: use -march=x86-64-v2 when it becomes available  
						
						... 
						
						
						
						Moves the logic in 0525515 
						
						
					 
					
						2021-07-24 12:35:17 +10:00 
						 
				 
			
				
					
						
							
							
								Quantum 
							
						 
					 
					
						
						
							
						
						f09738678e 
					 
					
						
						
							
							[client] fonts: remove font rendering machinery  
						
						
						
						
					 
					
						2021-07-23 20:18:12 +10:00 
						 
				 
			
				
					
						
							
							
								Quantum 
							
						 
					 
					
						
						
							
						
						0c35d9b057 
					 
					
						
						
							
							[client] opengl: remove font management  
						
						
						
						
					 
					
						2021-07-23 20:18:12 +10:00 
						 
				 
			
				
					
						
							
							
								Quantum 
							
						 
					 
					
						
						
							
						
						cb9774bbd2 
					 
					
						
						
							
							[client] egl: remove font management  
						
						
						
						
					 
					
						2021-07-23 20:18:12 +10:00 
						 
				 
			
				
					
						
							
							
								Quantum 
							
						 
					 
					
						
						
							
						
						dd0edc1394 
					 
					
						
						
							
							[client] renderers: remove alert handling  
						
						
						
						
					 
					
						2021-07-23 20:18:12 +10:00 
						 
				 
			
				
					
						
							
							
								Quantum 
							
						 
					 
					
						
						
							
						
						be44249c05 
					 
					
						
						
							
							[client] imgui: converted alerts to use imgui  
						
						
						
						
					 
					
						2021-07-23 20:18:12 +10:00 
						 
				 
			
				
					
						
							
							
								Quantum 
							
						 
					 
					
						
						
							
						
						efb5019176 
					 
					
						
						
							
							[client] overlay/help: switch to using ImGui's table facility  
						
						
						
						
					 
					
						2021-07-23 18:04:05 +10:00 
						 
				 
			
				
					
						
							
							
								Quantum 
							
						 
					 
					
						
						
							
						
						5153d35bb5 
					 
					
						
						
							
							[client] renderer: remove on_help from renderer interface  
						
						
						
						
					 
					
						2021-07-23 18:04:05 +10:00 
						 
				 
			
				
					
						
							
							
								Quantum 
							
						 
					 
					
						
						
							
						
						036f16b9ef 
					 
					
						
						
							
							[client] imgui: convert help overlay to use imgui  
						
						
						
						
					 
					
						2021-07-23 18:04:05 +10:00 
						 
				 
			
				
					
						
							
							
								Quantum 
							
						 
					 
					
						
						
							
						
						436986d182 
					 
					
						
						
							
							[client] imgui: make UI font and size configurable  
						
						
						
						
					 
					
						2021-07-23 16:07:42 +10:00 
						 
				 
			
				
					
						
							
							
								Quantum 
							
						 
					 
					
						
						
							
						
						5d053128ac 
					 
					
						
						
							
							[client] imgui: use improved high DPI rendering  
						
						... 
						
						
						
						This actually makes imgui render at a higher resolution, avoiding scaling
and resulting blurriness. 
						
						
					 
					
						2021-07-23 16:07:42 +10:00 
						 
				 
			
				
					
						
							
							
								Quantum 
							
						 
					 
					
						
						
							
						
						b5c5ecc074 
					 
					
						
						
							
							[client] imgui: support high DPI by scaling framebuffer  
						
						... 
						
						
						
						This allows overlays to render at correct positions on high DPI displays. 
						
						
					 
					
						2021-07-23 16:07:42 +10:00 
						 
				 
			
				
					
						
							
							
								Quantum 
							
						 
					 
					
						
						
							
						
						56308fcbd1 
					 
					
						
						
							
							[client] overlay: use utility function to get ImGui rectangle  
						
						
						
						
					 
					
						2021-07-23 15:54:18 +10:00 
						 
				 
			
				
					
						
							
							
								Quantum 
							
						 
					 
					
						
						
							
						
						628bdab21b 
					 
					
						
						
							
							[client] overlay: remove space checking  
						
						... 
						
						
						
						Every overlay is now guaranteed to be able to write MAX_OVERLAY_RECTS rects,
and running out of space is now an error. 
						
						
					 
					
						2021-07-23 15:54:18 +10:00 
						 
				 
			
				
					
						
							
							
								Quantum 
							
						 
					 
					
						
						
							
						
						df0397b10b 
					 
					
						
						
							
							[client] imgui: track last rectangles for overlays  
						
						... 
						
						
						
						This is necessary in case overlays change size. When this happens, we must
damage the larger of the overlays' rectangles this frame and last frame.
This erases the overlay from where it is no longer appears.
In order to do this, we must keep track of the rectangles for every overlay
with no exception. We cannot short-circuit the generation of rectangles if
we run out of buffer space, and we must allocate space for MAX_OVERLAY_RECTS
rectangles for every frame. Otherwise, we will not know where to erase the
overlay if it disappears. 
						
						
					 
					
						2021-07-23 15:54:18 +10:00 
						 
				 
			
				
					
						
							
							
								Quantum 
							
						 
					 
					
						
						
							
						
						334bfeecea 
					 
					
						
						
							
							[client] egl: correctly handle mixing imgui and non-imgui overlays  
						
						... 
						
						
						
						This allows the full frame to be damaged when both types are visible. 
						
						
					 
					
						2021-07-23 15:53:59 +10:00 
						 
				 
			
				
					
						
							
							
								Quantum 
							
						 
					 
					
						
						
							
						
						b26067b0a0 
					 
					
						
						
							
							[client] wayland: use new libdecor pkgconfig package name  
						
						
						
						
					 
					
						2021-07-23 15:52:05 +10:00 
						 
				 
			
				
					
						
							
							
								Quantum 
							
						 
					 
					
						
						
							
						
						947eac52f6 
					 
					
						
						
							
							[client] renderers: treat -1 as full damage and 0 as no overlay  
						
						... 
						
						
						
						This makes everything consistent. 
						
						
					 
					
						2021-07-22 18:57:34 +10:00 
						 
				 
			
				
					
						
							
							
								Geoffrey McRae 
							
						 
					 
					
						
						
							
						
						eb5c588af9 
					 
					
						
						
							
							[client] overlay: call igEnd before return  
						
						
						
						
					 
					
						2021-07-22 18:38:32 +10:00 
						 
				 
			
				
					
						
							
							
								Geoffrey McRae 
							
						 
					 
					
						
						
							
						
						3b6ad957e3 
					 
					
						
						
							
							[client] overlay: increment totalRects  
						
						
						
						
					 
					
						2021-07-22 18:38:00 +10:00 
						 
				 
			
				
					
						
							
							
								Geoffrey McRae 
							
						 
					 
					
						
						
							
						
						4acbf2e9a0 
					 
					
						
						
							
							[client] overlay: rework the interface to avoid possible race conditions  
						
						
						
						
					 
					
						2021-07-22 18:33:50 +10:00 
						 
				 
			
				
					
						
							
							
								Geoffrey McRae 
							
						 
					 
					
						
						
							
						
						50f7a1a99c 
					 
					
						
						
							
							[client] overlay: properly free the graphs before ll free  
						
						
						
						
					 
					
						2021-07-22 18:32:28 +10:00 
						 
				 
			
				
					
						
							
							
								Quantum 
							
						 
					 
					
						
						
							
						
						515f08d2da 
					 
					
						
						
							
							[client] egl: transform overlay damage coordinates  
						
						... 
						
						
						
						EGL uses bottom-up y-coordinate while we use top-down. 
						
						
					 
					
						2021-07-22 18:32:18 +10:00 
						 
				 
			
				
					
						
							
							
								Quantum 
							
						 
					 
					
						
						
							
						
						58ab77d237 
					 
					
						
						
							
							[client] egl: avoid overflowing damage buffer  
						
						... 
						
						
						
						We allocate 10 rectangles for overlay damage as agreed on Discord. 
						
						
					 
					
						2021-07-22 18:32:18 +10:00 
						 
				 
			
				
					
						
							
							
								Geoffrey McRae 
							
						 
					 
					
						
						
							
						
						fdbdf6f167 
					 
					
						
						
							
							[client] app: implement new overlay rendering framework  
						
						... 
						
						
						
						This change set implements a framework for overlays to be registered
that make use of ImGui. See `overlay/fps` for a simple implementation
example. 
						
						
					 
					
						2021-07-22 17:27:30 +10:00 
						 
				 
			
				
					
						
							
							
								Geoffrey McRae 
							
						 
					 
					
						
						
							
						
						30c4a4786b 
					 
					
						
						
							
							[client] overlay: cosmetic, fix typo  
						
						
						
						
					 
					
						2021-07-22 14:50:10 +10:00 
						 
				 
			
				
					
						
							
							
								Geoffrey McRae 
							
						 
					 
					
						
						
							
						
						a34d3bbab4 
					 
					
						
						
							
							[client] overlay: windowRects is not an array of pointers  
						
						
						
						
					 
					
						2021-07-22 14:48:08 +10:00 
						 
				 
			
				
					
						
							
							
								Geoffrey McRae 
							
						 
					 
					
						
						
							
						
						2310920e79 
					 
					
						
						
							
							[client] overlay: added new interface for overlay windows using ImGui  
						
						
						
						
					 
					
						2021-07-22 14:42:54 +10:00 
						 
				 
			
				
					
						
							
							
								Quantum 
							
						 
					 
					
						
						
							
						
						85f34602f4 
					 
					
						
						
							
							[client] wayland: do not leak wp_presentation_feedback objects  
						
						
						
						
					 
					
						2021-07-22 13:12:47 +10:00 
						 
				 
			
				
					
						
							
							
								Quantum 
							
						 
					 
					
						
						
							
						
						27e3be3778 
					 
					
						
						
							
							[client] egl: free desktop damage after rendering  
						
						
						
						
					 
					
						2021-07-22 13:12:07 +10:00 
						 
				 
			
				
					
						
							
							
								Quantum 
							
						 
					 
					
						
						
							
						
						bb60107a3b 
					 
					
						
						
							
							[client] wayland: dispatch events through libdecor when using it  
						
						... 
						
						
						
						Currently, we dispatch the events on the wayland display server ourselves.
This is fine when using the cairo backend of libdecor, as it does the same
thign we do, but other backends may require other things to be dispatched.
This commit lets libdecor dispatch events instead through libdecor_get_fd
and libdecor_dispatch, which should hopefully makes things less sketchy. 
						
						
					 
					
						2021-07-22 12:03:55 +10:00 
						 
				 
			
				
					
						
							
							
								Geoffrey McRae 
							
						 
					 
					
						
						
							
						
						08293c8721 
					 
					
						
						
							
							[egl] damage: only update the damage vbo if there was a new frame  
						
						
						
						
					 
					
						2021-07-21 17:29:46 +10:00 
						 
				 
			
				
					
						
							
							
								Geoffrey McRae 
							
						 
					 
					
						
						
							
						
						6389a06903 
					 
					
						
						
							
							[client] main: let the renderer know if it's rendering a whole new frame  
						
						... 
						
						
						
						While the renderer can internally track this it would be better to
simply provide this information to the renderer directly so it can make
better decisions on how best to update the screen. 
						
						
					 
					
						2021-07-21 17:26:48 +10:00 
						 
				 
			
				
					
						
							
							
								Geoffrey McRae 
							
						 
					 
					
						
						
							
						
						8cf444ef31 
					 
					
						
						
							
							[client] main: sync to the ups if the ups exceeds minFrameTime  
						
						
						
						
					 
					
						2021-07-21 16:56:49 +10:00 
						 
				 
			
				
					
						
							
							
								Geoffrey McRae 
							
						 
					 
					
						
						
							
						
						1c8af28f26 
					 
					
						
						
							
							Revert "[client] main: increase the ups/fps update rate to once per 100ms"  
						
						... 
						
						
						
						This reverts commit b877bab48f 
						
						
					 
					
						2021-07-21 16:50:49 +10:00