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

Bryce Harrington bryce at bryceharrington.org
Tue Jan 8 03:23:11 UTC 2019


On Mon, Dec 03, 2018 at 03:13:38PM +0100, Maarten Lankhorst wrote:
> 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.

Verified the patchset builds with pixman 0.36, and the (default) check
tests pass.

In reviewing the code it all looks good, and the implementation approach
looks well suited to the codebase.  Thanks for breaking out the
refactoring piece.  Since pixman 0.36 is released now, I've gone ahead
and landed it directly on master.

Patch 5 is marked not for upstream, so skipped.

Patches 1-4 are:
Reviewed-by: Bryce Harrington <bryce at bryceharrington.org>

and landed to master:

To gitlab.freedesktop.org:cairo/cairo.git
   3a0670e03..d061570a7  master -> master

Thanks,
Bryce

>  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
> 
> -- 
> cairo mailing list
> cairo at cairographics.org
> https://lists.cairographics.org/mailman/listinfo/cairo


More information about the cairo mailing list