diff options
author | Denis Bitouzé <dbitouze@wanadoo.fr> | 2021-02-25 18:23:07 +0000 |
---|---|---|
committer | Denis Bitouzé <dbitouze@wanadoo.fr> | 2021-02-25 18:23:07 +0000 |
commit | c6101f91d071883b48b1b4b51e5eba0f36d9a78d (patch) | |
tree | 1bf7f5a881d7a4f5c5bf59d0b2821943dd822372 /Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-hdmx-table.hh | |
parent | 07ee7222e389b0777456b427a55c22d0e6ffd267 (diff) |
French translation for tlmgr updated
git-svn-id: svn://tug.org/texlive/trunk@57912 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-hdmx-table.hh')
-rw-r--r-- | Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-hdmx-table.hh | 177 |
1 files changed, 0 insertions, 177 deletions
diff --git a/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-hdmx-table.hh b/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-hdmx-table.hh deleted file mode 100644 index c9c391bad5f..00000000000 --- a/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-hdmx-table.hh +++ /dev/null @@ -1,177 +0,0 @@ -/* - * Copyright © 2018 Google, Inc. - * - * 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. - * - * Google Author(s): Garret Rieger - */ - -#ifndef HB_OT_HDMX_TABLE_HH -#define HB_OT_HDMX_TABLE_HH - -#include "hb-open-type.hh" - -/* - * hdmx -- Horizontal Device Metrics - * https://docs.microsoft.com/en-us/typography/opentype/spec/hdmx - */ -#define HB_OT_TAG_hdmx HB_TAG('h','d','m','x') - - -namespace OT { - - -struct DeviceRecord -{ - static unsigned int get_size (unsigned count) - { return hb_ceil_to_4 (min_size + count * HBUINT8::static_size); } - - template<typename Iterator, - hb_requires (hb_is_iterator (Iterator))> - bool serialize (hb_serialize_context_t *c, unsigned pixelSize, Iterator it) - { - TRACE_SERIALIZE (this); - - unsigned length = it.len (); - - if (unlikely (!c->extend (*this, length))) return_trace (false); - - this->pixelSize = pixelSize; - this->maxWidth = - + it - | hb_reduce (hb_max, 0u); - - + it - | hb_sink (widthsZ.as_array (length)); - - return_trace (true); - } - - bool sanitize (hb_sanitize_context_t *c, unsigned sizeDeviceRecord) const - { - TRACE_SANITIZE (this); - return_trace (likely (c->check_struct (this) && - c->check_range (this, sizeDeviceRecord))); - } - - HBUINT8 pixelSize; /* Pixel size for following widths (as ppem). */ - HBUINT8 maxWidth; /* Maximum width. */ - UnsizedArrayOf<HBUINT8> widthsZ; /* Array of widths (numGlyphs is from the 'maxp' table). */ - public: - DEFINE_SIZE_ARRAY (2, widthsZ); -}; - - -struct hdmx -{ - static constexpr hb_tag_t tableTag = HB_OT_TAG_hdmx; - - unsigned int get_size () const - { return min_size + numRecords * sizeDeviceRecord; } - - const DeviceRecord& operator [] (unsigned int i) const - { - /* XXX Null(DeviceRecord) is NOT safe as it's num-glyphs lengthed. - * https://github.com/harfbuzz/harfbuzz/issues/1300 */ - if (unlikely (i >= numRecords)) return Null (DeviceRecord); - return StructAtOffset<DeviceRecord> (&this->firstDeviceRecord, i * sizeDeviceRecord); - } - - template<typename Iterator, - hb_requires (hb_is_iterator (Iterator))> - bool serialize (hb_serialize_context_t *c, unsigned version, Iterator it) - { - TRACE_SERIALIZE (this); - - if (unlikely (!c->extend_min ((*this)))) return_trace (false); - - this->version = version; - this->numRecords = it.len (); - this->sizeDeviceRecord = DeviceRecord::get_size (it ? (*it).second.len () : 0); - - for (const hb_item_type<Iterator>& _ : +it) - c->start_embed<DeviceRecord> ()->serialize (c, _.first, _.second); - - return_trace (c->successful); - } - - - bool subset (hb_subset_context_t *c) const - { - TRACE_SUBSET (this); - - hdmx *hdmx_prime = c->serializer->start_embed <hdmx> (); - if (unlikely (!hdmx_prime)) return_trace (false); - - auto it = - + hb_range ((unsigned) numRecords) - | hb_map ([c, this] (unsigned _) - { - const DeviceRecord *device_record = - &StructAtOffset<DeviceRecord> (&firstDeviceRecord, - _ * sizeDeviceRecord); - auto row = - + hb_range (c->plan->num_output_glyphs ()) - | hb_map (c->plan->reverse_glyph_map) - | hb_map ([this, c, device_record] (hb_codepoint_t _) - { - if (c->plan->is_empty_glyph (_)) - return Null (HBUINT8); - return device_record->widthsZ.as_array (get_num_glyphs ()) [_]; - }) - ; - return hb_pair ((unsigned) device_record->pixelSize, +row); - }) - ; - - hdmx_prime->serialize (c->serializer, version, it); - return_trace (true); - } - - unsigned get_num_glyphs () const - { - return sizeDeviceRecord - DeviceRecord::min_size; - } - - bool sanitize (hb_sanitize_context_t *c) const - { - TRACE_SANITIZE (this); - return_trace (c->check_struct (this) && - !hb_unsigned_mul_overflows (numRecords, sizeDeviceRecord) && - sizeDeviceRecord >= DeviceRecord::min_size && - c->check_range (this, get_size ())); - } - - protected: - HBUINT16 version; /* Table version number (0) */ - HBUINT16 numRecords; /* Number of device records. */ - HBUINT32 sizeDeviceRecord; - /* Size of a device record, 32-bit aligned. */ - DeviceRecord firstDeviceRecord; - /* Array of device records. */ - public: - DEFINE_SIZE_MIN (8); -}; - -} /* namespace OT */ - - -#endif /* HB_OT_HDMX_TABLE_HH */ |