]>
git.tdb.fi Git - geometrycompositor.git/log
summary |
shortlog | log |
commit |
commitdiff |
tree
first ⋅ prev ⋅ next
Mikko Rasa [Tue, 22 Dec 2015 20:08:39 +0000 (22:08 +0200)]
Update the window pointer after reordering
Otherwise an incorrect window's map state may be checked.
Mikko Rasa [Sun, 20 Dec 2015 13:01:35 +0000 (15:01 +0200)]
Refresh the screen on property changes
There might be no other events if properties are changed
non-interactively, e.g. from a ~/.xsession script.
Mikko Rasa [Sun, 20 Dec 2015 00:06:32 +0000 (02:06 +0200)]
Dynamically reconfigure monitors based on XRandR changes
Mikko Rasa [Fri, 18 Dec 2015 09:24:27 +0000 (11:24 +0200)]
Don't try to create a mask out of null rects
This may happen if the window is destroyed at just the right moment.
Mikko Rasa [Mon, 14 Dec 2015 22:46:47 +0000 (00:46 +0200)]
Remove event debugging prints
Mikko Rasa [Mon, 14 Dec 2015 22:44:55 +0000 (00:44 +0200)]
Add a reset key to interactive control mode
Mikko Rasa [Mon, 14 Dec 2015 22:39:15 +0000 (00:39 +0200)]
Apply some extra distance in case of bulging curvature
It doesn't work perfectly for spherical curvature, but reasaonably enough
with values that are likely to be of practical use.
Mikko Rasa [Mon, 14 Dec 2015 22:38:07 +0000 (00:38 +0200)]
Tweak the view matrix in interactive control mode
Mikko Rasa [Mon, 14 Dec 2015 21:18:47 +0000 (23:18 +0200)]
Rename some variables
It's no longer just cylinder correction, so the variables should be more
generic too.
Mikko Rasa [Mon, 14 Dec 2015 21:08:02 +0000 (23:08 +0200)]
Only repaint the control interface when necessary
Rendering after every event can cause key repeat events to pile up in the
event queue and delay processing the selection events.
Mikko Rasa [Mon, 14 Dec 2015 21:02:22 +0000 (23:02 +0200)]
Implement a spherical curvature correction
Mikko Rasa [Mon, 14 Dec 2015 20:56:49 +0000 (22:56 +0200)]
Use 4096 rather than 10000 as the fixed point multiplier
It has the advantage of producing values exactly representable as floats,
making various operations more consistently repeatable.
Mikko Rasa [Mon, 14 Dec 2015 20:54:59 +0000 (22:54 +0200)]
Initialize correction values in the control program
Defaults are needed in case the interactive mode is started with no
correction defined yet.
Mikko Rasa [Mon, 14 Dec 2015 20:51:10 +0000 (22:51 +0200)]
Correctly check the length of the correction value property
Mikko Rasa [Mon, 14 Dec 2015 19:46:07 +0000 (21:46 +0200)]
Implement an interactive adjustment mode to the control program
Mikko Rasa [Mon, 14 Dec 2015 19:45:51 +0000 (21:45 +0200)]
Fix a small error in calculating projection frustum vertices
Mikko Rasa [Mon, 14 Dec 2015 17:36:58 +0000 (19:36 +0200)]
Use the appropriate GLSL version for OpenGL 3.1
Mikko Rasa [Mon, 14 Dec 2015 17:36:09 +0000 (19:36 +0200)]
Provide geometry correction data through the X11 selection mechanism
This will be the basis of an interactive adjustment mode.
Mikko Rasa [Mon, 14 Dec 2015 13:59:15 +0000 (15:59 +0200)]
Name atoms according to ICCCM
Private atoms should be prefixed with an underscore and a vendor
identifier.
Mikko Rasa [Mon, 14 Dec 2015 11:19:03 +0000 (13:19 +0200)]
Use None in place of 0 for XIDs
Mikko Rasa [Mon, 14 Dec 2015 11:14:34 +0000 (13:14 +0200)]
Check that the root pixmap exists before using it
Mikko Rasa [Mon, 14 Dec 2015 01:23:27 +0000 (03:23 +0200)]
Cleanup root window resources
Mikko Rasa [Mon, 14 Dec 2015 01:14:57 +0000 (03:14 +0200)]
Monitor changes to the root window pixmap
Mikko Rasa [Mon, 14 Dec 2015 00:55:58 +0000 (02:55 +0200)]
Initialize some variables
Mikko Rasa [Mon, 14 Dec 2015 00:55:46 +0000 (02:55 +0200)]
Get rid of the ugly debugging colors
Mikko Rasa [Sun, 13 Dec 2015 19:02:31 +0000 (21:02 +0200)]
Render root pixmap if available
Mikko Rasa [Sun, 13 Dec 2015 16:52:19 +0000 (18:52 +0200)]
Synchronize after subtracting damage from windows
The change in
19993ce wasn't enough to completely avoid the race
condition, most likely because of direct rendering.
Mikko Rasa [Sun, 13 Dec 2015 16:32:32 +0000 (18:32 +0200)]
Some tweaks to GL context usage
Mikko Rasa [Sun, 13 Dec 2015 16:24:31 +0000 (18:24 +0200)]
Defer window pixmap and mask updates until rendering time
Interactive operations may result in a large number of changes within a
single frame. Processing each one separately is a waste of time since
only the last results will be visible. Additionally it's easier to make
sure the GL context is available.
Mikko Rasa [Sun, 13 Dec 2015 16:19:50 +0000 (18:19 +0200)]
Don't update mask on ConfigureNotify
There's always a separate ShapeNotify event to signal shape changes.
Mikko Rasa [Sun, 13 Dec 2015 16:18:20 +0000 (18:18 +0200)]
Improve event handling
Mikko Rasa [Sun, 13 Dec 2015 15:47:20 +0000 (17:47 +0200)]
Minor cosmetic fixes
Mikko Rasa [Sun, 13 Dec 2015 15:46:03 +0000 (17:46 +0200)]
Mask out transparent parts of shaped windows
Mikko Rasa [Sun, 13 Dec 2015 15:26:29 +0000 (17:26 +0200)]
Be more efficient when finding the window for a damage event
Mikko Rasa [Sun, 13 Dec 2015 12:58:58 +0000 (14:58 +0200)]
Add a helper function for creating textures
Mikko Rasa [Sun, 13 Dec 2015 12:27:12 +0000 (14:27 +0200)]
Clear damage before rendering the window
This avoids a race condition where the application might render to the
window after it has been rendered but before the damage is cleared.
Mikko Rasa [Sun, 13 Dec 2015 12:12:44 +0000 (14:12 +0200)]
Simplify some formulas a bit
Mikko Rasa [Sun, 13 Dec 2015 11:53:59 +0000 (13:53 +0200)]
Use a more 3d-y approach for generating the monitor mesh
It's easier to grasp, especially when more corrections are implemented.
The coordinates for cylinder correction are now spaced evenly by angle
rather than X coordinate. This also fixes incorrect texture coordinates.
Mikko Rasa [Sat, 12 Dec 2015 18:13:31 +0000 (20:13 +0200)]
Don't try to update vertices of disabled monitors
Mikko Rasa [Sat, 12 Dec 2015 17:10:48 +0000 (19:10 +0200)]
Fix correction counting in the control program
Mikko Rasa [Sat, 12 Dec 2015 17:07:18 +0000 (19:07 +0200)]
Invert the Y coordinate for monitors as well
Mikko Rasa [Sat, 12 Dec 2015 16:21:48 +0000 (18:21 +0200)]
Implement a control interface using properties on the root window
Mikko Rasa [Sat, 12 Dec 2015 16:20:42 +0000 (18:20 +0200)]
Unbind the vertex array after rendering
Otherwise buffer updates could inadvertently affect the last used vertex
array.
Mikko Rasa [Sat, 12 Dec 2015 14:53:00 +0000 (16:53 +0200)]
Minor refactoring to initialize_monitor
Mikko Rasa [Sat, 12 Dec 2015 14:37:53 +0000 (16:37 +0200)]
Implement vertical keystone and cylinder corrections
There's no configuration interface yet.
Mikko Rasa [Sat, 12 Dec 2015 13:26:09 +0000 (15:26 +0200)]
Avoid unsigned errors when a window goes off the bottom of the screen
Mikko Rasa [Sat, 12 Dec 2015 12:25:01 +0000 (14:25 +0200)]
Cleanup fixes
Mikko Rasa [Sat, 12 Dec 2015 12:14:51 +0000 (14:14 +0200)]
Render each monitor separately
Mikko Rasa [Sat, 12 Dec 2015 11:26:33 +0000 (13:26 +0200)]
Some more refactoring
Mikko Rasa [Sat, 12 Dec 2015 11:17:02 +0000 (13:17 +0200)]
Some refactoring of OpenGL code
In preparation for geometry correction
Mikko Rasa [Sat, 12 Dec 2015 11:16:17 +0000 (13:16 +0200)]
Move shader program linking to a separate function
Mikko Rasa [Sat, 12 Dec 2015 10:42:59 +0000 (12:42 +0200)]
Make the code compile cleanly in C90 mode
Mikko Rasa [Fri, 11 Dec 2015 17:26:09 +0000 (19:26 +0200)]
Process ConfigureNotify events
All of the basic functionality should be done now, and the compositor is
in a usable state. Rendering of non-rectangular windows is still buggy.
Mikko Rasa [Fri, 11 Dec 2015 17:25:41 +0000 (19:25 +0200)]
Don't refresh non-dirty screens
Mikko Rasa [Fri, 11 Dec 2015 17:25:04 +0000 (19:25 +0200)]
Set the dirty flags on most events, but only if the window was viewable
Mikko Rasa [Fri, 11 Dec 2015 17:24:23 +0000 (19:24 +0200)]
Very minor refactoring
Mikko Rasa [Fri, 11 Dec 2015 16:56:04 +0000 (18:56 +0200)]
React to ReparentNotify events
When a reparenting window manager is in use, new windows appear on the
root window first and immediately get reparented. We must unredirect
them so the contents appear in the window manager frame.
Mikko Rasa [Fri, 11 Dec 2015 16:52:31 +0000 (18:52 +0200)]
Process DestroyNotify events
Mikko Rasa [Fri, 11 Dec 2015 16:47:59 +0000 (18:47 +0200)]
Fix the shutdown sequence to avoid memory leaks
Mikko Rasa [Fri, 11 Dec 2015 16:47:17 +0000 (18:47 +0200)]
Fix uninitialized variables
Mikko Rasa [Fri, 11 Dec 2015 16:35:20 +0000 (18:35 +0200)]
Ignore errors from the X server
Events don't provide enough information to perform all necessary
operations atomically, so some errors are unavoidable.
Mikko Rasa [Fri, 11 Dec 2015 16:14:02 +0000 (18:14 +0200)]
Remove server grabbing code
It causes significant slowdown with some applications, and I haven't
actually noticed any tearing without it.
Mikko Rasa [Fri, 11 Dec 2015 16:12:59 +0000 (18:12 +0200)]
Account for border when drawing windows
Mikko Rasa [Fri, 11 Dec 2015 16:09:12 +0000 (18:09 +0200)]
Refresh the screen only when there's no events to process
Mikko Rasa [Fri, 11 Dec 2015 15:32:47 +0000 (17:32 +0200)]
Use the shape extension to let input events through the overlay window
Mikko Rasa [Fri, 11 Dec 2015 15:17:55 +0000 (17:17 +0200)]
Initial, marginally functional version
Can redirect and display windows, but does not react to configure
events or many other things.