Geoffrey McRae 
							
						 
					 
					
						
						
							
						
						3a8cb6a613 
					 
					
						
						
							
							[client/common] fixes for issues detected through static analysis.  
						
						
						
						
					 
					
						2022-03-07 10:14:52 +11:00 
						 
				 
			
				
					
						
							
							
								Geoffrey McRae 
							
						 
					 
					
						
						
							
						
						1082875b8e 
					 
					
						
						
							
							[client] opengl: fix startup since ImGui upgrade  
						
						
						
						
					 
					
						2022-01-24 06:42:16 +11:00 
						 
				 
			
				
					
						
							
							
								Quantum 
							
						 
					 
					
						
						
							
						
						f2fbb2b27c 
					 
					
						
						
							
							[client] opengl: make draw functions static  
						
						
						
						
					 
					
						2022-01-23 08:49:01 +11:00 
						 
				 
			
				
					
						
							
							
								Geoffrey McRae 
							
						 
					 
					
						
						
							
						
						6bba9bc25d 
					 
					
						
						
							
							[client/common] move ll from the client into the common code module  
						
						
						
						
					 
					
						2022-01-12 12:22:18 +11:00 
						 
				 
			
				
					
						
							
							
								Geoffrey McRae 
							
						 
					 
					
						
						
							
						
						952ebea2c5 
					 
					
						
						
							
							[all] refresh copyright dates  
						
						
						
						
					 
					
						2022-01-05 19:42:46 +11:00 
						 
				 
			
				
					
						
							
							
								Geoffrey McRae 
							
						 
					 
					
						
						
							
						
						d69069fb09 
					 
					
						
						
							
							[client] egl: keep the mouse cursor 1:1 when downscaling  
						
						... 
						
						
						
						This keeps the cursor a usable size when the guest is running a high
resolution and downscaling (ie, 4K -> FHD). 
						
						
					 
					
						2021-12-26 11:08:42 +11:00 
						 
				 
			
				
					
						
							
							
								Quantum 
							
						 
					 
					
						
						
							
						
						6370350006 
					 
					
						
						
							
							[client] opengl: indirectly access non-OpenGL 1.3 functions  
						
						... 
						
						
						
						This commit adds check for the extensions that we need and then calls
the functions indirectly through gl_dynprocs.
This should improve compatibility with older versions of OpenGL, as we
now fallback to the ARB extensions if possible, and in the case of
glGenerateMipmap, we can handle the function not existing at all. 
						
						
					 
					
						2021-10-01 01:45:11 +10:00 
						 
				 
			
				
					
						
							
							
								Quantum 
							
						 
					 
					
						
						
							
						
						3f72de78da 
					 
					
						
						
							
							[client] opengl: use util_hasGLExt instead of custom logic  
						
						
						
						
					 
					
						2021-10-01 01:45:11 +10:00 
						 
				 
			
				
					
						
							
							
								Quantum 
							
						 
					 
					
						
						
							
						
						81c38e825c 
					 
					
						
						
							
							[client] remove all casts around malloc  
						
						... 
						
						
						
						The cast is unnecessary in C and should be removed to avoid clutter. 
						
						
					 
					
						2021-08-16 16:26:58 +10:00 
						 
				 
			
				
					
						
							
							
								Geoffrey McRae 
							
						 
					 
					
						
						
							
						
						2141046da9 
					 
					
						
						
							
							[client] opengl: refactor to use project naming standards  
						
						
						
						
					 
					
						2021-08-08 17:21:25 +10:00 
						 
				 
			
				
					
						
							
							
								Geoffrey McRae 
							
						 
					 
					
						
						
							
						
						30ed563504 
					 
					
						
						
							
							[client] interface: refactor to use camlCase function names  
						
						
						
						
					 
					
						2021-08-08 15:43:42 +10:00 
						 
				 
			
				
					
						
							
							
								Geoffrey McRae 
							
						 
					 
					
						
						
							
						
						f8ae291090 
					 
					
						
						
							
							[client] interface: switch to using UPCAST for the renderer's data  
						
						
						
						
					 
					
						2021-08-08 15:32:01 +10:00 
						 
				 
			
				
					
						
							
							
								Geoffrey McRae 
							
						 
					 
					
						
						
							
						
						45d1f27fb4 
					 
					
						
						
							
							[client] interface: rename LG_Renderer to LG_RendererOps  
						
						... 
						
						
						
						Part of the standardisation of using the `Ops` suffix for all interfaces 
						
						
					 
					
						2021-08-08 14:43:04 +10:00 
						 
				 
			
				
					
						
							
							
								Geoffrey McRae 
							
						 
					 
					
						
						
							
						
						162b1b93db 
					 
					
						
						
							
							[client] main: don't include the swap into the render timings  
						
						... 
						
						
						
						If vsync is enabled the swap will block until vblank skewing the timing
