[PATCH 1/3] compositor-wayland: use image loading code from shared/

Ander Conselvan de Oliveira ander.conselvan.de.oliveira at intel.com
Fri Mar 16 08:25:09 PDT 2012


Function weston_load_image() was deleted in f02a649a but the wayland
backend was not adapted to the new interface. This probably went
unoticed because the prototype for the missing function was not deleted
from compositor.h so the backend would compile without warnings.
---
 src/Makefile.am          |    3 ++-
 src/compositor-wayland.c |   16 ++++++++++------
 src/compositor.h         |    5 -----
 3 files changed, 12 insertions(+), 12 deletions(-)

diff --git a/src/Makefile.am b/src/Makefile.am
index 67c7414..672110a 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -74,7 +74,8 @@ endif
 if ENABLE_WAYLAND_COMPOSITOR
 wayland_backend = wayland-backend.la
 wayland_backend_la_LDFLAGS = -module -avoid-version
-wayland_backend_la_LIBADD = $(COMPOSITOR_LIBS) $(WAYLAND_COMPOSITOR_LIBS)
+wayland_backend_la_LIBADD = $(COMPOSITOR_LIBS) $(WAYLAND_COMPOSITOR_LIBS) \
+	../shared/libconfig-parser.la
 wayland_backend_la_CFLAGS = $(WAYLAND_COMPOSITOR_CFLAGS) $(GCC_CFLAGS)
 wayland_backend_la_SOURCES = compositor-wayland.c
 endif
diff --git a/src/compositor-wayland.c b/src/compositor-wayland.c
index 48358e3..b4c55a8 100644
--- a/src/compositor-wayland.c
+++ b/src/compositor-wayland.c
@@ -206,16 +206,17 @@ draw_border(struct wayland_output *output)
 static void
 create_border(struct wayland_compositor *c)
 {
-	uint32_t *pixels, stride;
+	pixman_image_t *image;
 
-	pixels = weston_load_image(DATADIR "/weston/border.png",
-				   &c->border.width,
-				   &c->border.height, &stride);
-	if (!pixels) {
+	image = load_image(DATADIR "/weston/border.png");
+	if (!image) {
 		fprintf(stderr, "could'nt load border image\n");
 		return;
 	}
 
+	c->border.width = pixman_image_get_width(image);
+	c->border.height = pixman_image_get_height(image);
+
 	glGenTextures(1, &c->border.texture);
 	glBindTexture(GL_TEXTURE_2D, c->border.texture);
 	glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
@@ -226,12 +227,15 @@ create_border(struct wayland_compositor *c)
 	glTexImage2D(GL_TEXTURE_2D, 0, GL_BGRA_EXT,
 		     c->border.width,
 		     c->border.height,
-		     0, GL_BGRA_EXT, GL_UNSIGNED_BYTE, pixels);
+		     0, GL_BGRA_EXT, GL_UNSIGNED_BYTE,
+		     pixman_image_get_data(image));
 
 	c->border.top = 25;
 	c->border.bottom = 50;
 	c->border.left = 25;
 	c->border.right = 25;
+
+	pixman_image_unref(image);
 }
 
 static int
diff --git a/src/compositor.h b/src/compositor.h
index b5ba7b2..9467cc8 100644
--- a/src/compositor.h
+++ b/src/compositor.h
@@ -506,11 +506,6 @@ screenshooter_create(struct weston_compositor *ec);
 void
 screenshooter_destroy(struct screenshooter *s);
 
-uint32_t *
-weston_load_image(const char *filename,
-		  int32_t *width_arg, int32_t *height_arg,
-		  uint32_t *stride_arg);
-
 struct weston_process;
 typedef void (*weston_process_cleanup_func_t)(struct weston_process *process,
 					    int status);
-- 
1.7.4.1



More information about the wayland-devel mailing list