Commit graph

67 commits

Author SHA1 Message Date
Kristian Høgsberg
82f6e8a2ef Rename egl-compositor to wayland-system-compositor.
The wayland-system-compositor is the top-level compositor.  X sessions
or nested Wayland sessions will run as clients of the system compositor.
The system compositor is licensed under the GPL.
2008-12-19 13:47:53 -05:00
Kristian Høgsberg
15d0f8b236 Use the new eagle config chooser for picking the config. 2008-12-19 12:13:42 -05:00
Kristian Høgsberg
2c875bd31e Cache modesetting data and just do drmModeSetCrtc on vt enter. 2008-12-19 11:13:44 -05:00
Kristian Høgsberg
38ccd3a23e Do vt ioctl on the right fd. 2008-12-19 10:15:35 -05:00
Ray Strode
19ad6a9db3 Restore framebuffer when switching back to VT
The kernel currently automatically redirects
output to the kernel framebuffer when switching
VTs away from wayland.  It doesn't restore
output back to wayland's fb when coming back
to the VT.  This patch works around that issue.
2008-12-19 01:49:22 -05:00
Ray Strode
90e701df08 Force pointer to stay on screen.
Without this change it's really easy to
accidentally send the pointer flying and not
be able to get it back.
2008-12-18 23:06:26 -05:00
Kristian Høgsberg
2d4219e542 Scale background pixbuf when loading.
This lets us avoid hitting the texture limit for some backgrounds.
2008-12-18 21:40:03 -05:00
Ray Strode
18fd33c9bb Fix rgb byte order for GdkPixbuf backgrounds. 2008-12-18 21:05:20 -05:00
Kristian Høgsberg
e10b828562 Remember to handle rgb_visual case in surface_attach. 2008-12-18 19:58:44 -05:00
Kristian Høgsberg
de31d5ca6f Add preliminary visual support. 2008-12-18 17:55:33 -05:00
Kristian Høgsberg
b7037a02f0 Don't pin front buffer, kernel modesetting takes care of that now. 2008-12-18 13:18:02 -05:00
Kristian Høgsberg
5b7f832eab Fall back to solid color background if not image is found. 2008-12-18 12:10:37 -05:00
Kristian Høgsberg
d2412e2c2e Redesign the compositor / server interface.
This lets the compositor directly provide the implementation of the RMI
objects for the surface object and a new compositor object.  We avoid the
manual forwarding of requests into the compositor and the clumsy compositor
interface struct.
2008-12-15 20:35:24 -05:00
Kristian Høgsberg
0ea4710b3d Use gdk-pixbuf for saving the screenshot. 2008-12-14 15:53:13 -05:00
Kristian Høgsberg
64949978f4 Fix default input device path. 2008-12-12 14:48:46 -05:00
Kristian Høgsberg
a7700c8ff1 Handle per-device keyboard focus. 2008-12-12 13:48:30 -05:00
Kristian Høgsberg
c492b482d0 Make multi-pointer work.
This also add command line parsing as a way to specify the input
device files to use.
2008-12-12 12:17:51 -05:00
Kristian Høgsberg
d6531261de Add option parsing using GOption. 2008-12-12 12:17:51 -05:00
Kristian Høgsberg
997e71eb1e Use the screen size for sizing the background. 2008-12-12 10:33:04 -05:00
Kristian Høgsberg
29573bc569 Implement passive grabs on button clicks. 2008-12-11 23:27:27 -05:00
Kristian Høgsberg
5ee1a60f1a Rewrite input event delivery path.
Instead of having the input driver push the events into the core server,
only to have the server call back out to the compositor hooks, the driver now
just calls the compositor directly.  The input drivers are always dependent on
the type of compositor anyway so there was no point in passing the events
through the server.  Now the server is only involved when it's time to actually
send the events to the clients.
2008-12-11 23:18:45 -05:00
Kristian Høgsberg
7fdff04cdc Only send key events to toplevel surface. 2008-12-10 13:25:00 -05:00
Kristian Høgsberg
5a75c90d01 Feed button events through compositor.
This also generalizes the code to send events to a surface a bit.
2008-12-10 13:16:50 -05:00
Kristian Høgsberg
715a081cf4 Feed motion events through compositor.
This lets us pass events only to the window that we're mousing over
and we can now transform input events back to the window coordinate space.
2008-12-10 10:42:04 -05:00
Kristian Høgsberg
201a904889 Drop surface iterator API, just track surfaces in the compositor. 2008-12-10 00:40:50 -05:00
Kristian Høgsberg
eac149ad06 Pass button clicks through to compositor.
This lets us handle raising windows, which is useful.
2008-12-10 00:24:18 -05:00
Kristian Høgsberg
98fed0fb84 Use bilinear filtering. 2008-12-09 13:35:35 -05:00
Kristian Høgsberg
73f4e760a2 Fix wl_method for screenshooter. 2008-12-08 14:07:33 -05:00
Kristian Høgsberg
9f88b185a0 Don't forget to initialize overlay position. 2008-12-08 13:52:08 -05:00
Kristian Høgsberg
dc0f355f0a Fix API to always include socket name length. 2008-12-07 15:22:22 -05:00
Kristian Høgsberg
841883b43c Fail if we can't create the compositor. 2008-12-05 11:19:56 -05:00
Kristian Høgsberg
122912c69b Make the wayland server a library used by the compositors. 2008-12-05 11:13:50 -05:00
Kristian Høgsberg
ffd710e653 Put Wayland under the MIT license. 2008-12-02 15:15:01 -05:00
Kristian Høgsberg
4a29890da7 Generalize event loop a bit and pull in the timerfd stuff. 2008-11-28 18:35:25 -05:00
Kristian Høgsberg
fbdbbdc153 Finally implement the commit/ack/frame protocol and improve repaint loop.
This implements the commit/ack/frame protocol that let clients batch up
a series of requests and then commit them atomically using the commit request.
The commit requests generats two following events: the acknowledge event,
which lets the client know that the server has received the request and
which frame the rendering has been scheduled for.  At this point the client
can start rendering the next frame or free up temporary buffers.  Then when
the compositor finally makes the newly composited frame visible on screen
the server sends a frame event, which contains the number of the frame that
was presented and the time when it happened.