metrics. 
						
						
					 
					
						2021-08-07 01:45:42 +10:00 
						 
				 
			
				
					
						
							
							
								Quantum 
							
						 
					 
					
						
						
							
						
						51b9cd4e5a 
					 
					
						
						
							
							[all] copyright: use unicode copyright sign ©  
						
						... 
						
						
						
						This is done for consistency with the license strings in appstrings.c. 
						
						
					 
					
						2021-08-04 21:16:35 +10:00 
						 
				 
			
				
					
						
							
							
								Geoffrey McRae 
							
						 
					 
					
						
						
							
						
						13d9c84dc9 
					 
					
						
						
							
							[client] egl: replace monolithic EGLTexture with modular version  
						
						... 
						
						
						
						The way things were handled in EGLTexture is not only very hard to
follow, but broken. This change set breaks up EGLTexture into a modular
design making it easier to implement the various versions.
Note that DMABUF is currently broken and needs to be re-implemented. 
						
						
					 
					
						2021-08-02 23:37:33 +10:00 
						 
				 
			
				
					
						
							
							
								Geoffrey McRae 
							
						 
					 
					
						
						
							
						
						f8e1ab8f31 
					 
					
						
						
							
							[client] renderers: add new needs_render method to the interface  
						
						... 
						
						
						
						With jitRender the renderer needs to tell the main application if it
needs to be rendererd, such as during the initial splash screen fade
out. 
						
						
					 
					
						2021-08-01 18:18:08 +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 
						 
				 
			
				
					
						
							
							
								arcnmx 
							
						 
					 
					
						
						
							
						
						3b37898eb2 
					 
					
						
						
							
							[all] use cmake FindPkgConfig IMPORTED_TARGETs  
						
						
						
						
					 
					
						2021-07-24 12:35:48 +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 
							
						 
					 
					
						
						
							
						
						dd0edc1394 
					 
					
						
						
							
							[client] renderers: remove alert handling  
						
						
						
						
					 
					
						2021-07-23 20:18:12 +10:00 
						 
				 
			
				
					
						
							
							
								Quantum 
							
						 
					 
					
						
						
							
						
						5153d35bb5 
					 
					
						
						
							
							[client] renderer: remove on_help from renderer interface  
						
						
						
						
					 
					
						2021-07-23 18:04:05 +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 
							
						 
					 
					
						
						
							
						
						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 
							
						 
					 
					
						
						
							
						
						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 
							
						 
					 
					
						
						
							
						
						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 
						 
				 
			
				
					
						
							
							
								Quantum 
							
						 
					 
					
						
						
							
						
						1a88996c47 
					 
					
						
						
							
							[client] opengl: don't include <GL/glx.h>  
						
						... 
						
						
						
						The OpenGL renderer backend should not depend on any particular
