Kristian Høgsberg [Fri, 22 Apr 2011 16:27:57 +0000 (12:27 -0400)]
Update return types of event handler functions
Missed this in previous commit.
Kristian Høgsberg [Fri, 22 Apr 2011 16:18:13 +0000 (12:18 -0400)]
compositor-x11: Adjust to event loop changes
Instead of having a separate check function, we just mark our x11 event
source as needing a post-dispatch check. The event loop will call our
dispatch function again after all dispatching is done, this time with
mask = 0. If we don't process any events, return 0, so the event loop
doesn't keep calling us.
Benjamin Franzke [Tue, 8 Mar 2011 10:32:57 +0000 (11:32 +0100)]
Make use of wayland-server shm common code
Benjamin Franzke [Mon, 7 Mar 2011 17:04:59 +0000 (18:04 +0100)]
compositor: Use surface_attached_to list for shm-buffers
Benjamin Franzke [Mon, 7 Mar 2011 14:17:56 +0000 (15:17 +0100)]
compositor: Add wlsc_shm_buffer_attach
Benjamin Franzke [Mon, 7 Mar 2011 14:08:09 +0000 (15:08 +0100)]
Implement buffer.damage in shm, use it in window.c
Benjamin Franzke [Fri, 25 Mar 2011 13:06:37 +0000 (14:06 +0100)]
compositor-x11: Set xcb to be eventqueue owner
This'll fix egl_gallium (when bind_wayland_display is done).
Kristian Høgsberg [Fri, 22 Apr 2011 03:48:13 +0000 (23:48 -0400)]
compositor: Pass NULL for context to wayland buffer eglCreateImageKHR()
Kristian Høgsberg [Thu, 21 Apr 2011 18:51:44 +0000 (14:51 -0400)]
compositor-x11: Use check function to make sure we handle all events
If somebody else did an X11 round trip, that could leave events in the
XCB buffer that we wouldn't see until the next X event came in. The new
event source check function lets us check the XCB queue after dispatching
and this way we'll see events we need to deal with right away.
Kristian Høgsberg [Wed, 20 Apr 2011 22:53:07 +0000 (18:53 -0400)]
Fix clients to work with wl_ prefixed interface names
Kristian Høgsberg [Tue, 19 Apr 2011 16:38:22 +0000 (12:38 -0400)]
compositor-x11: Use the keymap_notify immediately following the focus_in event
The event handling gets a little trickier this way but we need the
keymap sent immdiately after the focus_in event to determine which keys
are pressed as the compositor receives keyboard focus.
Kristian Høgsberg [Tue, 19 Apr 2011 13:23:29 +0000 (09:23 -0400)]
compositor-x11: Generalize handling of event pairs
We need to look at the focus_in and keymap notify pair to correctly determine
the set of held down keys at focus in time, so generalize the handling
of event pairs in preparation for that.
Kristian Høgsberg [Mon, 18 Apr 2011 14:33:25 +0000 (10:33 -0400)]
Update to work with scanner that doesn't hardcode wl_*
This lets us drop the wl_ prefix for the un-officual screenshooter protocol.
Kristian Høgsberg [Thu, 14 Apr 2011 18:44:58 +0000 (14:44 -0400)]
Switch to new subscribe protocol and wayland-egl
Benjamin Franzke [Wed, 20 Apr 2011 18:16:25 +0000 (20:16 +0200)]
compositor-openwfd: Fixup rebase
Benjamin Franzke [Sun, 3 Apr 2011 22:30:25 +0000 (00:30 +0200)]
compositor: Add OpenWF Display backend
Benjamin Franzke [Wed, 20 Apr 2011 15:06:13 +0000 (17:06 +0200)]
Optimize fullscreen scanout abit
Use the drm fb_id used for the scanout-test
as well for the corresponding pageflip.
Move most of the scanout details into compositor-drm.
Kristian Høgsberg [Wed, 20 Apr 2011 13:35:15 +0000 (09:35 -0400)]
Merge remote-tracking branch 'bnf/fullscreen-pageflip'
Benjamin Franzke [Wed, 20 Apr 2011 09:02:58 +0000 (11:02 +0200)]
Make use of a hardware cursor in compositor-drm
Benjamin Franzke [Sun, 10 Apr 2011 14:49:52 +0000 (16:49 +0200)]
compositor(-drm): Pageflip to fullscreen surfaces
Kristian Høgsberg [Fri, 15 Apr 2011 19:48:07 +0000 (15:48 -0400)]
compositor-x11: Suppress keyboard repeat events
Kristian Høgsberg [Thu, 14 Apr 2011 15:54:59 +0000 (11:54 -0400)]
window.c: Check for cairo device failure the right way
Kristian Høgsberg [Wed, 13 Apr 2011 15:52:54 +0000 (11:52 -0400)]
Only invoke shell button bindings if there's a pointer focus surface
Kristian Høgsberg [Wed, 13 Apr 2011 02:23:30 +0000 (22:23 -0400)]
Move more switcher details to switcher.c
Kristian Høgsberg [Tue, 12 Apr 2011 21:42:30 +0000 (17:42 -0400)]
Move switcher behaviour into switcher.c
Kristian Høgsberg [Tue, 12 Apr 2011 21:25:42 +0000 (17:25 -0400)]
Move shell bindings to shell.c
Kristian Høgsberg [Tue, 12 Apr 2011 21:22:49 +0000 (17:22 -0400)]
Extend wlsc_binding to cover buttons too
Kristian Høgsberg [Tue, 12 Apr 2011 21:16:00 +0000 (17:16 -0400)]
Update modifier state as input devices enter and leave
Kristian Høgsberg [Tue, 12 Apr 2011 15:34:32 +0000 (11:34 -0400)]
Define _GNU_SOURCE for O_CLOEXEC flag
Kristian Høgsberg [Mon, 11 Apr 2011 20:59:05 +0000 (16:59 -0400)]
Remove double definition of window_get_wl_surface()
Kristian Høgsberg [Mon, 11 Apr 2011 20:49:17 +0000 (16:49 -0400)]
Remove typo
Failed to break up the patch into commits.
Kristian Høgsberg [Mon, 11 Apr 2011 20:47:50 +0000 (16:47 -0400)]
Merge remote-tracking branch 'bnf/surface-frame-event'
Conflicts:
compositor/compositor.c
Kristian Høgsberg [Mon, 11 Apr 2011 17:58:13 +0000 (13:58 -0400)]
Add a simple key binding mechanism
Kristian Høgsberg [Mon, 11 Apr 2011 17:39:43 +0000 (13:39 -0400)]
Call present after clearing repaint_needed
In case we end up scheduling a repaint in the finish_frame callback.
Kristian Høgsberg [Mon, 11 Apr 2011 17:34:24 +0000 (13:34 -0400)]
Clip out pixels covered by opaque surfaces during repaint
Kristian Høgsberg [Mon, 11 Apr 2011 17:19:16 +0000 (13:19 -0400)]
compositor-drm: Close drm fd on exec
Kristian Høgsberg [Mon, 11 Apr 2011 17:18:31 +0000 (13:18 -0400)]
Fix window_set_child_size() for windows without decoration
Kristian Høgsberg [Mon, 11 Apr 2011 17:17:44 +0000 (13:17 -0400)]
Add struct window accessor for the wl_surface
Tim Wiederhake [Mon, 11 Apr 2011 17:16:33 +0000 (13:16 -0400)]
Define global handler on display creation
Otherwise the initial announcement of interfaces gets lost.
Cyril Brulebois [Wed, 6 Apr 2011 16:05:40 +0000 (18:05 +0200)]
Check return value of XOpenDisplay().
Instead of calling XGetXCBConnection() blindly, check XOpenDisplay()'s
return value to avoid a possible segfault in the former. That happens if
$DISPLAY is set, but if that display isn't available.
Signed-off-by: Cyril Brulebois <kibi@debian.org>
Kristian Høgsberg [Fri, 18 Mar 2011 04:15:25 +0000 (00:15 -0400)]
Merge remote-tracking branch 'bnf/fixes'
Benjamin Franzke [Fri, 18 Feb 2011 22:00:55 +0000 (23:00 +0100)]
gears: Use wayland egl surface instead of images
Benjamin Franzke [Thu, 10 Feb 2011 11:04:30 +0000 (12:04 +0100)]
window: Use window surfaces for windows
Benjamin Franzke [Thu, 17 Mar 2011 14:43:21 +0000 (15:43 +0100)]
simple-client: Request a alpha channel in choose config
Benjamin Franzke [Mon, 14 Mar 2011 11:07:26 +0000 (12:07 +0100)]
Support per surface frame events
This fixes tearing with multi head.
Benjamin Franzke [Wed, 16 Mar 2011 12:48:42 +0000 (13:48 +0100)]
compositor: Update only existing backgrounds in output_move
Benjamin Franzke [Tue, 15 Mar 2011 14:08:41 +0000 (15:08 +0100)]
compositor-drm: Support output hotplugging
Benjamin Franzke [Fri, 11 Mar 2011 15:39:20 +0000 (16:39 +0100)]
compositor-drm: Fix multi head rendering
Marty Jack [Thu, 10 Feb 2011 00:01:42 +0000 (19:01 -0500)]
Beginnings of multiple monitor
Allocate the CRTCs from a bit mask to avoid the multiple monitor black
screen problem.
Kristian Høgsberg [Sun, 13 Mar 2011 04:14:38 +0000 (23:14 -0500)]
compositor-x11: Remove unused variables
Kristian Høgsberg [Wed, 2 Mar 2011 16:36:30 +0000 (11:36 -0500)]
compositor-wayland: Ask for ES2 in the config
Benjamin Franzke [Wed, 2 Mar 2011 10:56:04 +0000 (11:56 +0100)]
compositor: Remove drm.c, use shm.c for pointer images
Benjamin Franzke [Wed, 2 Mar 2011 10:14:59 +0000 (11:14 +0100)]
compositor: Remove wlsc_drm
Benjamin Franzke [Wed, 2 Mar 2011 09:07:59 +0000 (10:07 +0100)]
compositor-x11: Use an EGL Window Surface as output
Benjamin Franzke [Fri, 18 Feb 2011 16:04:24 +0000 (17:04 +0100)]
compositor-wayland: Use wayland-egl window surfaces
Benjamin Franzke [Fri, 18 Feb 2011 15:54:55 +0000 (16:54 +0100)]
compositor: Generate Framebuffer in the backends
Benjamin Franzke [Fri, 18 Feb 2011 15:51:37 +0000 (16:51 +0100)]
compositor: Add flags parameter to wlsc_output_init
Currently available flags:
- WL_OUTPUT_FLIPPED
Benjamin Franzke [Mon, 21 Feb 2011 15:24:53 +0000 (16:24 +0100)]
compositor: Use eglBindWaylandDisplayWL
Benjamin Franzke [Sun, 20 Feb 2011 18:58:42 +0000 (19:58 +0100)]
compositor-x11: Use x11 egl platform
Kristian Høgsberg [Tue, 15 Feb 2011 03:13:33 +0000 (22:13 -0500)]
Split into a demo repository that holds the demo compositor and clients
Kristian Høgsberg [Mon, 14 Feb 2011 15:39:54 +0000 (10:39 -0500)]
compositor: Clip repaint to the damage region
Drop glScissor, and just clip the surface against the repaint region and
render each rectangle in the resulting region.
Benjamin Franzke [Mon, 14 Feb 2011 12:20:09 +0000 (13:20 +0100)]
compositor-drm: Flush before pageflipping
This fixes compositor-drm flickering on r600.
Kristian Høgsberg [Sun, 13 Feb 2011 18:44:55 +0000 (13:44 -0500)]
compositor: Switch away from using VBOs and just stream the vertex data
We avoid changing uniforms for each window and it will be easier to break up
a surface into a series of rectangles.
Kristian Høgsberg [Sun, 13 Feb 2011 18:00:51 +0000 (13:00 -0500)]
Use pixman regions to reduce repainting
For now, we just use glScissor and clip to the extent of the damage region,
but we can do even better by clipping the repaint to the region rectangles.
Tim Wiederhake [Fri, 11 Feb 2011 18:37:40 +0000 (19:37 +0100)]
fix typo in window.c
Kristian Høgsberg [Thu, 10 Feb 2011 17:27:35 +0000 (12:27 -0500)]
wayland-client: Support WAYLAND_DEBUG client side as well
Tiago Vignatti [Thu, 10 Feb 2011 13:21:49 +0000 (15:21 +0200)]
configure: remove libdrm dependency for clients
Signed-off-by: Tiago Vignatti <tiago.vignatti@nokia.com>
Kristian Høgsberg [Wed, 9 Feb 2011 15:57:44 +0000 (10:57 -0500)]
window.c: Use eglGetProcAddress to look up extension functions
Kristian Høgsberg [Wed, 9 Feb 2011 15:51:15 +0000 (10:51 -0500)]
window.c: Include wayland-egl.h before EGL headers so we get the right platform
Kristian Høgsberg [Wed, 9 Feb 2011 15:50:06 +0000 (10:50 -0500)]
wayland-egl: Define WL_EGL_PLATFORM in wayland-egl.h
This indicates that we're using the wayland egl platform and will make
eglplatform.h typedef the native types correctly.
Kristian Høgsberg [Tue, 8 Feb 2011 16:59:53 +0000 (11:59 -0500)]
compositor-x11: Don't send enter/leave notify if we have an implicit grab
Kristian Høgsberg [Tue, 8 Feb 2011 01:48:01 +0000 (20:48 -0500)]
Add struct wl_egl_display argument to wl_egl_window_create
We don't need it in the mesa implementation, but other implementations
might and it's symmetric with wl_egl_pixmap_create().
Kristian Høgsberg [Mon, 7 Feb 2011 21:05:36 +0000 (16:05 -0500)]
Print object interface name when printing message arguments in debug mode
Kristian Høgsberg [Mon, 7 Feb 2011 15:30:38 +0000 (10:30 -0500)]
Follow wayland-egl renames
Kristian Høgsberg [Sun, 6 Feb 2011 21:54:59 +0000 (16:54 -0500)]
compositor: Implement super-tab window switching
Kristian Høgsberg [Sun, 6 Feb 2011 17:58:44 +0000 (12:58 -0500)]
compositor: Set repaint_on_timeout when we schedule a timeout repaint
Kristian Høgsberg [Fri, 4 Feb 2011 20:31:33 +0000 (15:31 -0500)]
simple-client: Port to wayland-egl and use eglSwapBuffers()
simple-client is simpler.
Kristian Høgsberg [Fri, 4 Feb 2011 19:14:23 +0000 (14:14 -0500)]
gears: Remove unused drm_fd field
Kristian Høgsberg [Fri, 4 Feb 2011 19:11:33 +0000 (14:11 -0500)]
Port window.c to use wayland-egl
Benjamin Franzke [Fri, 4 Feb 2011 10:22:35 +0000 (11:22 +0100)]
Add wayland-egl.h
This header defines native EGL wayland types and affiliated
initialization, processing and destruction routines.
EGL implementations must implement this API in order to allow
applications using this native types for the EGL implementation.
Kristian Høgsberg [Wed, 2 Feb 2011 01:28:32 +0000 (20:28 -0500)]
Update compositor initiated resize to use a 3x3 grid
This lets us do all combinations of resize edges.
Benjamin Franzke [Tue, 1 Feb 2011 15:30:31 +0000 (16:30 +0100)]
compositor: Calculate resizing direction
This applies to resizes initiated by the compositor.
nobled [Tue, 1 Feb 2011 18:51:47 +0000 (18:51 +0000)]
window: add null checks
Also check for invalid parameters early on, so if we crash,
we know *why* we crashed.
nobled [Tue, 1 Feb 2011 18:48:46 +0000 (18:48 +0000)]
add newlines in error messages
Benjamin Franzke [Sat, 29 Jan 2011 12:12:39 +0000 (13:12 +0100)]
connection: Handle broken pipes in sendmsg
Benjamin Franzke [Sat, 29 Jan 2011 08:51:57 +0000 (09:51 +0100)]
Fix out of source build [wayland.png]
Tim Wiederhake [Sat, 29 Jan 2011 00:30:25 +0000 (01:30 +0100)]
Add wayland.png to .gitignore
Kristian Høgsberg [Fri, 28 Jan 2011 20:53:07 +0000 (15:53 -0500)]
Don't crash when the previous keyboard surface goes away
Just always set keyboard focus to the top surface.
Kristian Høgsberg [Fri, 28 Jan 2011 20:18:33 +0000 (15:18 -0500)]
Add initial basic support for fullscreen surfaces
Kristian Høgsberg [Fri, 28 Jan 2011 16:21:42 +0000 (11:21 -0500)]
Merge remote branch 'nobled/for-krh'
Benjamin Franzke [Fri, 28 Jan 2011 15:05:46 +0000 (16:05 +0100)]
configure: Drop gdk-pixbuf version dependency
The major version 2.0 is sufficient
nobled [Fri, 28 Jan 2011 13:47:21 +0000 (13:47 +0000)]
fix configure check for gcc
This shouldn't fail just because someone sets CC=gcc-4.5
explicitly. Besides, this way it also works with compilers
that advertise GCC-compatibility like clang and ICC.
Kristian Høgsberg [Fri, 28 Jan 2011 01:18:17 +0000 (20:18 -0500)]
compositor-wayland: Handle keyboard focus too
Kristian Høgsberg [Thu, 27 Jan 2011 16:57:19 +0000 (11:57 -0500)]
compositor-x11: Handle keyboard focus correctly so we avoid stuck modifiers
Tim Wiederhake [Thu, 27 Jan 2011 00:32:36 +0000 (01:32 +0100)]
Don't create buffer from NULL pointer
Fixes regression introduced in
f58d8ca1bd20180bfae3a3a047e8098e0b22b5aa.
Kristian Høgsberg [Thu, 27 Jan 2011 01:35:07 +0000 (20:35 -0500)]
compositor: Forward pointer focus notification from compostor backend
This lets the compositor place the pointer sprite correctly when it receives
pointer focus and allows it to send pointer focus to any client that might
receive pointer focus as the compositor receives it.
Kristian Høgsberg [Wed, 26 Jan 2011 20:33:24 +0000 (15:33 -0500)]
Test for rsvg-convert in configure.ac
If it's not present, we just don't install the icon.
Kristian Høgsberg [Wed, 26 Jan 2011 19:37:07 +0000 (14:37 -0500)]
compositor-x11: Set window icon
Kristian Høgsberg [Wed, 26 Jan 2011 19:02:31 +0000 (14:02 -0500)]
Set WM_CLASS for X11 compositor window
Don't want to be 'Unknown' in GNOME Shell.
Kristian Høgsberg [Wed, 26 Jan 2011 16:46:35 +0000 (11:46 -0500)]
connection: Also consume message data in error cases