[cairo-commit] cairo/src cairo_glitz_surface.c,1.14,1.15

David Reveman commit at pdx.freedesktop.org
Tue Jan 25 12:21:35 PST 2005


Committed by: davidr

Update of /cvs/cairo/cairo/src
In directory gabe:/tmp/cvs-serv5417/src

Modified Files:
	cairo_glitz_surface.c 
Log Message:
Track changes to glitz

Index: cairo_glitz_surface.c
===================================================================
RCS file: /cvs/cairo/cairo/src/cairo_glitz_surface.c,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -d -r1.14 -r1.15
--- cairo_glitz_surface.c	20 Jan 2005 16:28:54 -0000	1.14
+++ cairo_glitz_surface.c	25 Jan 2005 20:21:33 -0000	1.15
@@ -333,7 +333,7 @@
     if (format == NULL)
 	return NULL;
     
-    surface = glitz_surface_create (drawable, format, 1, 1);
+    surface = glitz_surface_create (drawable, format, 1, 1, 0, NULL);
     if (surface == NULL)
 	return NULL;
 
@@ -355,7 +355,6 @@
 	glitz_drawable_format_t templ;
 	glitz_format_t *format;
 	glitz_drawable_t *pbuffer;
-	glitz_pbuffer_attributes_t attributes;
 	unsigned long mask;
 	int i;
 	
@@ -397,21 +396,13 @@
 	if (!dformat)
 	    return CAIRO_INT_STATUS_UNSUPPORTED;
 
-	attributes.width = glitz_surface_get_width (surface);
-	attributes.height = glitz_surface_get_height (surface);
-	mask = GLITZ_PBUFFER_WIDTH_MASK | GLITZ_PBUFFER_HEIGHT_MASK;
-
-	pbuffer = glitz_create_pbuffer_drawable (drawable, dformat,
-						 &attributes, mask);
+	pbuffer =
+	    glitz_create_pbuffer_drawable (drawable, dformat,
+					   glitz_surface_get_width (surface),
+					   glitz_surface_get_height (surface));
 	if (!pbuffer)
 	    return CAIRO_INT_STATUS_UNSUPPORTED;
 
-	if (glitz_drawable_get_width (pbuffer) < attributes.width ||
-	    glitz_drawable_get_height (pbuffer) < attributes.height) {
-	    glitz_drawable_destroy (pbuffer);
-	    return CAIRO_INT_STATUS_UNSUPPORTED;
-	}
-
 	glitz_surface_attach (surface, pbuffer,
 			      GLITZ_DRAWABLE_BUFFER_FRONT_COLOR,
 			      0, 0);
@@ -457,7 +448,7 @@
     if (gformat == NULL)
 	return NULL;
     
-    surface = glitz_surface_create (drawable, gformat, width, height);
+    surface = glitz_surface_create (drawable, gformat, width, height, 0, NULL);
     if (surface == NULL)
 	return NULL;
 
@@ -510,7 +501,8 @@
 		  int width,
 		  int height,
 		  glitz_buffer_t *geometry,
-		  glitz_geometry_format_t *format)
+		  glitz_geometry_format_t *format,
+		  int count)
 {
     if (_glitz_ensure_target (dst))
 	return CAIRO_INT_STATUS_UNSUPPORTED;
@@ -518,9 +510,10 @@
     if (glitz_surface_get_status (dst))
 	return CAIRO_STATUS_NO_TARGET_SURFACE;
 
-    glitz_set_geometry (dst,
-			0, 0,
-			format, geometry);
+    if (geometry) {
+	glitz_set_geometry (dst, GLITZ_GEOMETRY_TYPE_VERTEX, format, geometry);
+	glitz_set_array (dst, 0, 2, count, 0, 0);
+    }
 
     glitz_composite (op,
 		     src,
@@ -531,7 +524,7 @@
 		     dst_x, dst_y,
 		     width, height);
 
-    glitz_set_geometry (dst, 0, 0, NULL, NULL);
+    glitz_set_geometry (dst, GLITZ_GEOMETRY_TYPE_NONE, NULL, NULL);
 
     if (glitz_surface_get_status (dst) == GLITZ_STATUS_NOT_SUPPORTED)
 	return CAIRO_INT_STATUS_UNSUPPORTED;
@@ -589,7 +582,7 @@
 			       mask_x, mask_y,
 			       dst_x, dst_y,
 			       width, height,
-			       NULL, NULL);
+			       NULL, NULL, 0);
 
     if (src_clone)
 	cairo_surface_destroy (&src_clone->base);
@@ -624,16 +617,16 @@
 	glitz_buffer_t *buffer;
 	glitz_geometry_format_t gf;
 	cairo_int_status_t status;
-	int width, height;
+	int width, height, count;
 	void *data;
 	
-	gf.mode = GLITZ_GEOMETRY_MODE_DIRECT;
-	gf.edge_hint = GLITZ_GEOMETRY_EDGE_HINT_SHARP;
-	gf.primitive = GLITZ_GEOMETRY_PRIMITIVE_QUADS;
-	gf.type = GLITZ_DATA_TYPE_FLOAT;
-	gf.first = 0;
-	gf.count = n_rects * 4;
+	gf.vertex.primitive = GLITZ_PRIMITIVE_QUADS;
+	gf.vertex.type = GLITZ_DATA_TYPE_FLOAT;
+	gf.vertex.bytes_per_vertex = 2 * sizeof (glitz_float_t);
+	gf.vertex.attributes = 0;
 
+	count = n_rects * 4;
+	
 	data = malloc (n_rects * 8 * sizeof (glitz_float_t));
 	if (!data)
 	    return CAIRO_STATUS_NO_MEMORY;
@@ -678,7 +671,7 @@
 				   0, 0,
 				   0, 0,
 				   width, height,
-				   buffer, &gf);
+				   buffer, &gf, count);
 
 	glitz_surface_destroy (solid);
 	glitz_buffer_destroy (buffer);
@@ -715,7 +708,7 @@
     glitz_buffer_t *buffer;
     glitz_geometry_format_t gf;
     cairo_int_status_t status;
-    int x_dst, y_dst, x_rel, y_rel, width, height;
+    int x_dst, y_dst, x_rel, y_rel, width, height, count;
     void *data;
 
     if (op == CAIRO_OPERATOR_SATURATE)
@@ -724,12 +717,12 @@
     if (generic_src->backend != dst->base.backend)
 	return CAIRO_INT_STATUS_UNSUPPORTED;
 
-    gf.mode = GLITZ_GEOMETRY_MODE_DIRECT;
-    gf.edge_hint = GLITZ_GEOMETRY_EDGE_HINT_GOOD_SMOOTH;
-    gf.primitive = GLITZ_GEOMETRY_PRIMITIVE_QUADS;
-    gf.type = GLITZ_DATA_TYPE_FLOAT;
-    gf.first = 0;
-    gf.count = n_traps * 4;
+    gf.vertex.primitive = GLITZ_PRIMITIVE_QUADS;
+    gf.vertex.type = GLITZ_DATA_TYPE_FLOAT;
+    gf.vertex.bytes_per_vertex = 2 * sizeof (glitz_float_t);
+    gf.vertex.attributes = 0;
+
+    count = n_traps * 4;
 
     data = malloc (n_traps * 8 * sizeof (glitz_float_t));
     if (!data)
@@ -795,7 +788,7 @@
 			       0, 0,
 			       x_dst, y_dst,
 			       width, height,
-			       buffer, &gf);
+			       buffer, &gf, count);
 
     if (mask)
 	glitz_surface_destroy (mask);




More information about the cairo-commit mailing list