[MPEG-OTSPEC] proposal: COLR extension

Peter Constable pgcon6 at msn.com
Fri Oct 2 22:47:36 CEST 2020


I've made another update to the docs in issue 20<https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FMPEGGroup%2FOpenFontFormat%2Fissues%2F20&data=02%7C01%7C%7C65023e73da804119c00308d866677b69%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C637371941922445804&sdata=f4lBr2LXFJdlsErhUYYVE%2F%2BXhAdnUBCBB0offyrDmT8%3D&reserved=0>, specifically for the COLR section:

  *   The Graphic Compositions section has been expanded a bit to introduce some key concepts that distinguish the v1 capabilities from v0.
  *   The name of the format 4 paint table has been changed tentatively to PaintClipGlyph.
The idea of using a solid/gradient shading to fill a glyph outline would be a familiar extension from version 0, but it under-represents the version 1 capabilities and can lead to confusion. A better way to think is that a glyph outline can be filled by a potentially complex composition. In terms of how it will be implemented in 2D graphics libraries, a more accurate description would be that the glyph outline defines a clip region that applies to nested operations defined in the sub-graph. The above changes are an initial attempt to clarify that.

From: mpeg-otspec <mpeg-otspec-bounces at lists.aau.at> On Behalf Of Peter Constable
Sent: Thursday, October 1, 2020 4:10 PM
To: MPEG OT Spec list (mpeg-otspec at lists.aau.at) <mpeg-otspec at lists.aau.at>
Subject: Re: [MPEG-OTSPEC] proposal: COLR extension

I've updated the docs in issue 20<https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FMPEGGroup%2FOpenFontFormat%2Fissues%2F20&data=02%7C01%7C%7C65023e73da804119c00308d866677b69%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C637371941922445804&sdata=f4lBr2LXFJdlsErhUYYVE%2F%2BXhAdnUBCBB0offyrDmT8%3D&reserved=0>:
The COLR section has been updated to reflect revisions in Google's proposal as well as certain corrections. Here are the key changes from the previous draft:

  *   Offsets that were 16-bit have been changed to 24-bit or 32-bit.
  *   Related to use of Offset24, ordering of fields in some structures has been changed.
  *   The Affine2x2 structure has been removed.
  *   The transformOffset field in the PaintRadialGradient structure is removed.
  *   Ordering of some paint tables (which type has which format number) has been updated.
  *   The previous draft mentioned certain expected relationships between paint tables. These was based on my incomplete understanding of the model Google was using and have been removed.
  *   Discussion of the bounding box for colour glyphs in the BaseGlyphV1List has been added.
Also, the Font File section has been added to the collection of docs. There is only a small change: addition of the Offset24 data type.

Peter

From: mpeg-otspec <mpeg-otspec-bounces at lists.aau.at<mailto:mpeg-otspec-bounces at lists.aau.at>> On Behalf Of Peter Constable
Sent: Monday, September 28, 2020 2:22 PM
To: MPEG OT Spec list (mpeg-otspec at lists.aau.at<mailto:mpeg-otspec at lists.aau.at>) <mpeg-otspec at lists.aau.at<mailto:mpeg-otspec at lists.aau.at>>
Subject: [MPEG-OTSPEC] proposal: COLR extension

I've created an issue in the repo for discussion: Proposal: extension to COLR table (COLR v1)<https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FMPEGGroup%2FOpenFontFormat%2Fissues%2F20&data=02%7C01%7C%7C65023e73da804119c00308d866677b69%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C637371941922450797&sdata=yPqAY6CX47MBwMSABAI9vaa5dVkBc%2BCOET10ZKWejNU%3D&reserved=0>.


Google has prepared a proposal<https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fgooglefonts%2Fcolr-gradients-spec%2Ftree%2Frs&data=02%7C01%7C%7C65023e73da804119c00308d866677b69%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C637371941922460792&sdata=S2BakC78ujwzKk39PeowBqpUwoDeOlGA897FKvNwQB0%3D&reserved=0> to extend the COLR table with significantly enhanced capabilities. This followed from initial discussion at a meeting in 2019 that included people from various companies, with a general consensus to proceed. I was commissioned by Google to adapt that into proposed revisions to the OpenType spec and to OFF.

Attached are preliminary drafts related to this:

  *   revisions to the COLR section-the bulk of the changes
  *   revisions to the Variations Common Table Formats section
  *   revisions to the CPAL section

Two variants for each are attached: one showing changes from OpenType 1.8.3, which would be approximately the same as changes from OFF:2019 + Amd1; and one showing the net result, with line numbering for easy reference.

Google and I are proposing that this be the basis for a proposed new edition of OFF.

Note: There is not a new edition in ISO's balloting process yet. That means that the technical content is not yet final, wrt ISO process. Assuming work on a new edition were approved at the next WG3 and SC29 meetings, technical balloting on the new edition would go well into 2021.

The draft for the proposed COLR table revisions is not yet complete, but there's enough in place that should allow a technical reader to get a pretty good understanding of proposed new structures and how they work. Also, the specifics on how the color gradation is calculated for a radial gradient have yet to be added, but the description of the structure used for it should, I think, give a clear idea of what the capabilities are. Some visual examples are forthcoming that will provide greater clarity.

The Google proposal was prepared by Behdad Esfahbod, Dominik Röttsches, and Rod Sheeter, with input and review feedback from several others including: Dave Crossland, Laurence Penney, Adam Twardoch, Cosimo Lupo, Rossen, Atanassov, Roel Nieskens, "Pomax", "bungeman", and myself. (Apologies if I missed anyone.)


Peter
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.aau.at/pipermail/mpeg-otspec/attachments/20201002/4b0aa254/attachment-0001.html>


More information about the mpeg-otspec mailing list