Commit Graph

36 Commits

Author SHA1 Message Date
Kristian Høgsberg
83fc061c9c Introduce 'shell' object for moving and resizing surfaces in the compositor 2010-08-04 22:44:55 -04:00
Kristian Høgsberg
a1f3f60bea Generate protocol types and metadata from xml 2010-08-03 09:44:48 -04:00
Kristian Høgsberg
ce5325d3ed Add x11 backend for compositor
This still needs all the bells and whistles from the egl-kms mesa branch,
but it makes it a lot easier to work on wayland.
2010-06-14 11:54:02 -04:00
Kristian Høgsberg
fc783d4071 Split native drm part of compositor out 2010-06-11 12:56:45 -04:00
Kristian Høgsberg
a7f258221a Add spec document in progress 2010-06-07 12:22:48 -04:00
Kristian Høgsberg
a2ee675861 Make compositor compile and port it to new mesa extensions 2010-06-04 22:14:28 -04:00
Kristian Høgsberg
8286302644 Rename wayland-system-compositor back to just compositor 2010-06-04 21:52:02 -04:00
Kristian Høgsberg
b2a432ef18 Move clients to subdirectory 2010-06-04 21:46:55 -04:00
Kristian Høgsberg
d4de54efe7 Use autoconf instead of $(shell ...) in the Makefile. 2008-12-04 23:00:01 -05:00
Kristian Høgsberg
3620295d17 Drop unused clients, pointer and window. 2008-12-02 15:16:11 -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
18fb78307b Use struct buffer from cairo-util.c in flower.c. 2008-11-25 22:53:28 -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
a5a2c8e5db Rename input.c to evdev.c. 2008-11-24 00:12:20 -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
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
8d7ca6be21 Add quick screenshot hack. 2008-11-09 00:22:51 -05:00
Kristian Høgsberg
2f2cfae227 Factor out common cairo code, add blur function. 2008-11-08 23:09:51 -05:00
Kristian Høgsberg
b7a01928be Add prototypes warnings, use -fvisibility. 2008-11-08 15:49:49 -05:00
Kristian Høgsberg
f099fd24a3 Use the eagle pkg-config file instead of assuming ../eagle. 2008-11-08 15:30:41 -05:00
Kristian Høgsberg
1cbaa6abac Use glib main loop for all clients. 2008-11-07 15:54:48 -05:00
Kristian Høgsberg
fb59084fbf Add glib main loop integration, use it in flower client. 2008-11-07 14:27:23 -05:00
Kristian Høgsberg
5503bf82c4 dlopen the compositor, add a glx compositor. 2008-11-06 10:53:03 -05:00
Kristian Høgsberg
8a9cda8cfb Add the gears from glxgears. 2008-11-06 10:53:03 -05:00
Kristian Høgsberg
61017b190a Add a window client, first implementation of surface resizing. 2008-11-06 10:53:02 -05:00
Kristian Høgsberg
6b5e7626f5 Move background drawing to a client. 2008-11-06 10:53:02 -05:00
Kristian Høgsberg
d3fa34ca29 Don't use poll timeout for timing animation.
Receiving events breaks out of the poll and resets the time out.
Effectively, this blocks the animation when the client receives events.
As a quick fix, use timerfd for timing the animation.
2008-11-06 10:53:02 -05:00
Kristian Høgsberg
5a27f3e6a7 Add a new client that draws a pointer. 2008-11-06 10:52:14 -05:00
Kristian Høgsberg
e120a4b1ee Rename client, prepare Makefile for more clients. 2008-11-06 10:51:59 -05:00
Kristian Høgsberg
f9bc795a7d Add crude input device support.
Just pointer motion and button clicks for now, broadcast to all clients.
2008-11-06 10:51:59 -05:00
Kristian Høgsberg
16eb675399 Add an EGL compositor. Still pretty lame. 2008-11-06 10:51:58 -05:00
Kristian Høgsberg
427524aedf Use new connection object in client code too. 2008-11-06 10:51:58 -05:00
Kristian Høgsberg
680f1c7025 Split out connection io buffer logic. 2008-11-06 10:51:58 -05:00
Kristian Høgsberg
a67a71a7cf Bunch of new stuff: simple compositor, cairo+gem use in client, events. 2008-10-07 10:10:36 -04:00
Kristian Høgsberg
97f1ebe8d5 Initial commit.
This has the basic event loop, and a first cut of the libffi dispatcher.
2008-09-30 09:56:42 -04:00