summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--include/client/client.h48
-rw-r--r--wayland/buffers.c64
2 files changed, 56 insertions, 56 deletions
diff --git a/include/client/client.h b/include/client/client.h
index 02806eae..39f18caf 100644
--- a/include/client/client.h
+++ b/include/client/client.h
@@ -8,36 +8,36 @@
8#include "list.h" 8#include "list.h"
9 9
10struct output_state { 10struct output_state {
11 struct wl_output *output; 11 struct wl_output *output;
12 uint32_t flags; 12 uint32_t flags;
13 uint32_t width, height; 13 uint32_t width, height;
14}; 14};
15 15
16struct buffer { 16struct buffer {
17 struct wl_buffer *buffer; 17 struct wl_buffer *buffer;
18 int fd; 18 int fd;
19 cairo_surface_t *surface; 19 cairo_surface_t *surface;
20 cairo_t *cairo; 20 cairo_t *cairo;
21 PangoContext *pango; 21 PangoContext *pango;
22 uint32_t width, height; 22 uint32_t width, height;
23 bool busy; 23 bool busy;
24}; 24};
25 25
26struct client_state { 26struct client_state {
27 struct wl_compositor *compositor; 27 struct wl_compositor *compositor;
28 struct wl_display *display; 28 struct wl_display *display;
29 struct wl_pointer *pointer; 29 struct wl_pointer *pointer;
30 struct wl_seat *seat; 30 struct wl_seat *seat;
31 struct wl_shell *shell; 31 struct wl_shell *shell;
32 struct wl_shm *shm; 32 struct wl_shm *shm;
33 struct buffer buffers[2]; 33 struct buffer buffers[2];
34 struct buffer *buffer; 34 struct buffer *buffer;
35 struct wl_surface *surface; 35 struct wl_surface *surface;
36 struct wl_shell_surface *shell_surface; 36 struct wl_shell_surface *shell_surface;
37 struct wl_callback *frame_cb; 37 struct wl_callback *frame_cb;
38 uint32_t width, height; 38 uint32_t width, height;
39 cairo_t *cairo; 39 cairo_t *cairo;
40 list_t *outputs; 40 list_t *outputs;
41}; 41};
42 42
43struct client_state *client_setup(uint32_t width, uint32_t height); 43struct client_state *client_setup(uint32_t width, uint32_t height);
diff --git a/wayland/buffers.c b/wayland/buffers.c
index cc8740c4..f426b912 100644
--- a/wayland/buffers.c
+++ b/wayland/buffers.c
@@ -75,44 +75,44 @@ static struct buffer *create_buffer(struct client_state *state, struct buffer *b
75} 75}
76 76
77static void destroy_buffer(struct buffer *buffer) { 77static void destroy_buffer(struct buffer *buffer) {
78 if (buffer->buffer) { 78 if (buffer->buffer) {
79 wl_buffer_destroy(buffer->buffer); 79 wl_buffer_destroy(buffer->buffer);
80 } 80 }
81 if (buffer->cairo) { 81 if (buffer->cairo) {
82 cairo_destroy(buffer->cairo); 82 cairo_destroy(buffer->cairo);
83 } 83 }
84 if (buffer->surface) { 84 if (buffer->surface) {
85 cairo_surface_destroy(buffer->surface); 85 cairo_surface_destroy(buffer->surface);
86 } 86 }
87 memset(buffer, 0, sizeof(struct buffer)); 87 memset(buffer, 0, sizeof(struct buffer));
88} 88}
89 89
90struct buffer *get_next_buffer(struct client_state *state) { 90struct buffer *get_next_buffer(struct client_state *state) {
91 struct buffer *buffer = NULL; 91 struct buffer *buffer = NULL;
92 92
93 int i; 93 int i;
94 for (i = 0; i < 2; ++i) { 94 for (i = 0; i < 2; ++i) {
95 if (state->buffers[i].busy) { 95 if (state->buffers[i].busy) {
96 continue; 96 continue;
97 }
98 buffer = &state->buffers[i];
97 } 99 }
98 buffer = &state->buffers[i];
99 }
100 100
101 if (!buffer) { 101 if (!buffer) {
102 return NULL; 102 return NULL;
103 } 103 }
104 104
105 if (buffer->width != state->width || buffer->height != state->height) { 105 if (buffer->width != state->width || buffer->height != state->height) {
106 destroy_buffer(buffer); 106 destroy_buffer(buffer);
107 } 107 }
108 108
109 if (!buffer->buffer) { 109 if (!buffer->buffer) {
110 if (!create_buffer(state, buffer, state->width, state->height, WL_SHM_FORMAT_ARGB8888)) { 110 if (!create_buffer(state, buffer, state->width, state->height, WL_SHM_FORMAT_ARGB8888)) {
111 return NULL; 111 return NULL;
112 }
112 } 113 }
113 } 114
114 115 state->cairo = buffer->cairo;
115 state->cairo = buffer->cairo; 116 state->buffer = buffer;
116 state->buffer = buffer; 117 return buffer;
117 return buffer;
118} 118}