1 // Copyright 2013 Google Inc. All Rights Reserved.
3 // Licensed under the Apache License, Version 2.0 (the "License");
4 // you may not use this file except in compliance with the License.
5 // You may obtain a copy of the License at
7 // http://www.apache.org/licenses/LICENSE-2.0
9 // Unless required by applicable law or agreed to in writing, software
10 // distributed under the License is distributed on an "AS IS" BASIS,
11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 // See the License for the specific language governing permissions and
13 // limitations under the License.
15 // Functions for normalizing fonts. Since the WOFF 2.0 decoder creates font
16 // files in normalized form, the WOFF 2.0 conversion is guaranteed to be
17 // lossless (in a bitwise sense) only for normalized font files.
19 #ifndef WOFF2_NORMALIZE_H_
20 #define WOFF2_NORMALIZE_H_
26 // Changes the offset fields of the table headers so that the data for the
27 // tables will be written in order of increasing tag values, without any gaps
28 // other than the 4-byte padding.
29 bool NormalizeOffsets(Font
* font
);
31 // Changes the checksum fields of the table headers and the checksum field of
32 // the head table so that it matches the current data.
33 bool FixChecksums(Font
* font
);
35 // Parses each of the glyphs in the font and writes them again to the glyf
36 // table in normalized form, as defined by the StoreGlyph() function. Changes
37 // the loca table accordigly.
38 bool NormalizeGlyphs(Font
* font
);
40 // Performs all of the normalization steps above.
41 bool NormalizeFont(Font
* font
);
45 #endif // WOFF2_NORMALIZE_H_