implementation of OpenGL, as it's used by both X11 and Wayland. 
						
						
					 
					
						2021-07-21 12:33:01 +10:00 
						 
				 
			
				
					
						
							
							
								Geoffrey McRae 
							
						 
					 
					
						
						
							
						
						ab31040d5f 
					 
					
						
						
							
							[client] all: use imgui for FPS/UPS display  
						
						
						
						
					 
					
						2021-07-18 20:43:17 +10:00 
						 
				 
			
				
					
						
							
							
								Quantum 
							
						 
					 
					
						
						
							
						
						442ab318fd 
					 
					
						
						
							
							[client] egl: use desktop frame damage information  
						
						
						
						
					 
					
						2021-07-18 10:41:50 +10:00 
						 
				 
			
				
					
						
							
							
								Geoffrey McRae 
							
						 
					 
					
						
						
							
						
						f08163fd72 
					 
					
						
						
							
							[client] imgui: added imgui to the client and OpenGL/EGL renderers  
						
						
						
						
					 
					
						2021-07-17 21:09:51 +10:00 
						 
				 
			
				
					
						
							
							
								Geoffrey McRae 
							
						 
					 
					
						
						
							
						
						7b95cc72ed 
					 
					
						
						
							
							[client] opengl: do not render a sync pending texture  
						
						
						
						
					 
					
						2021-07-02 21:48:31 +10:00 
						 
				 
			
				
					
						
							
							
								Geoffrey McRae 
							
						 
					 
					
						
						
							
						
						d24b031fc5 
					 
					
						
						
							
							[client] opengl: cosmetics  
						
						
						
						
					 
					
						2021-07-02 20:10:25 +10:00 
						 
				 
			
				
					
						
							
							
								Geoffrey McRae 
							
						 
					 
					
						
						
							
						
						55d185ef9c 
					 
					
						
						
							
							[client] opengl: no need to re-bind the already bound texture  
						
						
						
						
					 
					
						2021-07-02 19:51:22 +10:00 
						 
				 
			
				
					
						
							
							
								Geoffrey McRae 
							
						 
					 
					
						
						
							
						
						9cbc255448 
					 
					
						
						
							
							[client] opengl: do not prematurely delete overlay textures  
						
						... 
						
						
						
						Overlay textures exist for the lifetime of the renderer and as such
should not be deleted when the resolution changes. 
						
						
					 
					
						2021-07-02 19:50:31 +10:00 
						 
				 
			
				
					
						
							
							
								Geoffrey McRae 
							
						 
					 
					
						
						
							
						
						212cc32097 
					 
					
						
						
							
							[client] opengl: deconfigure is idempotent  
						
						
						
						
					 
					
						2021-07-02 19:50:15 +10:00 
						 
				 
			
				
					
						
							
							
								Quantum 
							
						 
					 
					
						
						
							
						
						24d0aa0c18 
					 
					
						
						
							
							[all] normalize copyright on all source files  
						
						
						
						
					 
					
						2021-06-06 11:53:05 +10:00 
						 
				 
			
				
					
						
							
							
								Quantum 
							
						 
					 
					
						
						
							
						
						84e14edfe7 
					 
					
						
						
							
							[client] opengl: remove dependency on SDL  
						
						
						
						
					 
					
						2021-02-26 09:44:34 +11:00 
						 
				 
			
				
					
						
							
							
								Quantum 
							
						 
					 
					
						
						
							
						
						48be58378c 
					 
					
						
						
							
							[client] opengl: scale UI elements on high DPI displays  
						
						... 
						
						
						
						This is done by simply scaling up the rendered text bitmap. 
						
						
					 
					
						2021-02-21 19:06:53 +11:00 
						 
				 
			
				
					
						
							
							
								Quantum 
							
						 
					 
					
						
						
							
						
						89bdaec95a 
					 
					
						
						
							
							[client] opengl: support scaled UI for high DPI displays  
						
						
						
						
					 
					
						2021-02-21 19:06:53 +11:00 
						 
				 
			
				
					
						
							
							
								Quantum 
							
						 
					 
					
						
						
							
						
						b35e19fc27 
					 
					
						
						
							
							[client] renderer: add interface for high DPI rendering  
						
						
						
						
					 
					
						2021-02-21 19:06:53 +11:00 
						 
				 
			
				
					
						
							
							
								Quantum 
							
						 
					 
					
						
						
							
						
						89b73512ad 
					 
					
						
						
							
							[client] renderer: add ability to toggle the FPS display  
						
						... 
						
						
						
						Before, if you want to see the FPS, you need to close the client and
