diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 19:33:14 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 19:33:14 +0000 |
commit | 36d22d82aa202bb199967e9512281e9a53db42c9 (patch) | |
tree | 105e8c98ddea1c1e4784a60a5a6410fa416be2de /modules/woff2/src/woff2_common.h | |
parent | Initial commit. (diff) | |
download | firefox-esr-36d22d82aa202bb199967e9512281e9a53db42c9.tar.xz firefox-esr-36d22d82aa202bb199967e9512281e9a53db42c9.zip |
Adding upstream version 115.7.0esr.upstream/115.7.0esrupstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'modules/woff2/src/woff2_common.h')
-rw-r--r-- | modules/woff2/src/woff2_common.h | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/modules/woff2/src/woff2_common.h b/modules/woff2/src/woff2_common.h new file mode 100644 index 0000000000..51fd4a7bf8 --- /dev/null +++ b/modules/woff2/src/woff2_common.h @@ -0,0 +1,64 @@ +/* Copyright 2014 Google Inc. All Rights Reserved. + + Distributed under MIT license. + See file LICENSE for detail or copy at https://opensource.org/licenses/MIT +*/ + +/* Common definition for WOFF2 encoding/decoding */ + +#ifndef WOFF2_WOFF2_COMMON_H_ +#define WOFF2_WOFF2_COMMON_H_ + +#include <stddef.h> +#include <inttypes.h> + +#include <string> + +namespace woff2 { + +static const uint32_t kWoff2Signature = 0x774f4632; // "wOF2" + +// Leave the first byte open to store flag_byte +const unsigned int kWoff2FlagsTransform = 1 << 8; + +// TrueType Collection ID string: 'ttcf' +static const uint32_t kTtcFontFlavor = 0x74746366; + +static const size_t kSfntHeaderSize = 12; +static const size_t kSfntEntrySize = 16; + +struct Point { + int x; + int y; + bool on_curve; +}; + +struct Table { + uint32_t tag; + uint32_t flags; + uint32_t src_offset; + uint32_t src_length; + + uint32_t transform_length; + + uint32_t dst_offset; + uint32_t dst_length; + const uint8_t* dst_data; + + bool operator<(const Table& other) const { + return tag < other.tag; + } +}; + + +// Size of the collection header. 0 if version indicates this isn't a +// collection. Ref http://www.microsoft.com/typography/otspec/otff.htm, +// True Type Collections +size_t CollectionHeaderSize(uint32_t header_version, uint32_t num_fonts); + +// Compute checksum over size bytes of buf +uint32_t ComputeULongSum(const uint8_t* buf, size_t size); + +} // namespace woff2 + +#endif // WOFF2_WOFF2_COMMON_H_ |