diff options
Diffstat (limited to 'src/3rdparty/harfbuzz-ng/src/hb-ot-color-svg-table.hh')
-rw-r--r-- | src/3rdparty/harfbuzz-ng/src/hb-ot-color-svg-table.hh | 124 |
1 files changed, 0 insertions, 124 deletions
diff --git a/src/3rdparty/harfbuzz-ng/src/hb-ot-color-svg-table.hh b/src/3rdparty/harfbuzz-ng/src/hb-ot-color-svg-table.hh deleted file mode 100644 index e022ef43b7..0000000000 --- a/src/3rdparty/harfbuzz-ng/src/hb-ot-color-svg-table.hh +++ /dev/null @@ -1,124 +0,0 @@ -/* - * Copyright © 2018 Ebrahim Byagowi - * - * This is part of HarfBuzz, a text shaping library. - * - * Permission is hereby granted, without written agreement and without - * license or royalty fees, to use, copy, modify, and distribute this - * software and its documentation for any purpose, provided that the - * above copyright notice and the following two paragraphs appear in - * all copies of this software. - * - * IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR - * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES - * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN - * IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH - * DAMAGE. - * - * THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, - * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND - * FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS - * ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO - * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. - */ - -#ifndef HB_OT_COLOR_SVG_TABLE_HH -#define HB_OT_COLOR_SVG_TABLE_HH - -#include "hb-open-type.hh" - -/* - * SVG -- SVG (Scalable Vector Graphics) - * https://docs.microsoft.com/en-us/typography/opentype/spec/svg - */ - -#define HB_OT_TAG_SVG HB_TAG('S','V','G',' ') - - -namespace OT { - - -struct SVGDocumentIndexEntry -{ - int cmp (hb_codepoint_t g) const - { return g < startGlyphID ? -1 : g > endGlyphID ? 1 : 0; } - - hb_blob_t *reference_blob (hb_blob_t *svg_blob, unsigned int index_offset) const - { - return hb_blob_create_sub_blob (svg_blob, - index_offset + (unsigned int) svgDoc, - svgDocLength); - } - - bool sanitize (hb_sanitize_context_t *c, const void *base) const - { - TRACE_SANITIZE (this); - return_trace (c->check_struct (this) && - svgDoc.sanitize (c, base, svgDocLength)); - } - - protected: - HBUINT16 startGlyphID; /* The first glyph ID in the range described by - * this index entry. */ - HBUINT16 endGlyphID; /* The last glyph ID in the range described by - * this index entry. Must be >= startGlyphID. */ - NNOffset32To<UnsizedArrayOf<HBUINT8>> - svgDoc; /* Offset from the beginning of the SVG Document Index - * to an SVG document. Must be non-zero. */ - HBUINT32 svgDocLength; /* Length of the SVG document. - * Must be non-zero. */ - public: - DEFINE_SIZE_STATIC (12); -}; - -struct SVG -{ - static constexpr hb_tag_t tableTag = HB_OT_TAG_SVG; - - bool has_data () const { return svgDocEntries; } - - struct accelerator_t - { - void init (hb_face_t *face) - { table = hb_sanitize_context_t ().reference_table<SVG> (face); } - void fini () { table.destroy (); } - - hb_blob_t *reference_blob_for_glyph (hb_codepoint_t glyph_id) const - { - return table->get_glyph_entry (glyph_id).reference_blob (table.get_blob (), - table->svgDocEntries); - } - - bool has_data () const { return table->has_data (); } - - private: - hb_blob_ptr_t<SVG> table; - }; - - const SVGDocumentIndexEntry &get_glyph_entry (hb_codepoint_t glyph_id) const - { return (this+svgDocEntries).bsearch (glyph_id); } - - bool sanitize (hb_sanitize_context_t *c) const - { - TRACE_SANITIZE (this); - return_trace (likely (c->check_struct (this) && - (this+svgDocEntries).sanitize_shallow (c))); - } - - protected: - HBUINT16 version; /* Table version (starting at 0). */ - Offset32To<SortedArray16Of<SVGDocumentIndexEntry>> - svgDocEntries; /* Offset (relative to the start of the SVG table) to the - * SVG Documents Index. Must be non-zero. */ - /* Array of SVG Document Index Entries. */ - HBUINT32 reserved; /* Set to 0. */ - public: - DEFINE_SIZE_STATIC (10); -}; - -struct SVG_accelerator_t : SVG::accelerator_t {}; - -} /* namespace OT */ - - -#endif /* HB_OT_COLOR_SVG_TABLE_HH */ |