[cairo-commit] cairo ChangeLog,1.336,1.337

Kristian Hogsberg commit at pdx.freedesktop.org
Thu Jan 27 10:46:22 PST 2005


Committed by: krh

Update of /cvs/cairo/cairo
In directory gabe:/tmp/cvs-serv26089

Modified Files:
	ChangeLog 
Log Message:
2005-01-27  Kristian Høgsberg  <krh at redhat.com>

	The overall idea of this rewrite is that we want to pass the
	source pattern all the way down into the backends.  The motivation
	for this is that not all backends want a surface for the source
	operand, and by passing the pattern down, backends can choose to
	convert it to a surface if they need that.

	The patch removes the create_surface function pointer from the
	surface vtable and moves much of that code into a couple of helper
	functions.  The composite, compsite_trapezoids, and show_glyphs
	backend functions are updated to take a cairo_pattern_t instead of
	a surface as the source.
	
	* src/cairo_font.c: (_cairo_font_show_glyphs):
	* src/cairo_gstate.c: (_cairo_gstate_create_pattern),
	(_cairo_gstate_clip_and_composite_trapezoids),
	(_cairo_gstate_clip), (_cairo_gstate_show_surface),
	(_cairo_gstate_show_glyphs):
	Change these functions to not create a surface for the pattern and
	just pass the pattern down to the backend functions.
	
	* src/cairo_gstate.c: (translate_traps):
	New function to translate a set of trapezoids.
	
	* src/cairo_pattern.c:
	(_cairo_pattern_init),
	(_cairo_pattern_init_copy),
	(_cairo_pattern_prepare_surface),
	(_cairo_pattern_restore_surface):
	Break out the code to adjust and restore surface transformation
	and repeat settings into _cairo_pattern_prepare_surface and
	_cairo_pattern_restore_surface.
	
	* src/cairo_pattern.c: (_cairo_pattern_fini),
	(_cairo_pattern_init_for_surface),
	(cairo_pattern_create_for_surface):
	Split cairo_pattern_create_for_surface into an init function and a
	create function.
	
	* src/cairo_pattern.c: (_cairo_pattern_get_image),
	(_cairo_pattern_get_surface):
	Utility functions to create a surface from a pattern.

	* src/cairo_ft_font.c:
	* src/cairo_image_surface.c: 
	* src/cairo_pdf_surface.c:
	* src/cairo_png_surface.c:
	* src/cairo_ps_surface.c: 
	* src/cairo_xlib_surface.c:
	* src/cairo_glitz_surface.c:
	Update these backends to work with the new pattern API.  Glitz
	work by David Reveman.
	
	* src/cairo_surface.c: (_cairo_surface_composite),
	(_cairo_surface_composite_trapezoids),
	(_cairo_surface_set_clip_region):
	Update these to pass through the new set of args.
	
	* test/coverage-ref.png:
	Update this reference image as we now render it correctly.


Index: ChangeLog
===================================================================
RCS file: /cvs/cairo/cairo/ChangeLog,v
retrieving revision 1.336
retrieving revision 1.337
diff -u -d -r1.336 -r1.337
--- ChangeLog	27 Jan 2005 05:46:01 -0000	1.336
+++ ChangeLog	27 Jan 2005 18:46:20 -0000	1.337
@@ -1,3 +1,65 @@
+2005-01-27  Kristian Høgsberg  <krh at redhat.com>
+
+	The overall idea of this rewrite is that we want to pass the
+	source pattern all the way down into the backends.  The motivation
+	for this is that not all backends want a surface for the source
+	operand, and by passing the pattern down, backends can choose to
+	convert it to a surface if they need that.
+
+	The patch removes the create_surface function pointer from the
+	surface vtable and moves much of that code into a couple of helper
+	functions.  The composite, compsite_trapezoids, and show_glyphs
+	backend functions are updated to take a cairo_pattern_t instead of
+	a surface as the source.
+	
+	* src/cairo_font.c: (_cairo_font_show_glyphs):
+	* src/cairo_gstate.c: (_cairo_gstate_create_pattern),
+	(_cairo_gstate_clip_and_composite_trapezoids),
+	(_cairo_gstate_clip), (_cairo_gstate_show_surface),
+	(_cairo_gstate_show_glyphs):
+	Change these functions to not create a surface for the pattern and
+	just pass the pattern down to the backend functions.
+	
+	* src/cairo_gstate.c: (translate_traps):
+	New function to translate a set of trapezoids.
+	
+	* src/cairo_pattern.c:
+	(_cairo_pattern_init),
+	(_cairo_pattern_init_copy),
+	(_cairo_pattern_prepare_surface),
+	(_cairo_pattern_restore_surface):
+	Break out the code to adjust and restore surface transformation
+	and repeat settings into _cairo_pattern_prepare_surface and
+	_cairo_pattern_restore_surface.
+	
+	* src/cairo_pattern.c: (_cairo_pattern_fini),
+	(_cairo_pattern_init_for_surface),
+	(cairo_pattern_create_for_surface):
+	Split cairo_pattern_create_for_surface into an init function and a
+	create function.
+	
+	* src/cairo_pattern.c: (_cairo_pattern_get_image),
+	(_cairo_pattern_get_surface):
+	Utility functions to create a surface from a pattern.
+
+	* src/cairo_ft_font.c:
+	* src/cairo_image_surface.c: 
+	* src/cairo_pdf_surface.c:
+	* src/cairo_png_surface.c:
+	* src/cairo_ps_surface.c: 
+	* src/cairo_xlib_surface.c:
+	* src/cairo_glitz_surface.c:
+	Update these backends to work with the new pattern API.  Glitz
+	work by David Reveman.
+	
+	* src/cairo_surface.c: (_cairo_surface_composite),
+	(_cairo_surface_composite_trapezoids),
+	(_cairo_surface_set_clip_region):
+	Update these to pass through the new set of args.
+	
+	* test/coverage-ref.png:
+	Update this reference image as we now render it correctly.
+
 2005-01-26  Kristian Høgsberg  <krh at redhat.com>
 
 	* test/clip_twice.c, test/clip_twice-ref.png: New test case to




More information about the cairo-commit mailing list