Commit Graph

29 Commits

Author SHA1 Message Date
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
221067654c Let clients override the suggested size on resize.
This lets gears enforce a square aspect ration and minimum size of 300x300
and the terminal now properly resizes in steps of character cells.
2008-12-08 13:50:07 -05:00
Kristian Høgsberg
1584c57edc Snap terminal size to an integer number of character cells. 2008-12-08 12:59:37 -05:00
Kristian Høgsberg
6e83d58153 Add keyboard input to terminal. 2008-12-08 00:01:36 -05:00
Kristian Høgsberg
0c4457f0c2 Refactor window logic into reusable parts, add a new terminal application.
The gears code is moved into a new file gearc.c and the window decoration
and management code stays in window.c.  A new application 'terminal' is the
second user of the windowing code, but doesn't do anything useful yet.
2008-12-07 20:05:36 -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
e2ce43a9be Fix namespace convention for glib source. 2008-12-02 18:28:23 -05:00
Kristian Høgsberg
ffd710e653 Put Wayland under the MIT license. 2008-12-02 15:15:01 -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
4097923a64 Add commit request + ack event to wayland core.
Use in window.c to manage life cycle of buffer correctly.
2008-11-25 22:40:39 -05:00
Kristian Høgsberg
e9d550bdd4 Optimize blur further, resize gears with window. 2008-11-19 00:49:39 -05:00
Kristian Høgsberg
873302649a Optimize blur a bit more. 2008-11-17 22:23:55 -05:00
Kristian Høgsberg
8c304f6d9a A couple more theme tweaks. 2008-11-10 10:46:53 -05:00
Kristian Høgsberg
6e635f3472 Get corner radius right for inner bevel. 2008-11-09 09:15:46 -05:00
Kristian Høgsberg
10bdd298b8 Optimize window blur calculation. 2008-11-08 23:27:27 -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
e4feb56316 Make window prettier again. 2008-11-08 18:53:37 -05:00
Kristian Høgsberg
b7a01928be Add prototypes warnings, use -fvisibility. 2008-11-08 15:49:49 -05:00
Kristian Høgsberg
78231c8dd0 Implement surface copy request, use it for egl gears. 2008-11-08 15:06:01 -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
7f77bd8fbe Add copy and damage surface requests. 2008-11-07 08:39:37 -05:00
Kristian Høgsberg
b8bf19b7a9 Clear depth buffer, but only depth buffer for gears. 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
35370f8073 Redraw window in idle handler. 2008-11-06 10:53:02 -05:00
Kristian Høgsberg
ca1d1f65d0 Make window client a little more interesting. 2008-11-06 10:53:02 -05:00
Kristian Høgsberg
3f59e82c20 Use GL_ONE for the source in glBendFunc instead of pre-unmultiplying.
Eventually we need to allow both pre-multiplied alpha and not, but for now default to premultiplied.
2008-11-06 10:53:02 -05:00
Kristian Høgsberg
61017b190a Add a window client, first implementation of surface resizing. 2008-11-06 10:53:02 -05:00