[cairo] [PATCH 0/5] Implement floating point support in cairo.

Maarten Lankhorst maarten.lankhorst at linux.intel.com
Mon Dec 3 14:13:38 UTC 2018


pixman 0.36.0 introduces support for floating point formats, so it's time
to enable this in cairo.

To actually use the extended precision in gradients, you need:
https://lists.freedesktop.org/archives/pixman/2018-December/004794.html

pixman-bits-image.c is still 8-bits-extended-to-float when transforms or
alpha mapping is used, so this needs fixing if you want true 32-bits all
the time. However this doesn't change the API, so I'm posting this series
now with more confidence.

Maarten Lankhorst (5):
  cairo-trace: Simplify bigendian case in emit_image.
  Add support for RGBA128F and RGB96F formats.
  png: Add support for writing new floating point formats as 16 bpc png.
  png: Add support for 16 bpc png reading as floating point format
  boilerplate: Add support for new float formats.

 boilerplate/cairo-boilerplate.c            | 154 +++++++++++++++---
 configure.ac                               |   2 +-
 perf/micro/fill-clip.c                     |   2 +
 perf/micro/pixel.c                         |   2 +
 src/cairo-debug.c                          |   6 +
 src/cairo-image-compositor.c               |   4 +
 src/cairo-image-source.c                   |  27 ++++
 src/cairo-image-surface.c                  |  16 ++
 src/cairo-png.c                            | 174 +++++++++++++++++++--
 src/cairo-script-surface.c                 |  20 +++
 src/cairo-xlib-display.c                   |  12 ++
 src/cairo.h                                |   6 +-
 src/cairoint.h                             |   2 +-
 test/any2ppm.c                             |   2 +
 test/map-to-image.c                        |   2 +
 test/png.c                                 |   2 +
 util/cairo-script/cairo-script-operators.c |  12 ++
 util/cairo-trace/trace.c                   |  37 ++---
 18 files changed, 416 insertions(+), 66 deletions(-)

-- 
2.19.2



More information about the cairo mailing list