|
|
|
|
#ifndef Magnum_Text_Script_h
|
|
|
|
|
#define Magnum_Text_Script_h
|
|
|
|
|
/*
|
|
|
|
|
This file is part of Magnum.
|
|
|
|
|
|
|
|
|
|
Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019,
|
|
|
|
|
2020, 2021, 2022, 2023 Vladimír Vondruš <mosra@centrum.cz>
|
|
|
|
|
|
|
|
|
|
Permission is hereby granted, free of charge, to any person obtaining a
|
|
|
|
|
copy of this software and associated documentation files (the "Software"),
|
|
|
|
|
to deal in the Software without restriction, including without limitation
|
|
|
|
|
the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
|
|
|
|
and/or sell copies of the Software, and to permit persons to whom the
|
|
|
|
|
Software is furnished to do so, subject to the following conditions:
|
|
|
|
|
|
|
|
|
|
The above copyright notice and this permission notice shall be included
|
|
|
|
|
in all copies or substantial portions of the Software.
|
|
|
|
|
|
|
|
|
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
|
|
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
|
|
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
|
|
|
|
THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
|
|
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
|
|
|
|
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
|
|
|
|
DEALINGS IN THE SOFTWARE.
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
/** @file
|
|
|
|
|
* @brief Enum @ref Magnum::Text::Script, function @ref Magnum::Text::script()
|
|
|
|
|
* @m_since_latest
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
#include <Corrade/Utility/Endianness.h>
|
|
|
|
|
|
|
|
|
|
#include "Magnum/Magnum.h"
|
|
|
|
|
#include "Magnum/Text/visibility.h"
|
|
|
|
|
|
|
|
|
|
namespace Magnum { namespace Text {
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
@brief Script a text is written in
|
|
|
|
|
@m_since_latest
|
|
|
|
|
|
|
|
|
|
The values are [FourCC](https://en.wikipedia.org/wiki/FourCC) codes according
|
|
|
|
|
to [ISO 15924](https://en.wikipedia.org/wiki/ISO_15924). Use
|
|
|
|
|
@ref script(char, char, char, char) or @ref script(Containers::StringView) for
|
|
|
|
|
creating values not listed in the enum.
|
Text: new AbstractShaper interface for shaping.
Replaces the previous, grossly inefficient AbstractLayouter which was
performing one virtual call per glyph (!). It's now also reusable,
meaning it doesn't need to be allocated anew for every new shaped text,
and it no longer requires each and every font plugin to implement the
same redundant glyph data fetching from the glyph cache, scaling etc. --
all that is meant to be done by the users of AbstractShaper, i.e.
Renderer. The independency on a glyph cache theorerically also means it
can be used for a completely different, non-texture-based way to render
text (such as direct path drawing directly on the GPU), although I won't
be exploring that path now.
It also exposes an interface for specifying script, language,
direction and typographic features. Such interface will be currently
only implemented in HarfBuzz, but that's the intent -- to provide a
flexible enough interface to support all possible use cases that a font
or a font plugin may support, instead of exposing a least common
denominator and then having no easy way to shape a text in a non-Latin
script or use a fancy OpenType feature the chosen font has.
The old public interface is preserved for backwards compatibility,
marked as deprecated, however the virtual APIs are not, as supporting
that would be too nasty. I don't think any user code ever implemented a
font plugin so this should be okay.
To ensure smooth transition with no regressions, the Renderer class and
MagnumFont tests still use the old API in this commit, and their test
pass the same way as they did before (except for two removed MagnumFont
test cases which tested errors that are now an assertion in the
deprecated layout() API and thus cannot be tested from the plugin
anymore). Porting them away from the deprecated API will be done in
separate commits.
3 years ago
|
|
|
@see @ref AbstractShaper::setScript(), @ref AbstractShaper::script()
|
|
|
|
|
*/
|
|
|
|
|
enum class Script: UnsignedInt {
|
|
|
|
|
/* List taken from https://en.wikipedia.org/wiki/ISO_15924, ordered by
|
|
|
|
|
the FourCC except for the Unspecified / zero value and the special
|
|
|
|
|
values which are at the top. Using the Unicode name as the enum value
|
|
|
|
|
and description, not the Wikipedia language name. Entries that don't
|
|
|
|
|
have a 1:1 mapping to Unicode, are not in Unicode or are not in Unicode
|
|
|
|
|
yet are omitted with a comment. The names should match HarfBuzz naming
|
|
|
|
|
where possible and the codes should match always, see the corresponding
|
|
|
|
|
test case in the HarfBuzzFont plugin. */
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Unspecified. When set in @ref AbstractShaper::setScript(), makes the
|
|
|
|
|
* shaping rely on script autodetection implemented in a particular
|
|
|
|
|
* @ref AbstractFont plugin (if any). When returned from
|
|
|
|
|
* @ref AbstractShaper::script() after a successful
|
|
|
|
|
* @ref AbstractShaper::shape() call, it means a particular
|
|
|
|
|
* @ref AbstractFont plugin doesn't implement any script-specific behavior.
|
|
|
|
|
* @see @ref Script::Inherited, @ref Script::Common, @ref Script::Unknown
|
|
|
|
|
*/
|
|
|
|
|
Unspecified = 0,
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Inherited. Characters that may be used with multiple scripts, and that
|
|
|
|
|
* inherit their script from a preceding base character.
|
|
|
|
|
* @see @ref Script::Common, @ref Script::Unknown, @ref Script::Unspecified
|
|
|
|
|
*/
|
|
|
|
|
Inherited = Utility::Endianness::fourCC('Z', 'i', 'n', 'h'),
|
|
|
|
|
|
|
|
|
|
/** Math symbols */
|
|
|
|
|
Math = Utility::Endianness::fourCC('Z', 'm', 't', 'h'),
|
|
|
|
|
|
|
|
|
|
/** @todo Zsye, Zsym? HB has Zmth, but not these */
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Undetermined script
|
|
|
|
|
* @see @ref Script::Unknown, @ref Script::Inherited,
|
|
|
|
|
* @ref Script::Unspecified
|
|
|
|
|
*/
|
|
|
|
|
Common = Utility::Endianness::fourCC('Z', 'y', 'y', 'y'),
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Unknown script
|
|
|
|
|
* @see @ref Script::Common, @ref Script::Inherited,
|
|
|
|
|
* @ref Script::Unspecified
|
|
|
|
|
*/
|
|
|
|
|
Unknown = Utility::Endianness::fourCC('Z', 'z', 'z', 'z'),
|
|
|
|
|
|
|
|
|
|
/** [Adlam](https://en.wikipedia.org/wiki/Adlam_script), Unicode 9.0 */
|
|
|
|
|
Adlam = Utility::Endianness::fourCC('A', 'd', 'l', 'm'),
|
|
|
|
|
|
|
|
|
|
/* Afak not in Unicode yet */
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* [Caucasian Albanian](https://en.wikipedia.org/wiki/Caucasian_Albanian_script),
|
|
|
|
|
* Unicode 7.0
|
|
|
|
|
*/
|
|
|
|
|
CaucasianAlbanian = Utility::Endianness::fourCC('A', 'g', 'h', 'b'),
|
|
|
|
|
|
|
|
|
|
/** [Ahom](https://en.wikipedia.org/wiki/Ahom_script), Unicode 8.0 */
|
|
|
|
|
Ahom = Utility::Endianness::fourCC('A', 'h', 'o', 'm'),
|
|
|
|
|
|
|
|
|
|
/** [Arabic](https://en.wikipedia.org/wiki/Arabic_script), Unicode 1.0 */
|
|
|
|
|
Arabic = Utility::Endianness::fourCC('A', 'r', 'a', 'b'),
|
|
|
|
|
|
|
|
|
|
/* Aran treated as a variant of Arab in Unicode */
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* [Imperial Aramaic](https://en.wikipedia.org/wiki/Aramaic_alphabet),
|
|
|
|
|
* Unicode 5.2
|
|
|
|
|
*/
|
|
|
|
|
ImperialAramaic = Utility::Endianness::fourCC('A', 'r', 'm', 'i'),
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* [Armenian](https://en.wikipedia.org/wiki/Armenian_alphabet), Unicode 1.0
|
|
|
|
|
*/
|
|
|
|
|
Armenian = Utility::Endianness::fourCC('A', 'r', 'm', 'n'),
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* [Avestan](https://en.wikipedia.org/wiki/Avestan_alphabet), Unicode 5.2
|
|
|
|
|
*/
|
|
|
|
|
Avestan = Utility::Endianness::fourCC('A', 'v', 's', 't'),
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* [Balinese](https://en.wikipedia.org/wiki/Balinese_script), Unicode 5.0
|
|
|
|
|
*/
|
|
|
|
|
Balinese = Utility::Endianness::fourCC('B', 'a', 'l', 'i'),
|
|
|
|
|
|
|
|
|
|
/** [Bamum](https://en.wikipedia.org/wiki/Bamum_script), Unicode 5.2 */
|
|
|
|
|
Bamum = Utility::Endianness::fourCC('B', 'a', 'm', 'u'),
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* [Bassa Vah](https://en.wikipedia.org/wiki/Bassa_Vah_script), Unicode 7.0
|
|
|
|
|
*/
|
|
|
|
|
BassaVah = Utility::Endianness::fourCC('B', 'a', 's', 's'),
|
|
|
|
|
|
|
|
|
|
/** [Batak](https://en.wikipedia.org/wiki/Batak_script), Unicode 6.0 */
|
|
|
|
|
Batak = Utility::Endianness::fourCC('B', 'a', 't', 'k'),
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* [Bengali](https://en.wikipedia.org/wiki/Bengali%E2%80%93Assamese_script),
|
|
|
|
|
* Unicode 1.0
|
|
|
|
|
*/
|
|
|
|
|
Bengali = Utility::Endianness::fourCC('B', 'e', 'n', 'g'),
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* [Bhaiksuki](https://en.wikipedia.org/wiki/Bhaiksuki_script), Unicode 9.0
|
|
|
|
|
*/
|
|
|
|
|
Bhaiksuki = Utility::Endianness::fourCC('B', 'h', 'k', 's'),
|
|
|
|
|
|
|
|
|
|
/* Blis not in Unicode yet */
|
|
|
|
|
|
|
|
|
|
/** [Bopomofo](https://en.wikipedia.org/wiki/Bopomofo), Unicode 1.0 */
|
|
|
|
|
Bopomofo = Utility::Endianness::fourCC('B', 'o', 'p', 'o'),
|
|
|
|
|
|
|
|
|
|
/** [Brahmi](https://en.wikipedia.org/wiki/Brahmi_script), Unicode 6.0 */
|
|
|
|
|
Brahmi = Utility::Endianness::fourCC('B', 'r', 'a', 'h'),
|
|
|
|
|
|
|
|
|
|
/** [Braille](https://en.wikipedia.org/wiki/Braille), Unicode 3.0 */
|
|
|
|
|
Braille = Utility::Endianness::fourCC('B', 'r', 'a', 'i'),
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* [Buginese](https://en.wikipedia.org/wiki/Lontara_script), Unicode 4.1
|
|
|
|
|
*/
|
|
|
|
|
Buginese = Utility::Endianness::fourCC('B', 'u', 'g', 'i'),
|
|
|
|
|
|
|
|
|
|
/** [Buhid](https://en.wikipedia.org/wiki/Buhid_script), Unicode 3.2 */
|
|
|
|
|
Buhid = Utility::Endianness::fourCC('B', 'u', 'h', 'd'),
|
|
|
|
|
|
|
|
|
|
/** [Chakma](https://en.wikipedia.org/wiki/Chakma_script), Unicode 6.1 */
|
|
|
|
|
Chakma = Utility::Endianness::fourCC('C', 'a', 'k', 'm'),
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* [CanadianAboriginal](https://en.wikipedia.org/wiki/Canadian_Aboriginal_syllabics), Unicode 3.0
|
|
|
|
|
*/
|
|
|
|
|
CanadianAboriginal = Utility::Endianness::fourCC('C', 'a', 'n', 's'),
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* [Carian](https://en.wikipedia.org/wiki/Carian_alphabets), Unicode 5.1
|
|
|
|
|
*/
|
|
|
|
|
Carian = Utility::Endianness::fourCC('C', 'a', 'r', 'i'),
|
|
|
|
|
|
|
|
|
|
/** [Cham](https://en.wikipedia.org/wiki/Cham_script), Unicode 5.1 */
|
|
|
|
|
Cham = Utility::Endianness::fourCC('C', 'h', 'a', 'm'),
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* [Cherokee](https://en.wikipedia.org/wiki/Cherokee_syllabary), Unicode
|
|
|
|
|
* 3.0
|
|
|
|
|
*/
|
|
|
|
|
Cherokee = Utility::Endianness::fourCC('C', 'h', 'e', 'r'),
|
|
|
|
|
|
|
|
|
|
/* Chis not in Unicode yet */
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* [Chorasmian](https://en.wikipedia.org/wiki/Khwarezmian_language#Writing_system),
|
|
|
|
|
* Unicode 13.0
|
|
|
|
|
*/
|
|
|
|
|
Chorasmian = Utility::Endianness::fourCC('C', 'h', 'r', 's'),
|
|
|
|
|
|
|
|
|
|
/* Cirt not in Unicode */
|
|
|
|
|
|
|
|
|
|
/** [Coptic](https://en.wikipedia.org/wiki/Coptic_alphabet), Unicode 1.0 */
|
|
|
|
|
Coptic = Utility::Endianness::fourCC('C', 'o', 'p', 't'),
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* [Cypro Minoan](https://en.wikipedia.org/wiki/Cypro-Minoan_syllabary),
|
|
|
|
|
* Unicode 14.0
|
|
|
|
|
*/
|
|
|
|
|
CyproMinoan = Utility::Endianness::fourCC('C', 'p', 'm', 'n'),
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* [Cypriot](https://en.wikipedia.org/wiki/Cypriot_syllabary), Unicode 4.0
|
|
|
|
|
*/
|
|
|
|
|
Cypriot = Utility::Endianness::fourCC('C', 'p', 'r', 't'),
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* [Cyrillic](https://en.wikipedia.org/wiki/Cyrillic_script), Unicode 1.0
|
|
|
|
|
*/
|
|
|
|
|
Cyrillic = Utility::Endianness::fourCC('C', 'y', 'r', 'l'),
|
|
|
|
|
|
|
|
|
|
/* Cyrs treated as a variant of Cyrl in Unicode */
|
|
|
|
|
|
|
|
|
|
/** [Devanagari](https://en.wikipedia.org/wiki/Devanagari), Unicode 1.0 */
|
|
|
|
|
Devanagari = Utility::Endianness::fourCC('D', 'e', 'v', 'a'),
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* [Dives Akuru](https://en.wikipedia.org/wiki/Dhives_Akuru), Unicode 13.0
|
|
|
|
|
*/
|
|
|
|
|
DivesAkuru = Utility::Endianness::fourCC('D', 'i', 'a', 'k'),
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* [Dogra](https://en.wikipedia.org/wiki/Namem_Dogra_Akkhar), Unicode 11.0
|
|
|
|
|
*/
|
|
|
|
|
Dogra = Utility::Endianness::fourCC('D', 'o', 'g', 'r'),
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* [Deseret](https://en.wikipedia.org/wiki/Deseret_alphabet), Unicode 3.1
|
|
|
|
|
*/
|
|
|
|
|
Deseret = Utility::Endianness::fourCC('D', 's', 'r', 't'),
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* [Duployan](https://en.wikipedia.org/wiki/Duployan_shorthand), Unicode
|
|
|
|
|
* 7.0
|
|
|
|
|
*/
|
|
|
|
|
Duployan = Utility::Endianness::fourCC('D', 'u', 'p', 'l'),
|
|
|
|
|
|
|
|
|
|
/* Egyd and Egyh not in Unicode */
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* [Egyptian Hieroglyphs](https://en.wikipedia.org/wiki/Egyptian_hieroglyphs),
|
|
|
|
|
* Unicode 5.2
|
|
|
|
|
*/
|
|
|
|
|
EgyptianHieroglyphs = Utility::Endianness::fourCC('E', 'g', 'y', 'p'),
|
|
|
|
|
|
|
|
|
|
/** [Elbasan](https://en.wikipedia.org/wiki/Elbasan_script), Unicode 7.0 */
|
|
|
|
|
Elbasan = Utility::Endianness::fourCC('E', 'l', 'b', 'a'),
|
|
|
|
|
|
|
|
|
|
/** [Elymaic](https://en.wikipedia.org/wiki/Elymaic), Unicode 12.0 */
|
|
|
|
|
Elymaic = Utility::Endianness::fourCC('E', 'l', 'y', 'm'),
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* [Ethiopic](https://en.wikipedia.org/wiki/Ge%CA%BDez_script), Unicode 3.0
|
|
|
|
|
*/
|
|
|
|
|
Ethiopic = Utility::Endianness::fourCC('E', 't', 'h', 'i'),
|
|
|
|
|
|
|
|
|
|
/* Gara not in Unicode yet;
|
|
|
|
|
Geok treated as a variant of Geor(?) in Unicode */
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* [Georgian](https://en.wikipedia.org/wiki/Georgian_scripts), Unicode 1.0
|
|
|
|
|
*/
|
|
|
|
|
Georgian = Utility::Endianness::fourCC('G', 'e', 'o', 'r'),
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* [Glagolitic](https://en.wikipedia.org/wiki/Glagolitic_script), Unicode
|
|
|
|
|
* 4.1
|
|
|
|
|
*/
|
|
|
|
|
Glagolitic = Utility::Endianness::fourCC('G', 'l', 'a', 'g'),
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* [Gunjala Gondi](https://en.wikipedia.org/wiki/Gunjala_Gondi_script),
|
|
|
|
|
* Unicode 11.0
|
|
|
|
|
*/
|
|
|
|
|
GunjalaGondi = Utility::Endianness::fourCC('G', 'o', 'n', 'g'),
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* [Masaram Gondi](https://en.wikipedia.org/wiki/Gondi_writing#Masaram),
|
|
|
|
|
* Unicode 10.0
|
|
|
|
|
*/
|
|
|
|
|
MasaramGondi = Utility::Endianness::fourCC('G', 'o', 'n', 'm'),
|
|
|
|
|
|
|
|
|
|
/** [Gothic](https://en.wikipedia.org/wiki/Gothic_alphabet), Unicode 3.1 */
|
|
|
|
|
Gothic = Utility::Endianness::fourCC('G', 'o', 't', 'h'),
|
|
|
|
|
|
|
|
|
|
/** [Grantha](https://en.wikipedia.org/wiki/Grantha_script), Unicode 7.0 */
|
|
|
|
|
Grantha = Utility::Endianness::fourCC('G', 'r', 'a', 'n'),
|
|
|
|
|
|
|
|
|
|
/** [Greek](https://en.wikipedia.org/wiki/Greek_alphabet), Unicode 1.0 */
|
|
|
|
|
Greek = Utility::Endianness::fourCC('G', 'r', 'e', 'k'),
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* [Gujarati](https://en.wikipedia.org/wiki/Gujarati_script), Unicode 1.0
|
|
|
|
|
*/
|
|
|
|
|
Gujarati = Utility::Endianness::fourCC('G', 'u', 'j', 'r'),
|
|
|
|
|
|
|
|
|
|
/* Gukh not in Unicode yet */
|
|
|
|
|
|
|
|
|
|
/** [Gurmukhi](https://en.wikipedia.org/wiki/Gurmukhi), Unicode 1.0 */
|
|
|
|
|
Gurmukhi = Utility::Endianness::fourCC('G', 'u', 'r', 'u'),
|
|
|
|
|
|
|
|
|
|
/* Hanb treated as a mixture of Hani and Bopo in Unicode */
|
|
|
|
|
|
|
|
|
|
/** [Hangul](https://en.wikipedia.org/wiki/Hangul), Unicode 1.0 */
|
|
|
|
|
Hangul = Utility::Endianness::fourCC('H', 'a', 'n', 'g'),
|
|
|
|
|
|
|
|
|
|
/** [Han](https://en.wikipedia.org/wiki/Chinese_characters), Unicode 1.0 */
|
|
|
|
|
Han = Utility::Endianness::fourCC('H', 'a', 'n', 'i'),
|
|
|
|
|
|
|
|
|
|
/** [Hanunoo](https://en.wikipedia.org/wiki/Hanunoo_script), Unicode 3.2 */
|
|
|
|
|
Hanunoo = Utility::Endianness::fourCC('H', 'a', 'n', 'o'),
|
|
|
|
|
|
|
|
|
|
/* Hans, Hant treated as a subset of Hani in Unicode */
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* [Hatran](https://en.wikipedia.org/wiki/Hatran_Aramaic#Alphabet), Unicode
|
|
|
|
|
* 8.0
|
|
|
|
|
*/
|
|
|
|
|
Hatran = Utility::Endianness::fourCC('H', 'a', 't', 'r'),
|
|
|
|
|
|
|
|
|
|
/** [Hebrew](https://en.wikipedia.org/wiki/Hebrew_alphabet), Unicode 1.0 */
|
|
|
|
|
Hebrew = Utility::Endianness::fourCC('H', 'e', 'b', 'r'),
|
|
|
|
|
|
|
|
|
|
/** [Hiragana](https://en.wikipedia.org/wiki/Hiragana), Unicode 1.0 */
|
|
|
|
|
Hiragana = Utility::Endianness::fourCC('H', 'i', 'r', 'a'),
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* [Anatolian Hieroglyphs](https://en.wikipedia.org/wiki/Anatolian_hieroglyphs),
|
|
|
|
|
* Unicode 8.0
|
|
|
|
|
*/
|
|
|
|
|
AnatolianHieroglyphs = Utility::Endianness::fourCC('H', 'l', 'u', 'w'),
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* [Pahawh Hmong](https://en.wikipedia.org/wiki/Pahawh_Hmong), Unicode 7.0
|
|
|
|
|
*/
|
|
|
|
|
PahawhHmong = Utility::Endianness::fourCC('H', 'm', 'n', 'g'),
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* [Nyiakeng Puachue Hmong](https://en.wikipedia.org/wiki/Nyiakeng_Puachue_Hmong),
|
|
|
|
|
* Unicode 12.0
|
|
|
|
|
*/
|
|
|
|
|
NyiakengPuachueHmong = Utility::Endianness::fourCC('H', 'm', 'n', 'p'),
|
|
|
|
|
|
|
|
|
|
/* Hrkt treated as an mixture of Hira and Kana in Unicode */
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* [Old Hungarian](https://en.wikipedia.org/wiki/Old_Hungarian_script),
|
|
|
|
|
* Unicode 8.0
|
|
|
|
|
*/
|
|
|
|
|
OldHungarian = Utility::Endianness::fourCC('H', 'u', 'n', 'g'),
|
|
|
|
|
|
|
|
|
|
/* Inds not in Unicode yet */
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* [Old Italic](https://en.wikipedia.org/wiki/Old_Italic_scripts), Unicode
|
|
|
|
|
* 3.1
|
|
|
|
|
*/
|
|
|
|
|
OldItalic = Utility::Endianness::fourCC('I', 't', 'a', 'l'),
|
|
|
|
|
|
|
|
|
|
/* Jamo treated as a subset of Hang in Unicode */
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* [Javanese](https://en.wikipedia.org/wiki/Javanese_script), Unicode 5.2
|
|
|
|
|
*/
|
|
|
|
|
Javanese = Utility::Endianness::fourCC('J', 'a', 'v', 'a'),
|
|
|
|
|
|
|
|
|
|
/* Jpan treated as a mixture of Hani, Hira and Kana in Unicode;
|
|
|
|
|
Jurc not in Unicode yet */
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* [Kayah Li](https://en.wikipedia.org/wiki/Kayah_Li_alphabet), Unicode 5.1
|
|
|
|
|
*/
|
|
|
|
|
KayahLi = Utility::Endianness::fourCC('K', 'a', 'l', 'i'),
|
|
|
|
|
|
|
|
|
|
/** [Katakana](https://en.wikipedia.org/wiki/Katakana), Unicode 1.0 */
|
|
|
|
|
Katakana = Utility::Endianness::fourCC('K', 'a', 'n', 'a'),
|
|
|
|
|
|
|
|
|
|
/** [Kawi](https://en.wikipedia.org/wiki/Kawi_script), Unicode 15.0 */
|
|
|
|
|
Kawi = Utility::Endianness::fourCC('K', 'a', 'w', 'i'),
|
|
|
|
|
|
|
|
|
|
/** [Kharoshthi](https://en.wikipedia.org/wiki/Kharosthi), Unicode 4.1 */
|
|
|
|
|
Kharoshthi = Utility::Endianness::fourCC('K', 'h', 'a', 'r'),
|
|
|
|
|
|
|
|
|
|
/** [Khmer](https://en.wikipedia.org/wiki/Khmer_script), Unicode 3.0 */
|
|
|
|
|
Khmer = Utility::Endianness::fourCC('K', 'h', 'm', 'r'),
|
|
|
|
|
|
|
|
|
|
/** [Khojki](https://en.wikipedia.org/wiki/Khojki_script), Unicode 7.0 */
|
|
|
|
|
Khojki = Utility::Endianness::fourCC('K', 'h', 'o', 'j'),
|
|
|
|
|
|
|
|
|
|
/* Kitl not in Unicode */
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* [Khitan Small Script](https://en.wikipedia.org/wiki/Khitan_small_script),
|
|
|
|
|
* Unicode 13.0
|
|
|
|
|
*/
|
|
|
|
|
KhitanSmallScript = Utility::Endianness::fourCC('K', 'i', 't', 's'),
|
|
|
|
|
|
|
|
|
|
/** [Kannada](https://en.wikipedia.org/wiki/Kannada_script), Unicode 1.0 */
|
|
|
|
|
Kannada = Utility::Endianness::fourCC('K', 'n', 'd', 'a'),
|
|
|
|
|
|
|
|
|
|
/* Kore treated as a mixture of Hani and Hang in Unicode;
|
|
|
|
|
Kpel, Krai not in Unicode yet */
|
|
|
|
|
|
|
|
|
|
/** [Kaithi](https://en.wikipedia.org/wiki/Kaithi), Unicode 5.2 */
|
|
|
|
|
Kaithi = Utility::Endianness::fourCC('K', 't', 'h', 'i'),
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* [Tai Tham](https://en.wikipedia.org/wiki/Tai_Tham_script), Unicode 5.2
|
|
|
|
|
*/
|
|
|
|
|
TaiTham = Utility::Endianness::fourCC('L', 'a', 'n', 'a'),
|
|
|
|
|
|
|
|
|
|
/** [Lao](https://en.wikipedia.org/wiki/Lao_script), Unicode 1.0 */
|
|
|
|
|
Lao = Utility::Endianness::fourCC('L', 'a', 'o', 'o'),
|
|
|
|
|
|
|
|
|
|
/* Latf, Latg treated as a variant of Latn in Unicode */
|
|
|
|
|
|
|
|
|
|
/** [Latin](https://en.wikipedia.org/wiki/Latin_script), Unicode 1.0 */
|
|
|
|
|
Latin = Utility::Endianness::fourCC('L', 'a', 't', 'n'),
|
|
|
|
|
|
|
|
|
|
/* Leke not in Unicode */
|
|
|
|
|
|
|
|
|
|
/** [Lepcha](https://en.wikipedia.org/wiki/Lepcha_script), Unicode 5.1 */
|
|
|
|
|
Lepcha = Utility::Endianness::fourCC('L', 'e', 'p', 'c'),
|
|
|
|
|
|
|
|
|
|
/** [Limbu](https://en.wikipedia.org/wiki/Limbu_script), Unicode 4.0 */
|
|
|
|
|
Limbu = Utility::Endianness::fourCC('L', 'i', 'm', 'b'),
|
|
|
|
|
|
|
|
|
|
/** [Linear A](https://en.wikipedia.org/wiki/Linear_A), Unicode 7.0 */
|
|
|
|
|
LinearA = Utility::Endianness::fourCC('L', 'i', 'n', 'a'),
|
|
|
|
|
|
|
|
|
|
/** [Linear B](https://en.wikipedia.org/wiki/Linear_B), Unicode 4.0 */
|
|
|
|
|
LinearB = Utility::Endianness::fourCC('L', 'i', 'n', 'b'),
|
|
|
|
|
|
|
|
|
|
/** [Lisu](https://en.wikipedia.org/wiki/Fraser_script), Unicode 5.2 */
|
|
|
|
|
Lisu = Utility::Endianness::fourCC('L', 'i', 's', 'u'),
|
|
|
|
|
|
|
|
|
|
/* Loma not in Unicode yet */
|
|
|
|
|
|
|
|
|
|
/** [Lycian](https://en.wikipedia.org/wiki/Lycian_alphabet), Unicode 5.1 */
|
|
|
|
|
Lycian = Utility::Endianness::fourCC('L', 'y', 'c', 'i'),
|
|
|
|
|
|
|
|
|
|
/** [Lydian](https://en.wikipedia.org/wiki/Lydian_alphabet), Unicode 5.1 */
|
|
|
|
|
Lydian = Utility::Endianness::fourCC('L', 'y', 'd', 'i'),
|
|
|
|
|
|
|
|
|
|
/** [Mahajani](https://en.wikipedia.org/wiki/Mahajani), Unicode 7.0 */
|
|
|
|
|
Mahajani = Utility::Endianness::fourCC('M', 'a', 'h', 'j'),
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* [Makasar](https://en.wikipedia.org/wiki/Makasar_script), Unicode 11.0
|
|
|
|
|
*/
|
|
|
|
|
Makasar = Utility::Endianness::fourCC('M', 'a', 'k', 'a'),
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* [Mandaic](https://en.wikipedia.org/wiki/Mandaic_alphabet), Unicode 6.0
|
|
|
|
|
*/
|
|
|
|
|
Mandaic = Utility::Endianness::fourCC('M', 'a', 'n', 'd'),
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* [Manichaean](https://en.wikipedia.org/wiki/Manichaean_script), Unicode
|
|
|
|
|
* 7.0
|
|
|
|
|
*/
|
|
|
|
|
Manichaean = Utility::Endianness::fourCC('M', 'a', 'n', 'i'),
|
|
|
|
|
|
|
|
|
|
/** [Marchen](https://en.wikipedia.org/wiki/Marchen_script), Unicode 9.0 */
|
|
|
|
|
Marchen = Utility::Endianness::fourCC('M', 'a', 'r', 'c'),
|
|
|
|
|
|
|
|
|
|
/* Maya not in Unicode */
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* [Medefaidrin](https://en.wikipedia.org/wiki/Medefaidrin), Unicode 11.0
|
|
|
|
|
*/
|
|
|
|
|
Medefaidrin = Utility::Endianness::fourCC('M', 'e', 'd', 'f'),
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* [Mende Kikakui](https://en.wikipedia.org/wiki/Mende_Kikakui_script),
|
|
|
|
|
* Unicode 7.0
|
|
|
|
|
*/
|
|
|
|
|
MendeKikakui = Utility::Endianness::fourCC('M', 'e', 'n', 'd'),
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* [Meroitic Cursive](https://en.wikipedia.org/wiki/Meroitic_script),
|
|
|
|
|
* Unicode 6.1
|
|
|
|
|
*/
|
|
|
|
|
MeroiticCursive = Utility::Endianness::fourCC('M', 'e', 'r', 'c'),
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* [Meroitic Hieroglyphs](https://en.wikipedia.org/wiki/Meroitic_script),
|
|
|
|
|
* Unicode 6.1
|
|
|
|
|
*/
|
|
|
|
|
MeroiticHieroglyphs = Utility::Endianness::fourCC('M', 'e', 'r', 'o'),
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* [Malayalam](https://en.wikipedia.org/wiki/Malayalam_script), Unicode 1.0
|
|
|
|
|
*/
|
|
|
|
|
Malayalam = Utility::Endianness::fourCC('M', 'l', 'y', 'm'),
|
|
|
|
|
|
|
|
|
|
/** [Modi](https://en.wikipedia.org/wiki/Modi_script), Unicode 7.0 */
|
|
|
|
|
Modi = Utility::Endianness::fourCC('M', 'o', 'd', 'i'),
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* [Mongolian](https://en.wikipedia.org/wiki/Mongolian_script), Unicode 3.0
|
|
|
|
|
*/
|
|
|
|
|
Mongolian = Utility::Endianness::fourCC('M', 'o', 'n', 'g'),
|
|
|
|
|
|
|
|
|
|
/* Moon not in Unicode yet */
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* [Mro](https://en.wikipedia.org/wiki/Mru_language#Script), Unicode 7.0
|
|
|
|
|
*/
|
|
|
|
|
Mro = Utility::Endianness::fourCC('M', 'r', 'o', 'o'),
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* [Meetei Mayek](https://en.wikipedia.org/wiki/Meitei_script), Unicode 5.2
|
|
|
|
|
*/
|
|
|
|
|
MeeteiMayek = Utility::Endianness::fourCC('M', 't', 'e', 'i'),
|
|
|
|
|
|
|
|
|
|
/** [Multani](https://en.wikipedia.org/wiki/Multani_script), Unicode 8.0 */
|
|
|
|
|
Multani = Utility::Endianness::fourCC('M', 'u', 'l', 't'),
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* [Myanmar](https://en.wikipedia.org/wiki/Mon%E2%80%93Burmese_script),
|
|
|
|
|
* Unicode 3.0
|
|
|
|
|
*/
|
|
|
|
|
Myanmar = Utility::Endianness::fourCC('M', 'y', 'm', 'r'),
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* [Nag Mundari](https://en.wikipedia.org/wiki/Mundari_Bani), Unicode 15.0
|
|
|
|
|
*/
|
|
|
|
|
NagMundari = Utility::Endianness::fourCC('N', 'a', 'g', 'm'),
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* [Nandinagari](https://en.wikipedia.org/wiki/Nandinagari), Unicode 12.0
|
|
|
|
|
*/
|
|
|
|
|
Nandinagari = Utility::Endianness::fourCC('N', 'a', 'n', 'd'),
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* [Old North Arabian](https://en.wikipedia.org/wiki/Ancient_North_Arabian),
|
|
|
|
|
* Unicode 7.0
|
|
|
|
|
*/
|
|
|
|
|
OldNorthArabian = Utility::Endianness::fourCC('N', 'a', 'r', 'b'),
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* [Nabataean](https://en.wikipedia.org/wiki/Nabataean_alphabet), Unicode
|
|
|
|
|
* 7.0
|
|
|
|
|
*/
|
|
|
|
|
Nabataean = Utility::Endianness::fourCC('N', 'b', 'a', 't'),
|
|
|
|
|
|
|
|
|
|
/** [Newa](https://en.wikipedia.org/wiki/Pracalit_script), Unicode 9.0 */
|
|
|
|
|
Newa = Utility::Endianness::fourCC('N', 'e', 'w', 'a'),
|
|
|
|
|
|
|
|
|
|
/* Nkdb not in Unicode;
|
|
|
|
|
Nkgb not in Unicode yet */
|
|
|
|
|
|
|
|
|
|
/** [NKo](https://en.wikipedia.org/wiki/N%27Ko_script), Unicode 5.0 */
|
|
|
|
|
NKo = Utility::Endianness::fourCC('N', 'k', 'o', 'o'),
|
|
|
|
|
|
|
|
|
|
/** [Nushu](https://en.wikipedia.org/wiki/N%C3%BCshu), Unicode 10.0 */
|
|
|
|
|
Nushu = Utility::Endianness::fourCC('N', 's', 'h', 'u'),
|
|
|
|
|
|
|
|
|
|
/** [Ogham](https://en.wikipedia.org/wiki/Ogham), Unicode 3.0 */
|
|
|
|
|
Ogham = Utility::Endianness::fourCC('O', 'g', 'a', 'm'),
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* [Ol Chiki](https://en.wikipedia.org/wiki/Ol_Chiki_script), Unicode 5.1
|
|
|
|
|
*/
|
|
|
|
|
OlChiki = Utility::Endianness::fourCC('O', 'l', 'c', 'k'),
|
|
|
|
|
|
|
|
|
|
/* Onao not in Unicode yet */
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* [Old Turkic](https://en.wikipedia.org/wiki/Old_Turkic_script), Unicode
|
|
|
|
|
* 5.2
|
|
|
|
|
*/
|
|
|
|
|
OldTurkic = Utility::Endianness::fourCC('O', 'r', 'k', 'h'),
|
|
|
|
|
|
|
|
|
|
/** [Oriya](https://en.wikipedia.org/wiki/Odia_script), Unicode 1.0 */
|
|
|
|
|
Oriya = Utility::Endianness::fourCC('O', 'r', 'y', 'a'),
|
|
|
|
|
|
|
|
|
|
/** [Osage](https://en.wikipedia.org/wiki/Osage_script), Unicode 9.0 */
|
|
|
|
|
Osage = Utility::Endianness::fourCC('O', 's', 'g', 'e'),
|
|
|
|
|
|
|
|
|
|
/** [Osmanya](https://en.wikipedia.org/wiki/Osmanya_script), Unicode 4.0 */
|
|
|
|
|
Osmanya = Utility::Endianness::fourCC('O', 's', 'm', 'a'),
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* [Old Uyghur](https://en.wikipedia.org/wiki/Old_Uyghur_alphabet), Unicode
|
|
|
|
|
* 14.0
|
|
|
|
|
*/
|
|
|
|
|
OldUyghur = Utility::Endianness::fourCC('O', 'u', 'g', 'r'),
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* [Palmyrene](https://en.wikipedia.org/wiki/Palmyrene_alphabet), Unicode
|
|
|
|
|
* 7.0
|
|
|
|
|
*/
|
|
|
|
|
Palmyrene = Utility::Endianness::fourCC('P', 'a', 'l', 'm'),
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* [Pau Cin Hau](https://en.wikipedia.org/wiki/Pau_Cin_Hau_script), Unicode
|
|
|
|
|
* 7.0
|
|
|
|
|
*/
|
|
|
|
|
PauCinHau = Utility::Endianness::fourCC('P', 'a', 'u', 'c'),
|
|
|
|
|
|
|
|
|
|
/* Pcun, Pelm not in Unicode */
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* [Old Permic](https://en.wikipedia.org/wiki/Old_Permic_script), Unicode
|
|
|
|
|
* 7.0
|
|
|
|
|
*/
|
|
|
|
|
OldPermic = Utility::Endianness::fourCC('P', 'e', 'r', 'm'),
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* [Phags-pa](https://en.wikipedia.org/wiki/%CA%BCPhags-pa_script), Unicode
|
|
|
|
|
* 5.0
|
|
|
|
|
*/
|
|
|
|
|
PhagsPa = Utility::Endianness::fourCC('P', 'h', 'a', 'g'),
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* [Inscriptional Pahlavi](https://en.wikipedia.org/wiki/Inscriptional_Pahlavi),
|
|
|
|
|
* Unicode 5.2
|
|
|
|
|
*/
|
|
|
|
|
InscriptionalPahlavi = Utility::Endianness::fourCC('P', 'h', 'l', 'i'),
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* [Psalter Pahlavi](https://en.wikipedia.org/wiki/Psalter_Pahlavi),
|
|
|
|
|
* Unicode 7.0
|
|
|
|
|
*/
|
|
|
|
|
PsalterPahlavi = Utility::Endianness::fourCC('P', 'h', 'l', 'p'),
|
|
|
|
|
|
|
|
|
|
/* Phlv not in Unicode */
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* [Phoenician](https://en.wikipedia.org/wiki/Phoenician_alphabet), Unicode
|
|
|
|
|
* 5.0
|
|
|
|
|
*/
|
|
|
|
|
Phoenician = Utility::Endianness::fourCC('P', 'h', 'n', 'x'),
|
|
|
|
|
|
|
|
|
|
/* Piqd rejected from inclusion in Unicode */
|
|
|
|
|
|
|
|
|
|
/** [Miao](https://en.wikipedia.org/wiki/Pollard_script), Unicode 6.1 */
|
|
|
|
|
Miao = Utility::Endianness::fourCC('P', 'l', 'r', 'd'),
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* [InscriptionalParthian](https://en.wikipedia.org/wiki/Inscriptional_Parthian),
|
|
|
|
|
* Unicode 5.2
|
|
|
|
|
*/
|
|
|
|
|
InscriptionalParthian = Utility::Endianness::fourCC('P', 'r', 't', 'i'),
|
|
|
|
|
|
|
|
|
|
/* Psin, Ranj not in Unicode */
|
|
|
|
|
|
|
|
|
|
/** [Rejang](https://en.wikipedia.org/wiki/Rejang_script), Unicode 5.1 */
|
|
|
|
|
Rejang = Utility::Endianness::fourCC('R', 'j', 'n', 'g'),
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* [Hanifi Rohingya](https://en.wikipedia.org/wiki/Hanifi_Rohingya_script),
|
|
|
|
|
* Unicode 11.0
|
|
|
|
|
*/
|
|
|
|
|
HanifiRohingya = Utility::Endianness::fourCC('R', 'o', 'h', 'g'),
|
|
|
|
|
|
|
|
|
|
/* Roro not in Unicode yet */
|
|
|
|
|
|
|
|
|
|
/** [Runic](https://en.wikipedia.org/wiki/Runes), Unicode 3.0 */
|
|
|
|
|
Runic = Utility::Endianness::fourCC('R', 'u', 'n', 'r'),
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* [Samaritan](https://en.wikipedia.org/wiki/Samaritan_script), Unicode 5.2
|
|
|
|
|
*/
|
|
|
|
|
Samaritan = Utility::Endianness::fourCC('S', 'a', 'm', 'r'),
|
|
|
|
|
|
|
|
|
|
/* Sara not in Unicode */
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* [Old South Arabian](https://en.wikipedia.org/wiki/Ancient_South_Arabian_script),
|
|
|
|
|
* Unicode 5.2
|
|
|
|
|
*/
|
|
|
|
|
OldSouthArabian = Utility::Endianness::fourCC('S', 'a', 'r', 'b'),
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* [Saurashtra](https://en.wikipedia.org/wiki/Saurashtra_script), Unicode
|
|
|
|
|
* 5.1
|
|
|
|
|
*/
|
|
|
|
|
Saurashtra = Utility::Endianness::fourCC('S', 'a', 'u', 'r'),
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* [SignWriting](https://en.wikipedia.org/wiki/SignWriting), Unicode 8.0
|
|
|
|
|
*/
|
|
|
|
|
SignWriting = Utility::Endianness::fourCC('S', 'g', 'n', 'w'),
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* [Shavian](https://en.wikipedia.org/wiki/Shavian_alphabet), Unicode 4.0
|
|
|
|
|
*/
|
|
|
|
|
Shavian = Utility::Endianness::fourCC('S', 'h', 'a', 'w'),
|
|
|
|
|
|
|
|
|
|
/** [Sharada](https://en.wikipedia.org/wiki/Sharada_script), Unicode 6.1 */
|
|
|
|
|
Sharada = Utility::Endianness::fourCC('S', 'h', 'r', 'd'),
|
|
|
|
|
|
|
|
|
|
/* Shui not in Unicode */
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* [Siddham](https://en.wikipedia.org/wiki/Siddha%E1%B9%83_script), Unicode
|
|
|
|
|
* 7.0
|
|
|
|
|
*/
|
|
|
|
|
Siddham = Utility::Endianness::fourCC('S', 'i', 'd', 'd'),
|
|
|
|
|
|
|
|
|
|
/* Sidt not in Unicode yet */
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* [Khudawadi](https://en.wikipedia.org/wiki/Khudabadi_script), Unicode 7.0
|
|
|
|
|
*/
|
|
|
|
|
Khudawadi = Utility::Endianness::fourCC('S', 'i', 'n', 'd'),
|
|
|
|
|
|
|
|
|
|
/** [Sinhala](https://en.wikipedia.org/wiki/Sinhala_script), Unicode 3.0 */
|
|
|
|
|
Sinhala = Utility::Endianness::fourCC('S', 'i', 'n', 'h'),
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* [Sogdian](https://en.wikipedia.org/wiki/Sogdian_alphabet), Unicode 11.0
|
|
|
|
|
*/
|
|
|
|
|
Sogdian = Utility::Endianness::fourCC('S', 'o', 'g', 'd'),
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* [Old Sogdian](https://en.wikipedia.org/wiki/Sogdian_alphabet), Unicode
|
|
|
|
|
* 11.0
|
|
|
|
|
*/
|
|
|
|
|
OldSogdian = Utility::Endianness::fourCC('S', 'o', 'g', 'o'),
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* [Sora Sompeng](https://en.wikipedia.org/wiki/Sorang_Sompeng_script),
|
|
|
|
|
* Unicode 6.1
|
|
|
|
|
*/
|
|
|
|
|
SoraSompeng = Utility::Endianness::fourCC('S', 'o', 'r', 'a'),
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* [Soyombo](https://en.wikipedia.org/wiki/Soyombo_script), Unicode 10.0
|
|
|
|
|
*/
|
|
|
|
|
Soyombo = Utility::Endianness::fourCC('S', 'o', 'y', 'o'),
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* [Sundanese](https://en.wikipedia.org/wiki/Sundanese_script), Unicode 5.1
|
|
|
|
|
*/
|
|
|
|
|
Sundanese = Utility::Endianness::fourCC('S', 'u', 'n', 'd'),
|
|
|
|
|
|
|
|
|
|
/* Sunu not in Unicode yet */
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* [Syloti Nagri](https://en.wikipedia.org/wiki/Sylheti_Nagri), Unicode 4.1
|
|
|
|
|
*/
|
|
|
|
|
SylotiNagri = Utility::Endianness::fourCC('S', 'y', 'l', 'o'),
|
|
|
|
|
|
|
|
|
|
/** [Syriac](https://en.wikipedia.org/wiki/Syriac_alphabet), Unicode 3.0 */
|
|
|
|
|
Syriac = Utility::Endianness::fourCC('S', 'y', 'r', 'c'),
|
|
|
|
|
|
|
|
|
|
/* Syre, Syrj, Syrn treated as a variant of Syrc in Unicode */
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* [Tagbanwa](https://en.wikipedia.org/wiki/Tagbanwa_script), Unicode 3.2
|
|
|
|
|
*/
|
|
|
|
|
Tagbanwa = Utility::Endianness::fourCC('T', 'a', 'g', 'b'),
|
|
|
|
|
|
|
|
|
|
/** [Takri](https://en.wikipedia.org/wiki/Takri_script), Unicode 6.1 */
|
|
|
|
|
Takri = Utility::Endianness::fourCC('T', 'a', 'k', 'r'),
|
|
|
|
|
|
|
|
|
|
/** [Tai Le](https://en.wikipedia.org/wiki/Tai_Le_script), Unicode 4.0 */
|
|
|
|
|
TaiLe = Utility::Endianness::fourCC('T', 'a', 'l', 'e'),
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* [New Tai Lue](https://en.wikipedia.org/wiki/New_Tai_Lue_alphabet),
|
|
|
|
|
* Unicode 4.1
|
|
|
|
|
*/
|
|
|
|
|
NewTaiLue = Utility::Endianness::fourCC('T', 'a', 'l', 'u'),
|
|
|
|
|
|
|
|
|
|
/** [Tamil](https://en.wikipedia.org/wiki/Tamil_script), Unicode 1.0 */
|
|
|
|
|
Tamil = Utility::Endianness::fourCC('T', 'a', 'm', 'l'),
|
|
|
|
|
|
|
|
|
|
/** [Tangut](https://en.wikipedia.org/wiki/Tangut_script), Unicode 9.0 */
|
|
|
|
|
Tangut = Utility::Endianness::fourCC('T', 'a', 'n', 'g'),
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* [Tai Viet](https://en.wikipedia.org/wiki/Tai_Viet_script), Unicode 5.2
|
|
|
|
|
*/
|
|
|
|
|
TaiViet = Utility::Endianness::fourCC('T', 'a', 'v', 't'),
|
|
|
|
|
|
|
|
|
|
/* Tayo not in Unicode yet */
|
|
|
|
|
|
|
|
|
|
/** [Telugu](https://en.wikipedia.org/wiki/Telugu_script), Unicode 1.0 */
|
|
|
|
|
Telugu = Utility::Endianness::fourCC('T', 'e', 'l', 'u'),
|
|
|
|
|
|
|
|
|
|
/* Teng not in Unicode */
|
|
|
|
|
|
|
|
|
|
/** [Tifinagh](https://en.wikipedia.org/wiki/Tifinagh), Unicode 4.1 */
|
|
|
|
|
Tifinagh = Utility::Endianness::fourCC('T', 'f', 'n', 'g'),
|
|
|
|
|
|
|
|
|
|
/** [Tagalog](https://en.wikipedia.org/wiki/Baybayin), Unicode 3.2 */
|
|
|
|
|
Tagalog = Utility::Endianness::fourCC('T', 'g', 'l', 'g'),
|
|
|
|
|
|
|
|
|
|
/** [Thaana](https://en.wikipedia.org/wiki/Thaana), Unicode 3.0 */
|
|
|
|
|
Thaana = Utility::Endianness::fourCC('T', 'h', 'a', 'a'),
|
|
|
|
|
|
|
|
|
|
/** [Thai](https://en.wikipedia.org/wiki/Thai_script), Unicode 1.0 */
|
|
|
|
|
Thai = Utility::Endianness::fourCC('T', 'h', 'a', 'i'),
|
|
|
|
|
|
|
|
|
|
/** [Tibetan](https://en.wikipedia.org/wiki/Tibetan_script), Unicode 2.0 */
|
|
|
|
|
Tibetan = Utility::Endianness::fourCC('T', 'i', 'b', 't'),
|
|
|
|
|
|
|
|
|
|
/** [Tirhuta](https://en.wikipedia.org/wiki/Tirhuta_script), Unicode 7.0 */
|
|
|
|
|
Tirhuta = Utility::Endianness::fourCC('T', 'i', 'r', 'h'),
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* [Tangsa](https://en.wikipedia.org/wiki/Tangsa_language#Orthography),
|
|
|
|
|
* Unicode 14.0
|
|
|
|
|
*/
|
|
|
|
|
Tangsa = Utility::Endianness::fourCC('T', 'n', 's', 'a'),
|
|
|
|
|
|
|
|
|
|
/* Todr, Tols not in Unicode yet */
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* [Toto](https://en.wikipedia.org/wiki/Toto_language#Writing_system),
|
|
|
|
|
* Unicode 14.0
|
|
|
|
|
*/
|
|
|
|
|
Toto = Utility::Endianness::fourCC('T', 'o', 't', 'o'),
|
|
|
|
|
|
|
|
|
|
/* Tutg not in Unicode yet */
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* [Ugaritic](https://en.wikipedia.org/wiki/Ugaritic_alphabet), Unicode 4.0
|
|
|
|
|
*/
|
|
|
|
|
Ugaritic = Utility::Endianness::fourCC('U', 'g', 'a', 'r'),
|
|
|
|
|
|
|
|
|
|
/** [Vai](https://en.wikipedia.org/wiki/Vai_syllabary), Unicode 5.1 */
|
|
|
|
|
Vai = Utility::Endianness::fourCC('V', 'a', 'i', 'i'),
|
|
|
|
|
|
|
|
|
|
/* Visp not in Unicode */
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* [Vithkuqi](https://en.wikipedia.org/wiki/Vithkuqi_script), Unicode 14.0
|
|
|
|
|
*/
|
|
|
|
|
Vithkuqi = Utility::Endianness::fourCC('V', 'i', 't', 'h'),
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* [Warang Citi](https://en.wikipedia.org/wiki/Warang_Citi), Unicode 7.0
|
|
|
|
|
*/
|
|
|
|
|
WarangCiti = Utility::Endianness::fourCC('W', 'a', 'r', 'a'),
|
|
|
|
|
|
|
|
|
|
/** [Wancho](https://en.wikipedia.org/wiki/Wancho_script), Unicode 12.0 */
|
|
|
|
|
Wancho = Utility::Endianness::fourCC('W', 'c', 'h', 'o'),
|
|
|
|
|
|
|
|
|
|
/* Wole not in Unicode yet */
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* [Old Persian](https://en.wikipedia.org/wiki/Old_Persian_cuneiform),
|
|
|
|
|
* Unicode 4.1
|
|
|
|
|
*/
|
|
|
|
|
OldPersian = Utility::Endianness::fourCC('X', 'p', 'e', 'o'),
|
|
|
|
|
|
|
|
|
|
/** [Cuneiform](https://en.wikipedia.org/wiki/Cuneiform), Unicode 5.0 */
|
|
|
|
|
Cuneiform = Utility::Endianness::fourCC('X', 's', 'u', 'x'),
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* [Yezidi](https://en.wikipedia.org/wiki/Kurdish_alphabets#Yezidi),
|
|
|
|
|
* Unicode 13.0
|
|
|
|
|
*/
|
|
|
|
|
Yezidi = Utility::Endianness::fourCC('Y', 'e', 'z', 'i'),
|
|
|
|
|
|
|
|
|
|
/** [Yi](https://en.wikipedia.org/wiki/Yi_script), Unicode 3.0 */
|
|
|
|
|
Yi = Utility::Endianness::fourCC('Y', 'i', 'i', 'i'),
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* [Zanabazar Square](https://en.wikipedia.org/wiki/Zanabazar_square_script),
|
|
|
|
|
* Unicode 10.0
|
|
|
|
|
*/
|
|
|
|
|
ZanabazarSquare = Utility::Endianness::fourCC('Z', 'a', 'n', 'b'),
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
/** @debugoperatorenum{Script} */
|
|
|
|
|
MAGNUM_TEXT_EXPORT Debug& operator<<(Debug& debug, Script value);
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
@brief Create a @ref Script value from a four-character code
|
|
|
|
|
@m_since_latest
|
|
|
|
|
|
|
|
|
|
Delegates to @ref Utility::Endianness::fourCC(). Doesn't perform any validity
|
|
|
|
|
check on the input, i.e. it's possible to create a code that isn't listed in
|
|
|
|
|
[ISO 15924](https://en.wikipedia.org/wiki/ISO_15924) or even a code with
|
|
|
|
|
non-ASCII characters.
|
|
|
|
|
@see @ref script(Containers::StringView)
|
|
|
|
|
*/
|
|
|
|
|
constexpr Script script(char a, char b, char c, char d) {
|
|
|
|
|
return Script(Utility::Endianness::fourCC(a, b, c, d));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
@brief Create a @ref Script value from a string
|
|
|
|
|
@m_since_latest
|
|
|
|
|
|
|
|
|
|
Expects that the string has exactly four bytes. Other than that doesn't perform
|
|
|
|
|
any validity check on the input, i.e. it's possible to create a code that isn't
|
|
|
|
|
listed in [ISO 15924](https://en.wikipedia.org/wiki/ISO_15924) or even a code
|
|
|
|
|
with non-ASCII characters.
|
|
|
|
|
@see @ref script(char, char, char, char)
|
|
|
|
|
*/
|
|
|
|
|
MAGNUM_TEXT_EXPORT Script script(Containers::StringView fourCC);
|
|
|
|
|
|
|
|
|
|
}}
|
|
|
|
|
|
|
|
|
|
#endif
|