The window and flower clients have been updated to use these two events in
their main loops and everything now updates per frame.  The EGL compositor
repaint loop has been tweaked to delay the compositing of the screen to
10ms after last swapbuffer completed so as to allow processing as many
requests as possible before blocking on the next vertical retrace.
2008-11-28 17:06:10 -05:00
Kristian Høgsberg
44f36e3585 Make ack event signal that the requests have been composited. 2008-11-26 12:57:31 -05:00
Kristian Høgsberg
73c305851d Make overlay animation actually stop. 2008-11-25 22:45:46 -05:00
Kristian Høgsberg
961a04cef0 Correct pointer hotspot location. 2008-11-25 22:38:56 -05:00
Kristian Høgsberg
ffb7406eaa Add different type of overlay animation. 2008-11-25 18:10:39 -05:00
Kristian Høgsberg
5c1e6ecab4 Tweak overlay animation a bit. 2008-11-25 13:51:36 -05:00
Kristian Høgsberg
443853cbda Pick a config instead of hard coding one. 2008-11-25 12:12:05 -05:00
Kristian Høgsberg
bf9541ffa3 Allocate and set mode in egl-compositor.
Pass the front buffer name to eglCreateSurfaceForName to create the
fullscreen EGLSurface.
2008-11-25 12:10:09 -05:00
Kristian Høgsberg
9af92b380c Animate overlay on/off. 2008-11-24 01:12:46 -05:00
Kristian Høgsberg
cddc0ad502 Add keyboard input, move input device creation to compositor. 2008-11-24 00:31:49 -05:00
Kristian Høgsberg
1e4b86af1a Expose screenshooting as an interface, drop SIGUSR hack.
This pulls in a bit of extra infrastructure for discovering adertised objects on the
client side.
2008-11-24 00:06:16 -05:00
Kristian Høgsberg
548798266e Add an overlay type window in the compositor. 2008-11-23 17:07:32 -05:00
Kristian Høgsberg
aa5b5bed73 Load and draw background in compositor. 2008-11-21 21:31:54 -05:00
Kristian Høgsberg
4c9f2c9b1a Move pointer drawing into compositor. 2008-11-21 19:25:44 -05:00
Kristian Høgsberg
29590034f4 Remove redundant glFlush(). 2008-11-17 23:33:19 -05:00
Kristian Høgsberg
8d7ca6be21 Add quick screenshot hack. 2008-11-09 00:22:51 -05:00