freetype-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Gradient Color Fonts, COLR v1 Contributions to FreeType


From: Dominik Röttsches
Subject: Re: Gradient Color Fonts, COLR v1 Contributions to FreeType
Date: Fri, 10 Jul 2020 14:16:46 +0300

Hi Werner and others,

I've made some progress with the COLR v1 extension implementation in
FreeType and would be happy to hear initial feedback on the general
approach and API style.
I am not requesting a full review yet, but I would be very happy if
you had some time to take an initial high-level look. (Caveat: The
code still has a set of TODOs and formatting needs tuning to follow
the FreeType conventions more precisely).

I've added a set of FT_Paint_* / FT_COLR_* structures to freetype.h
representing the primitives in the COLR v1 Gradients spec here:
https://github.com/googlefonts/colr-gradients-spec/blob/master/colr-gradients-spec.md

I've also added two new main entry points:

  FT_EXPORT ( FT_Bool )
  FT_Get_Color_Glyph_Layer_Gradients ( FT_Face           face,
                                       FT_UInt           base_glyph,
                                       FT_UInt           *aglyph_index,
                                       FT_COLR_Paint *   paint,
                                       FT_LayerIterator *iterator );

For retrieval of the v1 layers, returning an FT_COLR_Paint union with
solid, linear or radial gradient information depending on the union's
format identifier.

  FT_EXPORT ( FT_Bool )
  FT_Get_Colorline_Stops ( FT_Face               face,
                           FT_ColorStop *       color_stop,
                           FT_ColorStopIterator *iterator );

This methods work analogously to the layer retrieval functions for
COLR v0 and v1, but defines a new ColorStopIterator to retrieve color
stops of a gradient without requiring large client side allocations.

I'm attaching git format-patch style patch on top of ToT, and you can also use
https://github.com/drott/freetype2-colr/compare/master...colrV1ApiSquashed
if you like for providing feedback.

Thank you very much in advance for taking a look. I'll be
out-of-office for two weeks but I'll respond to any feedback as soon
as possible when getting back.

Dominik

On Tue, Jun 30, 2020 at 11:46 AM Dominik Röttsches <drott@chromium.org> wrote:
>
> Hi Werner,
>
> thanks for the encouragement.
>
> On Tue, Jun 30, 2020 at 10:40 AM Werner LEMBERG <wl@gnu.org> wrote:
>
> > > In a team effort with Roderick Sheeter & Cosimo Lupo & Dave Crossland
> > > (Google Fonts) and myself (Blink/Chrome)
> >
> > ... and Behdad Esfahbod ...
>
> Yes!
>
> > Thanks.  Are there fundamental differences to the googledocs version at
> >   
> > https://docs.google.com/document/d/1EPndWsdMK_M135FOIxQZ--dHpH727rXEBvLZqgIzZvs/edit?ts=5de68042#heading=h.no8g2ykeo8za
>
> I don't think there are major differences, we moved it to GitHub to
> allow public comments and issue tracking.
>
> Dominik

Attachment: 0001-Draft-COLR-Table-v1-Gradient-Extensions-API-Proposal.patch
Description: Binary data


reply via email to

[Prev in Thread] Current Thread [Next in Thread]