commit aa0b3f3

Michael Forney  ·  2014-02-01 07:07:36 +0000 UTC
parent 842c568
compositor: Rename struct screen -> struct target
1 files changed,  +58, -57
+58, -57
  1@@ -51,13 +51,13 @@
  2 #include <wld/drm.h>
  3 #include <xkbcommon/xkbcommon-keysyms.h>
  4 
  5-struct screen
  6+struct target
  7 {
  8     struct wld_surface * surface;
  9     struct wld_buffer * next_buffer, * current_buffer;
 10     struct swc_view * view;
 11     struct wl_listener view_listener;
 12-    struct wl_listener event_listener;
 13+    struct wl_listener screen_listener;
 14 };
 15 
 16 struct view
 17@@ -146,22 +146,22 @@ static void handle_screen_event(struct wl_listener * listener, void * data)
 18 
 19     if (event->type == SWC_SCREEN_DESTROYED)
 20     {
 21-        struct screen * screen
 22-            = CONTAINER_OF(listener, typeof(*screen), event_listener);
 23+        struct target * target
 24+            = CONTAINER_OF(listener, typeof(*target), screen_listener);
 25 
 26-        wld_destroy_surface(screen->surface);
 27-        free(screen);
 28+        wld_destroy_surface(target->surface);
 29+        free(target);
 30     }
 31 }
 32 
 33-static struct screen * screen_get(struct swc_screen * base)
 34+static struct target * target_get(struct swc_screen_internal * screen)
 35 {
 36     struct wl_listener * listener
 37-        = wl_signal_get(&base->event_signal, &handle_screen_event);
 38-    struct screen * screen;
 39+        = wl_signal_get(&screen->base.event_signal, &handle_screen_event);
 40+    struct target * target;
 41 
 42-    return listener ? CONTAINER_OF(listener, typeof(*screen), event_listener)
 43-        : NULL;
 44+    return listener ? CONTAINER_OF(listener, typeof(*target), screen_listener)
 45+                    : NULL;
 46 }
 47 
 48 static void handle_screen_view_event(struct wl_listener * listener, void * data)
 49@@ -173,26 +173,26 @@ static void handle_screen_view_event(struct wl_listener * listener, void * data)
 50     {
 51         case SWC_VIEW_EVENT_FRAME:
 52         {
 53-            struct swc_screen_internal * base = CONTAINER_OF
 54-                (event_data->view, typeof(*base), planes.framebuffer.view);
 55-            struct screen * screen;
 56+            struct swc_screen_internal * screen = CONTAINER_OF
 57+                (event_data->view, typeof(*screen), planes.framebuffer.view);
 58+            struct target * target;
 59             struct view * view;
 60 
 61-            if (!(screen = screen_get(&base->base)))
 62+            if (!(target = target_get(screen)))
 63                 return;
 64 
 65-            compositor.pending_flips &= ~swc_screen_mask(base);
 66+            compositor.pending_flips &= ~swc_screen_mask(screen);
 67 
 68             wl_list_for_each(view, &compositor.views, link)
 69             {
 70-                if (view->base.screens & swc_screen_mask(base))
 71+                if (view->base.screens & swc_screen_mask(screen))
 72                     swc_view_frame(&view->base, event_data->frame.time);
 73             }
 74 
 75-            if (screen->current_buffer)
 76-                wld_surface_release(screen->surface, screen->current_buffer);
 77+            if (target->current_buffer)
 78+                wld_surface_release(target->surface, target->current_buffer);
 79 
 80-            screen->current_buffer = screen->next_buffer;
 81+            target->current_buffer = target->next_buffer;
 82 
 83             /* If we had scheduled updates that couldn't run because we were
 84              * waiting on a page flip, run them now. */
 85@@ -203,14 +203,14 @@ static void handle_screen_view_event(struct wl_listener * listener, void * data)
 86     }
 87 }
 88 
 89-static bool screen_swap_buffers(struct screen * screen)
 90+static bool target_swap_buffers(struct target * target)
 91 {
 92     struct swc_buffer * buffer;
 93 
 94-    screen->next_buffer = wld_surface_take(screen->surface);
 95-    buffer = buffer_get(screen->next_buffer);
 96+    target->next_buffer = wld_surface_take(target->surface);
 97+    buffer = buffer_get(target->next_buffer);
 98 
 99-    if (!swc_view_attach(screen->view, buffer))
100+    if (!swc_view_attach(target->view, buffer))
101     {
102         ERROR("Failed to attach next frame to screen\n");
103         return false;
104@@ -219,34 +219,34 @@ static bool screen_swap_buffers(struct screen * screen)
105     return true;
106 }
107 
108-static struct screen * screen_new(struct swc_screen_internal * base)
109+static struct target * target_new(struct swc_screen_internal * screen)
110 {
111-    struct screen * screen;
112+    struct target * target;
113 
114-    if (!(screen = malloc(sizeof *screen)))
115+    if (!(target = malloc(sizeof *target)))
116         goto error0;
117 
118-    screen->surface = wld_create_surface(swc.drm->context,
119-                                         base->base.geometry.width,
120-                                         base->base.geometry.height,
121+    target->surface = wld_create_surface(swc.drm->context,
122+                                         screen->base.geometry.width,
123+                                         screen->base.geometry.height,
124                                          WLD_FORMAT_XRGB8888,
125                                          WLD_DRM_FLAG_SCANOUT);
126 
127-    if (!screen->surface)
128+    if (!target->surface)
129         goto error1;
130 
131-    screen->view = &base->planes.framebuffer.view;
132-    screen->view_listener.notify = &handle_screen_view_event;
133-    wl_signal_add(&screen->view->event_signal, &screen->view_listener);
134-    screen->event_listener.notify = &handle_screen_event;
135-    wl_signal_add(&base->base.event_signal, &screen->event_listener);
136-    screen->current_buffer = NULL;
137-    screen_swap_buffers(screen);
138+    target->view = &screen->planes.framebuffer.view;
139+    target->view_listener.notify = &handle_screen_view_event;
140+    wl_signal_add(&target->view->event_signal, &target->view_listener);
141+    target->screen_listener.notify = &handle_screen_event;
142+    wl_signal_add(&screen->base.event_signal, &target->screen_listener);
143+    target->current_buffer = NULL;
144+    target_swap_buffers(target);
145 
146-    return screen;
147+    return target;
148 
149 error1:
150-    free(screen);
151+    free(target);
152 error0:
153     return NULL;
154 }
155@@ -719,16 +719,16 @@ static void calculate_damage()
156     pixman_region32_fini(&surface_opaque);
157 }
158 
159-static void update_screen(struct swc_screen_internal * base)
160+static void update_screen(struct swc_screen_internal * screen)
161 {
162-    struct screen * screen;
163-    const struct swc_rectangle * geometry = &base->base.geometry;
164+    struct target * target;
165+    const struct swc_rectangle * geometry = &screen->base.geometry;
166     pixman_region32_t damage;
167 
168-    if (!(compositor.scheduled_updates & swc_screen_mask(base)))
169+    if (!(compositor.scheduled_updates & swc_screen_mask(screen)))
170         return;
171 
172-    if (!(screen = screen_get(&base->base)))
173+    if (!(target = target_get(screen)))
174         return;
175 
176     pixman_region32_init(&damage);
177@@ -736,30 +736,31 @@ static void update_screen(struct swc_screen_internal * base)
178                                    geometry->x, geometry->y,
179                                    geometry->width, geometry->height);
180     pixman_region32_translate(&damage, -geometry->x, -geometry->y);
181-    pixman_region32_union(&screen->next_buffer->damage,
182-                          &screen->next_buffer->damage, &damage);
183+    pixman_region32_union(&target->next_buffer->damage,
184+                          &target->next_buffer->damage, &damage);
185     pixman_region32_fini(&damage);
186 
187     /* Don't repaint the screen if it is waiting for a page flip. */
188-    if (compositor.pending_flips & swc_screen_mask(base))
189+    if (compositor.pending_flips & swc_screen_mask(screen))
190         return;
191 
192-    struct render_target target;
193+    struct render_target render_target;
194     pixman_region32_t * total_damage, base_damage;
195 
196-    total_damage = wld_surface_damage(screen->surface,
197-                                      &screen->next_buffer->damage);
198+    total_damage = wld_surface_damage(target->surface,
199+                                      &target->next_buffer->damage);
200     pixman_region32_translate(total_damage, geometry->x, geometry->y);
201     pixman_region32_init(&base_damage);
202     pixman_region32_subtract(&base_damage, total_damage, &compositor.opaque);
203 
204-    target.surface = screen->surface;
205-    target.mask = swc_screen_mask(base);
206-    target.geometry = geometry;
207+    render_target.surface = target->surface;
208+    render_target.mask = swc_screen_mask(screen);
209+    render_target.geometry = geometry;
210 
211-    renderer_repaint(&target, total_damage, &base_damage, &compositor.views);
212+    renderer_repaint(&render_target, total_damage, &base_damage,
213+                     &compositor.views);
214     pixman_region32_fini(&base_damage);
215-    screen_swap_buffers(screen);
216+    target_swap_buffers(target);
217 }
218 
219 static void perform_update(void * data)
220@@ -918,7 +919,7 @@ bool swc_compositor_initialize()
221     wl_signal_add(&swc.launch->event_signal, &launch_listener);
222 
223     wl_list_for_each(screen, &swc.screens, link)
224-        screen_new(screen);
225+        target_new(screen);
226 
227     swc_add_key_binding(SWC_MOD_CTRL | SWC_MOD_ALT, XKB_KEY_BackSpace,
228                         &handle_terminate, NULL);