xref: /aosp_15_r20/external/harfbuzz_ng/src/OT/glyf/loca.hh (revision 2d1272b857b1f7575e6e246373e1cb218663db8a)
1*2d1272b8SAndroid Build Coastguard Worker #ifndef OT_GLYF_LOCA_HH
2*2d1272b8SAndroid Build Coastguard Worker #define OT_GLYF_LOCA_HH
3*2d1272b8SAndroid Build Coastguard Worker 
4*2d1272b8SAndroid Build Coastguard Worker 
5*2d1272b8SAndroid Build Coastguard Worker #include "../../hb-open-type.hh"
6*2d1272b8SAndroid Build Coastguard Worker 
7*2d1272b8SAndroid Build Coastguard Worker 
8*2d1272b8SAndroid Build Coastguard Worker namespace OT {
9*2d1272b8SAndroid Build Coastguard Worker 
10*2d1272b8SAndroid Build Coastguard Worker 
11*2d1272b8SAndroid Build Coastguard Worker /*
12*2d1272b8SAndroid Build Coastguard Worker  * loca -- Index to Location
13*2d1272b8SAndroid Build Coastguard Worker  * https://docs.microsoft.com/en-us/typography/opentype/spec/loca
14*2d1272b8SAndroid Build Coastguard Worker  */
15*2d1272b8SAndroid Build Coastguard Worker #define HB_OT_TAG_loca HB_TAG('l','o','c','a')
16*2d1272b8SAndroid Build Coastguard Worker 
17*2d1272b8SAndroid Build Coastguard Worker struct loca
18*2d1272b8SAndroid Build Coastguard Worker {
19*2d1272b8SAndroid Build Coastguard Worker   friend struct glyf;
20*2d1272b8SAndroid Build Coastguard Worker   friend struct glyf_accelerator_t;
21*2d1272b8SAndroid Build Coastguard Worker 
22*2d1272b8SAndroid Build Coastguard Worker   static constexpr hb_tag_t tableTag = HB_OT_TAG_loca;
23*2d1272b8SAndroid Build Coastguard Worker 
sanitizeOT::loca24*2d1272b8SAndroid Build Coastguard Worker   bool sanitize (hb_sanitize_context_t *c HB_UNUSED) const
25*2d1272b8SAndroid Build Coastguard Worker   {
26*2d1272b8SAndroid Build Coastguard Worker     TRACE_SANITIZE (this);
27*2d1272b8SAndroid Build Coastguard Worker     return_trace (true);
28*2d1272b8SAndroid Build Coastguard Worker   }
29*2d1272b8SAndroid Build Coastguard Worker 
30*2d1272b8SAndroid Build Coastguard Worker   protected:
31*2d1272b8SAndroid Build Coastguard Worker   UnsizedArrayOf<HBUINT8>
32*2d1272b8SAndroid Build Coastguard Worker 		dataZ;	/* Location data. */
33*2d1272b8SAndroid Build Coastguard Worker   public:
34*2d1272b8SAndroid Build Coastguard Worker   DEFINE_SIZE_MIN (0);	/* In reality, this is UNBOUNDED() type; but since we always
35*2d1272b8SAndroid Build Coastguard Worker 			 * check the size externally, allow Null() object of it by
36*2d1272b8SAndroid Build Coastguard Worker 			 * defining it _MIN instead. */
37*2d1272b8SAndroid Build Coastguard Worker };
38*2d1272b8SAndroid Build Coastguard Worker 
39*2d1272b8SAndroid Build Coastguard Worker 
40*2d1272b8SAndroid Build Coastguard Worker } /* namespace OT */
41*2d1272b8SAndroid Build Coastguard Worker 
42*2d1272b8SAndroid Build Coastguard Worker 
43*2d1272b8SAndroid Build Coastguard Worker #endif /* OT_GLYF_LOCA_HH */
44