1142d8881c174896c0180d60d3efe66a07daa7256Kenichi Ishibashi// Copyright 2014 Google Inc. All Rights Reserved. 2142d8881c174896c0180d60d3efe66a07daa7256Kenichi Ishibashi// 3142d8881c174896c0180d60d3efe66a07daa7256Kenichi Ishibashi// Licensed under the Apache License, Version 2.0 (the "License"); 4142d8881c174896c0180d60d3efe66a07daa7256Kenichi Ishibashi// you may not use this file except in compliance with the License. 5142d8881c174896c0180d60d3efe66a07daa7256Kenichi Ishibashi// You may obtain a copy of the License at 6142d8881c174896c0180d60d3efe66a07daa7256Kenichi Ishibashi// 7142d8881c174896c0180d60d3efe66a07daa7256Kenichi Ishibashi// http://www.apache.org/licenses/LICENSE-2.0 8142d8881c174896c0180d60d3efe66a07daa7256Kenichi Ishibashi// 9142d8881c174896c0180d60d3efe66a07daa7256Kenichi Ishibashi// Unless required by applicable law or agreed to in writing, software 10142d8881c174896c0180d60d3efe66a07daa7256Kenichi Ishibashi// distributed under the License is distributed on an "AS IS" BASIS, 11142d8881c174896c0180d60d3efe66a07daa7256Kenichi Ishibashi// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12142d8881c174896c0180d60d3efe66a07daa7256Kenichi Ishibashi// See the License for the specific language governing permissions and 13142d8881c174896c0180d60d3efe66a07daa7256Kenichi Ishibashi// limitations under the License. 14142d8881c174896c0180d60d3efe66a07daa7256Kenichi Ishibashi// 15142d8881c174896c0180d60d3efe66a07daa7256Kenichi Ishibashi// Common definition for WOFF2 encoding/decoding 16142d8881c174896c0180d60d3efe66a07daa7256Kenichi Ishibashi 17142d8881c174896c0180d60d3efe66a07daa7256Kenichi Ishibashi#ifndef WOFF2_WOFF2_COMMON_H_ 18142d8881c174896c0180d60d3efe66a07daa7256Kenichi Ishibashi#define WOFF2_WOFF2_COMMON_H_ 19142d8881c174896c0180d60d3efe66a07daa7256Kenichi Ishibashi 20142d8881c174896c0180d60d3efe66a07daa7256Kenichi Ishibashi#include <inttypes.h> 21142d8881c174896c0180d60d3efe66a07daa7256Kenichi Ishibashi 22142d8881c174896c0180d60d3efe66a07daa7256Kenichi Ishibashinamespace woff2 { 23142d8881c174896c0180d60d3efe66a07daa7256Kenichi Ishibashi 24142d8881c174896c0180d60d3efe66a07daa7256Kenichi Ishibashistatic const uint32_t kWoff2Signature = 0x774f4632; // "wOF2" 25142d8881c174896c0180d60d3efe66a07daa7256Kenichi Ishibashi 26142d8881c174896c0180d60d3efe66a07daa7256Kenichi Ishibashiconst unsigned int kWoff2FlagsContinueStream = 1 << 4; 27142d8881c174896c0180d60d3efe66a07daa7256Kenichi Ishibashiconst unsigned int kWoff2FlagsTransform = 1 << 5; 28142d8881c174896c0180d60d3efe66a07daa7256Kenichi Ishibashi 29142d8881c174896c0180d60d3efe66a07daa7256Kenichi Ishibashistruct Point { 30142d8881c174896c0180d60d3efe66a07daa7256Kenichi Ishibashi int x; 31142d8881c174896c0180d60d3efe66a07daa7256Kenichi Ishibashi int y; 32142d8881c174896c0180d60d3efe66a07daa7256Kenichi Ishibashi bool on_curve; 33142d8881c174896c0180d60d3efe66a07daa7256Kenichi Ishibashi}; 34142d8881c174896c0180d60d3efe66a07daa7256Kenichi Ishibashi 35142d8881c174896c0180d60d3efe66a07daa7256Kenichi Ishibashistruct Table { 36142d8881c174896c0180d60d3efe66a07daa7256Kenichi Ishibashi uint32_t tag; 37142d8881c174896c0180d60d3efe66a07daa7256Kenichi Ishibashi uint32_t flags; 38142d8881c174896c0180d60d3efe66a07daa7256Kenichi Ishibashi uint32_t src_offset; 39142d8881c174896c0180d60d3efe66a07daa7256Kenichi Ishibashi uint32_t src_length; 40142d8881c174896c0180d60d3efe66a07daa7256Kenichi Ishibashi 41142d8881c174896c0180d60d3efe66a07daa7256Kenichi Ishibashi uint32_t transform_length; 42142d8881c174896c0180d60d3efe66a07daa7256Kenichi Ishibashi 43142d8881c174896c0180d60d3efe66a07daa7256Kenichi Ishibashi uint32_t dst_offset; 44142d8881c174896c0180d60d3efe66a07daa7256Kenichi Ishibashi uint32_t dst_length; 45142d8881c174896c0180d60d3efe66a07daa7256Kenichi Ishibashi const uint8_t* dst_data; 46142d8881c174896c0180d60d3efe66a07daa7256Kenichi Ishibashi}; 47142d8881c174896c0180d60d3efe66a07daa7256Kenichi Ishibashi 48142d8881c174896c0180d60d3efe66a07daa7256Kenichi Ishibashi} // namespace woff2 49142d8881c174896c0180d60d3efe66a07daa7256Kenichi Ishibashi 50142d8881c174896c0180d60d3efe66a07daa7256Kenichi Ishibashi#endif // WOFF2_WOFF2_COMMON_H_ 51