RE: Meeting minutes and the summary of WOFF2 changes

Great, thank you! Confirming that the new revision is in fact backwards compatible is highly valuable.

Vlad

 

From: Garret Rieger [mailto:grieger@google.com] 
Sent: Thursday, June 3, 2021 6:55 PM
To: Jason Pamental <jason@rwt.io>
Cc: Vladimir Levantovsky <vladimir.levantovsky@gmail.com>; Web Fonts Working Group <public-webfonts-wg@w3.org>
Subject: Re: Meeting minutes and the summary of WOFF2 changes

 

I created an example font file using the new proposed overlaps flag bitmap field added to the end of the transformed glyph table and then tested running it through the existing decoder implementation. The file decoded successfully without problems. So it looks like the new encoding scheme will be backwards compatible as expected.

 

On Thu, May 27, 2021 at 11:05 AM Jason Pamental <jason@rwt.io <mailto:jason@rwt.io> > wrote:

I agree with Garret - let’s name things clearly from the start! (As much as we can anyway)

 

Jason

 

 





On May 27, 2021, at 1:02 PM, Garret Rieger <grieger@google.com <mailto:grieger@google.com> > wrote:

 

I'd prefer overlapSimpleBitmap.

 

On Tue, May 25, 2021 at 2:20 PM Vladimir Levantovsky <vladimir.levantovsky@gmail.com <mailto:vladimir.levantovsky@gmail.com> > wrote:

Minutes of today’s discussion are online at https://www.w3.org/2021/05/25-webfonts-minutes.html

 

Summary of the WOFF2 changes to accommodate simple glyph flags bit 6 (OVERLAP_SIMPLE) bit array (see Simple Glyph Flags description for details, https://docs.microsoft.com/en-us/typography/opentype/spec/glyf).

 

In WOFF2 “Transformed ‘glyf’ table format” (https://www.w3.org/TR/WOFF2/#glyf_table_format), make the following changes:

1)      Change the datatype of the existing “version” field from Fixed to UInt16 with reserved value 0x0000.

2)      Immediately after the updated “version” field, introduce a new UInt16 field named “optionFlags”. Designate the bit 0x0001 to be the flag indicating the presence of the newly defined flag6Bitmap[] bit array. 

3)      In the end of the table, add the UInt8 flag6Bitmap[] – a numGlyphs-long bit array that provides values for the flag [bit 6] for each simple glyph. (Flag values for composite glyphs are already encoded as part of the compositeStream[].)

4)      Add the following descriptive text:
“The optionFlags field bit 0 indicates the presence of the additional flag6Bitmap[] bit array, all other bits are reserved and should be cleared. If all simple glyphs of the input font have OVERLAP_SIMPLE flags set to zero, the encoder MUST clear bit 0 of the optionFlags field and omit the flag6Bitmap[] bit array. If at least one of the simple glyphs in the input font have the flags bit 6 set, the encoder must set the optionFlags bit 0 to “1”, and MUST create the additional flag6Bitmap[] bit array where the corresponding bits MUST be set to the values of the flag bit 6 of each simple glyph in the input font.

The decoder MUST check the optionFlags bit0 value to determine whether the additional flag6Bitmap[] is included as part of the transformed ‘glyf’ table. If the additional flag6Bitmap[] bit array is not present, upon reconstruction of the simple glyphs flags the decoder MUST set all OVERLAP_SIMPLE flag values to zero. If flag6Bitmap[] is included, the decode MUST use flag6Bitmap[] bit settings to reconstruct OVERLAP_SIMPLE flag values, and set the corresponding flag6Bitmap[] bit value as flag bit 6 on the first flag byte for each simple glyph of the output font”

 

Question to the WG: I am considering two possible names for the new additional bit array – flag6Bitmap[] (used above as part of the proposed changes, which is derived from the simple glyphs flags bit 6 value), or the more verbose [and more descriptive] “overlapSimpleBitmap[]”.

What would be your preference for the new array name?


Thank you,

Vlad

 

 

Received on Thursday, 3 June 2021 23:58:32 UTC