Roll src/third_party/WebKit 3529d49:06e8485 (svn 202554:202555)
[chromium-blink-merge.git] / third_party / woff2 / src / normalize.h
blobdcb473b622b10bba37edc09652156b415cbf17a4
1 // Copyright 2013 Google Inc. All Rights Reserved.
2 //
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
6 //
7 // http://www.apache.org/licenses/LICENSE-2.0
8 //
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_
22 namespace woff2 {
24 struct Font;
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);
43 } // namespace woff2
45 #endif // WOFF2_NORMALIZE_H_