commit 6230926

Michael Forney  ·  2014-02-06 03:53:21 +0000 UTC
parent 85fb54a
Make exporters public API
10 files changed,  +41, -39
M dumb.c
M wld.h
+11, -9
 1@@ -40,15 +40,9 @@ void buffer_initialize(struct wld_buffer * buffer,
 2     pixman_region32_init_rect(&buffer->damage, 0, 0, width, height);
 3 }
 4 
 5-void buffer_add_exporter(struct wld_buffer * buffer,
 6-                         struct wld_exporter * exporter)
 7-{
 8-    exporter->next = buffer->exporters;
 9-    buffer->exporters = exporter;
10-}
11-
12-void exporter_initialize(struct wld_exporter * exporter,
13-                         const struct wld_exporter_impl * impl)
14+EXPORT
15+void wld_exporter_initialize(struct wld_exporter * exporter,
16+                             const struct wld_exporter_impl * impl)
17 {
18     *((const struct wld_exporter_impl **) &exporter->impl) = impl;
19     exporter->next = NULL;
20@@ -92,6 +86,14 @@ bool wld_export(struct wld_buffer * buffer,
21     return false;
22 }
23 
24+EXPORT
25+void wld_buffer_add_exporter(struct wld_buffer * buffer,
26+                             struct wld_exporter * exporter)
27+{
28+    exporter->next = buffer->exporters;
29+    buffer->exporters = exporter;
30+}
31+
32 EXPORT
33 void wld_destroy_buffer(struct wld_buffer * buffer)
34 {
M dumb.c
+2, -2
 1@@ -93,8 +93,8 @@ static struct wld_buffer * new_buffer(struct dumb_context * context,
 2                       width, height, format, pitch);
 3     buffer->context = context;
 4     buffer->handle = handle;
 5-    exporter_initialize(&buffer->exporter, &wld_exporter_impl);
 6-    buffer_add_exporter(&buffer->base, &buffer->exporter);
 7+    wld_exporter_initialize(&buffer->exporter, &wld_exporter_impl);
 8+    wld_buffer_add_exporter(&buffer->base, &buffer->exporter);
 9 
10     return &buffer->base;
11 }
+2, -2
 1@@ -124,8 +124,8 @@ static struct wld_buffer * new_buffer(uint32_t width, uint32_t height,
 2     buffer_initialize(&buffer->base, &wld_buffer_impl,
 3                       width, height, format, pitch);
 4     buffer->bo = bo;
 5-    exporter_initialize(&buffer->exporter, &wld_exporter_impl);
 6-    buffer_add_exporter(&buffer->base, &buffer->exporter);
 7+    wld_exporter_initialize(&buffer->exporter, &wld_exporter_impl);
 8+    wld_buffer_add_exporter(&buffer->base, &buffer->exporter);
 9 
10     return &buffer->base;
11 }
+2, -2
 1@@ -310,8 +310,8 @@ static struct nouveau_buffer * new_buffer(struct nouveau_context * context,
 2     buffer_initialize(&buffer->base, &wld_buffer_impl,
 3                         width, height, format, pitch);
 4     buffer->context = context;
 5-    exporter_initialize(&buffer->exporter, &wld_exporter_impl);
 6-    buffer_add_exporter(&buffer->base, &buffer->exporter);
 7+    wld_exporter_initialize(&buffer->exporter, &wld_exporter_impl);
 8+    wld_buffer_add_exporter(&buffer->base, &buffer->exporter);
 9 
10     return buffer;
11 }
+2, -2
 1@@ -205,9 +205,9 @@ static pixman_image_t * pixman_image(struct wld_buffer * buffer)
 2     if (!(exporter = malloc(sizeof *exporter)))
 3         goto error2;
 4 
 5-    exporter_initialize(&exporter->base, &wld_exporter_impl);
 6+    wld_exporter_initialize(&exporter->base, &wld_exporter_impl);
 7     exporter->image = image;
 8-    buffer_add_exporter(buffer, &exporter->base);
 9+    wld_buffer_add_exporter(buffer, &exporter->base);
10     pixman_image_set_destroy_function(image, &destroy_image, buffer);
11 
12     return pixman_image_ref(image);
+1, -1
1@@ -221,7 +221,7 @@ struct wld_buffer * context_create_buffer(struct wld_context * base,
2     if (!(exporter = wayland_create_exporter(wl)))
3         goto error2;
4 
5-    buffer_add_exporter(buffer, exporter);
6+    wld_buffer_add_exporter(buffer, exporter);
7 
8     return buffer;
9 
+1, -1
1@@ -201,7 +201,7 @@ struct wld_buffer * context_create_buffer(struct wld_context * base,
2     buffer_initialize(&buffer->base, &wld_buffer_impl,
3                       width, height, format, pitch);
4     buffer->fd = fd;
5-    buffer_add_exporter(&buffer->base, exporter);
6+    wld_buffer_add_exporter(&buffer->base, exporter);
7 
8     return &buffer->base;
9 
+1, -1
1@@ -212,7 +212,7 @@ struct wld_exporter * wayland_create_exporter(struct wl_buffer * buffer)
2     if (!(exporter = malloc(sizeof *exporter)))
3         return NULL;
4 
5-    exporter_initialize(&exporter->base, &wld_exporter_impl);
6+    wld_exporter_initialize(&exporter->base, &wld_exporter_impl);
7     exporter->buffer = buffer;
8 
9     return &exporter->base;
+0, -19
 1@@ -143,19 +143,6 @@ struct wld_surface_impl
 2     void (* destroy)(struct wld_surface * surface);
 3 };
 4 
 5-struct wld_exporter
 6-{
 7-    const struct wld_exporter_impl * const impl;
 8-    struct wld_exporter * next;
 9-};
10-
11-struct wld_exporter_impl
12-{
13-    bool (* export)(struct wld_exporter * exporter, struct wld_buffer * buffer,
14-                    uint32_t type, union wld_object * object);
15-    void (* destroy)(struct wld_exporter * exporter);
16-};
17-
18 struct wld_buffer_socket
19 {
20     const struct wld_buffer_socket_impl * impl;
21@@ -246,12 +233,6 @@ void buffer_initialize(struct wld_buffer * buffer,
22                        uint32_t width, uint32_t height,
23                        uint32_t format, uint32_t pitch);
24 
25-void buffer_add_exporter(struct wld_buffer * buffer,
26-                         struct wld_exporter * exporter);
27-
28-void exporter_initialize(struct wld_exporter * exporter,
29-                         const struct wld_exporter_impl * impl);
30-
31 void surface_initialize(struct wld_surface * surface,
32                         const struct wld_surface_impl * impl);
33 
M wld.h
+19, -0
 1@@ -155,6 +155,22 @@ static inline void wld_font_text_extents(struct wld_font * font,
 2 
 3 /**** Buffers ****/
 4 
 5+struct wld_exporter
 6+{
 7+    const struct wld_exporter_impl * const impl;
 8+    struct wld_exporter * next;
 9+};
10+
11+struct wld_exporter_impl
12+{
13+    bool (* export)(struct wld_exporter * exporter, struct wld_buffer * buffer,
14+                    uint32_t type, union wld_object * object);
15+    void (* destroy)(struct wld_exporter * exporter);
16+};
17+
18+void wld_exporter_initialize(struct wld_exporter * exporter,
19+                             const struct wld_exporter_impl * impl);
20+
21 struct wld_buffer
22 {
23     const struct wld_buffer_impl * const impl;
24@@ -181,6 +197,9 @@ bool wld_unmap(struct wld_buffer * buffer);
25 bool wld_export(struct wld_buffer * buffer,
26                 uint32_t type, union wld_object * object);
27 
28+void wld_buffer_add_exporter(struct wld_buffer * buffer,
29+                             struct wld_exporter * exporter);
30+
31 /**
32  * Destroy a buffer.
33  */