restart it with the -k switch to see the FPS. This is annoying.
This PR introduces a new keybind, ScrollLock+D, which, when pressed,
toggles the display of the FPS.
This is implemented for both EGL and OpenGL backends. 
						
						
					 
					
						2021-02-21 10:31:48 +11:00 
						 
				 
			
				
					
						
							
							
								Quantum 
							
						 
					 
					
						
						
							
						
						5dce97264b 
					 
					
						
						
							
							[client] renderers: add on_help to renderer interface  
						
						... 
						
						
						
						This will be used to tell a render to display a help message. 
						
						
					 
					
						2021-02-21 10:31:48 +11:00 
						 
				 
			
				
					
						
							
							
								Geoffrey McRae 
							
						 
					 
					
						
						
							
						
						973806dd9c 
					 
					
						
						
							
							[client] opengl: implement & fix opengl support  
						
						
						
						
					 
					
						2021-02-21 10:31:48 +11:00 
						 
				 
			
				
					
						
							
							
								Geoffrey McRae 
							
						 
					 
					
						
						
							
						
						4dfe4b8e2b 
					 
					
						
						
							
							[client] allow renderers to pass back if they need an OpenGL context  
						
						
						
						
					 
					
						2021-02-21 10:31:48 +11:00 
						 
				 
			
				
					
						
							
							
								Geoffrey McRae 
							
						 
					 
					
						
						
							
						
						ca5c3938e4 
					 
					
						
						
							
							[client] all: move all SDL specific code into displayservers/sdl  
						
						
						
						
					 
					
						2021-02-21 10:31:48 +11:00 
						 
				 
			
				
					
						
							
							
								Quantum 
							
						 
					 
					
						
						
							
						
						2973319bff 
					 
					
						
						
							
							[client] opengl: remove glu dependency  
						
						... 
						
						
						
						We only use gluOrtho2D, which is trivially replaced with glOrtho, and
gluErrorString which can be replaced with a small lookup table. 
						
						
					 
					
						2021-02-20 12:44:32 +11:00 
						 
				 
			
				
					
						
							
							
								Tudor Brindus 
							
						 
					 
					
						
						
							
						
						637a7625d2 
					 
					
						
						
							
							[client] wayland: allow EGL/OpenGL vsync to be set to on  
						
						... 
						
						
						
						This effectively reverts 4bceaf5https://gitlab.freedesktop.org/mesa/mesa/-/issues/4180 
Commit 941c651 
						
						
					 
					
						2021-02-09 09:12:57 +11:00 
						 
				 
			
				
					
						
							
							
								Geoffrey McRae 
							
						 
					 
					
						
						
							
						
						8a1578230f 
					 
					
						
						
							
							[client] all: properly support guest rotation  
						
						... 
						
						
						
						If the guest has it's output rotated (ie, landscape) we must rotate and
translate the pointer draw location, as well as all the translations of
cursor coordinate spaces based on the rotation, along with any local
rotations that may also be applied. 
						
						
					 
					
						2021-01-19 02:54:56 +11:00 
						 
				 
			
				
					
						
							
							
								Geoffrey McRae 
							
						 
					 
					
						
						
							
						
						72c86d7125 
					 
					
						
						
							
							[client] all: add screen rotation support win:rotate  
						
						... 
						
						
						
						Currently only supports EGL, if there is enough demand for OpenGL
support this can be added later.
Closes  #231  
						
						
					 
					
						2021-01-15 12:42:16 +11:00