Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-08-27 09:35:35

0001 /*
0002  * Copyright © 2022  Google, Inc.
0003  *
0004  *  This is part of HarfBuzz, a text shaping library.
0005  *
0006  * Permission is hereby granted, without written agreement and without
0007  * license or royalty fees, to use, copy, modify, and distribute this
0008  * software and its documentation for any purpose, provided that the
0009  * above copyright notice and the following two paragraphs appear in
0010  * all copies of this software.
0011  *
0012  * IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR
0013  * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
0014  * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN
0015  * IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
0016  * DAMAGE.
0017  *
0018  * THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING,
0019  * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
0020  * FITNESS FOR A PARTICULAR PURPOSE.  THE SOFTWARE PROVIDED HEREUNDER IS
0021  * ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO
0022  * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
0023  *
0024  */
0025 
0026 #ifndef HB_SUBSET_SERIALIZE_H
0027 #define HB_SUBSET_SERIALIZE_H
0028 
0029 #include "hb.h"
0030 
0031 HB_BEGIN_DECLS
0032 
0033 /**
0034  * hb_subset_serialize_link_t:
0035  * @width: offsetSize in bytes
0036  * @position: position of the offset field in bytes from
0037  *            beginning of subtable
0038  * @objidx: index of subtable
0039  *
0040  * Represents a link between two objects in the object graph
0041  * to be serialized.
0042  *
0043  * Since: 10.2.0
0044  */
0045 typedef struct hb_subset_serialize_link_t {
0046   unsigned int width;
0047   unsigned int position;
0048   unsigned int objidx;
0049 } hb_subset_serialize_link_t;
0050 
0051 /**
0052  * hb_subset_serialize_object_t:
0053  * @head: start of object data
0054  * @tail: end of object data
0055  * @num_real_links: number of offset field in the object
0056  * @real_links: array of offset info
0057  * @num_virtual_links: number of objects that must be packed
0058  *                     after current object in the final
0059  *                     serialized order
0060  * @virtual_links: array of virtual link info
0061  *
0062  * Represents an object in the object graph to be serialized.
0063  *
0064  * Since: 10.2.0
0065  */
0066 typedef struct hb_subset_serialize_object_t {
0067   char *head;
0068   char *tail;
0069   unsigned int num_real_links;
0070   hb_subset_serialize_link_t *real_links;
0071   unsigned int num_virtual_links;
0072   hb_subset_serialize_link_t *virtual_links;
0073 } hb_subset_serialize_object_t;
0074 
0075 HB_EXTERN hb_blob_t *
0076 hb_subset_serialize_or_fail (hb_tag_t                      table_tag,
0077                              hb_subset_serialize_object_t *hb_objects,
0078                              unsigned                      num_hb_objs);
0079 
0080 
0081 HB_END_DECLS
0082 
0083 #endif /* HB_SUBSET_SERIALIZE_H */