[cairo] [PATCH 00/39] [OpenVG] merging pippin work on HEAD, and adding egl support

tardyp at gmail.com tardyp at gmail.com
Fri Jul 10 10:02:02 PDT 2009


From: Pierre Tardy <tardyp at gmail.com>

Hi,

Here is my work to merge Øyvind's openvg backend on latest master.

The last patch is the add of egl around openvg, in order to have a
image_surface like behaviour. This backend is still very experimental,
I'm having relatively good correctness using poppler rendering a pdf.

The performance is not very good, probably due to some texture thrashing.

The openvg font sytem is also not used, cairo core is kindly converting
glyphs into path for us.

Pierre Tardy (4):
  OpenVG Build plumbing for configure.ac and Makefile.sources
  Update cairo-openvg to compile on 1.8.2 baseline
  [OpenVG] updated cairo-openvg to latest internal API changes
  Added egl support to cairo-openvg

Øyvind Kolås (35):
  Build plumbing and addition of OpenVG surface type, and added initial
    skeleton of backend.
  Removal of dead code, reindentation.
  Added linear gradient source.
  Added radial source, made the gradient stop setup a separate utility
  added functionality to get_extents callback.
  reverted change to extents.
  Preliminary stubs for surface source.
  Made the source paint object live in the surface
  Added preliminary code to support image pattern source.
  check for, and include /vg/openvg.h instead of /VG/openvg.h
  Made paint use the same source setup as stroke and fill, also
    enhanced pattern source.
  %s/quartz/openvg/ in the path conversion function name.
  Made _cairo_openvg_surface_show_glyphs fill paths.
  do not register intersect_clip_path since it is empty
  Made linear, radial and image source patterns use a common setup for
    the transform of the pattern.
  Modified component order for buffers in component shuffle.
  Comment and indentation enhancements.
  Implemented intersect_clip_path, using software rendered path and
    masks.
  flip the cliping path vertically in the surface
  Added some FIXME's and comments about future development.
  Added define to enable/disable use of mask (ShivaVG doesn't support
    vgMask yet)
  implemented cairo_mask
  Return an image surface when a similar surface is requested,
    workaround for not supporting OpenVG based source patterns in
    OpenVG.
  added hack that resets clipping path after cairo_mask.
  small fix to make the previous fix build
  Batch upload of path segments in bundles of 16, removed logic to
    defines to avoid using vgMask. Now that ShivaVG supports all OpenVG
    features needed for the basic full coverage of cairo.
  updated author and license information, added missing r's here and
    there.
  improved coverage of compositing operators
  use meta surface instead of image surface for create_similar
  keep track of opacities set for groups (solid masks) ourselves
    instead of uploading a mask
  propagate errors in cairo_path_fixed_t to VGPath function
  return to correct component order for images.
  reuse paint object, have a cache of images
  do not avoid reuploading the data when only the data pointer for the
    image surface has changed.
  added a logical clock to keep track of dirt.

 configure.ac                |    7 +
 src/Makefile.sources        |    4 +
 src/cairo-openvg-surface.c  | 1275 +++++++++++++++++++++++++++++++++++++++++++
 src/cairo-openvg.h          |   53 ++
 src/cairo-surface-private.h |    2 +
 src/cairo-surface.c         |    4 +
 src/cairo.h                 |    4 +-
 7 files changed, 1348 insertions(+), 1 deletions(-)
 create mode 100644 src/cairo-openvg-surface.c
 create mode 100644 src/cairo-openvg.h



More information about the cairo mailing list