Anforderungen  |   Konzepte  |   Entwurf  |   Entwicklung  |   Qualitätssicherung  |   Lebenszyklus  |   Steuerung
 
 
 
 


Quelle  SkOTTable_name.h   Sprache: C

 
/*
 * Copyright 2012 Google Inc.
 *
 * Use of this source code is governed by a BSD-style license that can be
 * found in the LICENSE file.
 */


#ifndef SkOTTable_name_DEFINED
#define SkOTTable_name_DEFINED

#include "include/core/SkString.h"
#include "src/base/SkEndian.h"
#include "src/sfnt/SkOTTableTypes.h"

#pragma pack(push, 1)

struct SkOTTableName {
    static const SK_OT_CHAR TAG0 = 'n';
    static const SK_OT_CHAR TAG1 = 'a';
    static const SK_OT_CHAR TAG2 = 'm';
    static const SK_OT_CHAR TAG3 = 'e';
    static const SK_OT_ULONG TAG = SkOTTableTAG<SkOTTableName>::value;

    SK_OT_USHORT format;
    static const SK_OT_USHORT format_0 = SkTEndian_SwapBE16(0);
    /** Format 1 was added in OpenType 1.6 (April 2009). */
    static const SK_OT_USHORT format_1 = SkTEndian_SwapBE16(1);

    /** The number of name records which follow. */
    SK_OT_USHORT count;

    /** Offset in SK_OT_BYTEs to start of string storage area (from start of table). */
    SK_OT_USHORT stringOffset;

    struct Record {
        /** The platform ID specifies how to interpret the encoding and language ID. */
        struct PlatformID {
            enum Value : SK_OT_USHORT {
                Unicode = SkTEndian_SwapBE16(0),
                Macintosh = SkTEndian_SwapBE16(1),
                ISO = SkTEndian_SwapBE16(2), // Deprecated, use Unicode instead.
                Windows = SkTEndian_SwapBE16(3),
                Custom = SkTEndian_SwapBE16(4),
            } value;
        } platformID;

        union EncodingID {
            SK_OT_USHORT custom;

            /** Always UTF-16BE. */
            struct Unicode {
                enum Value : SK_OT_USHORT {
                    Unicode10 = SkTEndian_SwapBE16(0),
                    Unicode11 = SkTEndian_SwapBE16(1),
                    ISO10646 = SkTEndian_SwapBE16(2), //deprecated, use Unicode11
                    Unicode20BMP = SkTEndian_SwapBE16(3),
                    Unicode20 = SkTEndian_SwapBE16(4),
                    UnicodeVariationSequences = SkTEndian_SwapBE16(5),
                    UnicodeFull = SkTEndian_SwapBE16(6),
                } value;
            } unicode;

            /** These are Mac encodings, see http://www.unicode.org/Public/MAPPINGS/VENDORS/APPLE/
             *  for their mappings to unicode.
             *  Name table strings using PlatformID::Macintosh must use Roman.
             */

            struct Macintosh {
                enum Value : SK_OT_USHORT {
                    Roman = SkTEndian_SwapBE16(0),
                    Japanese = SkTEndian_SwapBE16(1),
                    ChineseTraditional = SkTEndian_SwapBE16(2),
                    Korean = SkTEndian_SwapBE16(3),
                    Arabic = SkTEndian_SwapBE16(4),
                    Hebrew = SkTEndian_SwapBE16(5),
                    Greek = SkTEndian_SwapBE16(6),
                    Russian = SkTEndian_SwapBE16(7),
                    RSymbol = SkTEndian_SwapBE16(8),
                    Devanagari = SkTEndian_SwapBE16(9),
                    Gurmukhi = SkTEndian_SwapBE16(10),
                    Gujarati = SkTEndian_SwapBE16(11),
                    Oriya = SkTEndian_SwapBE16(12),
                    Bengali = SkTEndian_SwapBE16(13),
                    Tamil = SkTEndian_SwapBE16(14),
                    Telugu = SkTEndian_SwapBE16(15),
                    Kannada = SkTEndian_SwapBE16(16),
                    Malayalam = SkTEndian_SwapBE16(17),
                    Sinhalese = SkTEndian_SwapBE16(18),
                    Burmese = SkTEndian_SwapBE16(19),
                    Khmer = SkTEndian_SwapBE16(20),
                    Thai = SkTEndian_SwapBE16(21),
                    Laotian = SkTEndian_SwapBE16(22),
                    Georgian = SkTEndian_SwapBE16(23),
                    Armenian = SkTEndian_SwapBE16(24),
                    ChineseSimplified = SkTEndian_SwapBE16(25),
                    Tibetan = SkTEndian_SwapBE16(26),
                    Mongolian = SkTEndian_SwapBE16(27),
                    Geez = SkTEndian_SwapBE16(28),
                    Slavic = SkTEndian_SwapBE16(29),
                    Vietnamese = SkTEndian_SwapBE16(30),
                    Sindhi = SkTEndian_SwapBE16(31),
                    Uninterpreted = SkTEndian_SwapBE16(32),
                } value;
            } macintosh;

            /** Deprecated, use Unicode instead. */
            struct ISO {
                enum Value : SK_OT_USHORT {
                    ASCII7 = SkTEndian_SwapBE16(0),
                    ISO10646 = SkTEndian_SwapBE16(1),
                    ISO88591 = SkTEndian_SwapBE16(2),
                } value;
            } iso;

            /** Name table strings using PlatformID::Windows must use Symbol, UnicodeBMPUCS2, or
             *  UnicodeUCS4. Symbol and UnicodeBMPUCS2 are both UCS2-BE, UnicodeUCS4 is actually
             *  UTF-16BE.
             */

            struct Windows {
                enum Value : SK_OT_USHORT {
                    Symbol = SkTEndian_SwapBE16(0), // UCS2-BE, but don't use this font to display it's own name.
                    UnicodeBMPUCS2 = SkTEndian_SwapBE16(1), // UCS2-BE, Windows default
                    ShiftJIS = SkTEndian_SwapBE16(2),
                    PRC = SkTEndian_SwapBE16(3),
                    Big5 = SkTEndian_SwapBE16(4),
                    Wansung = SkTEndian_SwapBE16(5),
                    Johab = SkTEndian_SwapBE16(6),
                    UnicodeUCS4 = SkTEndian_SwapBE16(10), // UTF-16BE. It means UCS4 in charmaps.
                } value;
            } windows;
        } encodingID;

        /** LanguageIDs <= 0x7FFF are predefined.
         *  LanguageIDs > 0x7FFF are indexes into the langTagRecord array
         *  (in format 1 name tables, see SkOTTableName::format).
         */

        union LanguageID {
            /** A value greater than 0x7FFF.
             *  languageTagID - 0x8000 is an index into the langTagRecord array.
             */

            SK_OT_USHORT languageTagID;

            /** These are known as Language Designators.
             *  Apple now uses BCP 47 (post OSX10.4), so there will be no new entries.
             */

            struct Macintosh {
                enum Value : SK_OT_USHORT {
                    English = SkTEndian_SwapBE16(0),
                    French = SkTEndian_SwapBE16(1),
                    German = SkTEndian_SwapBE16(2),
                    Italian = SkTEndian_SwapBE16(3),
                    Dutch = SkTEndian_SwapBE16(4),
                    Swedish = SkTEndian_SwapBE16(5),
                    Spanish = SkTEndian_SwapBE16(6),
                    Danish = SkTEndian_SwapBE16(7),
                    Portuguese = SkTEndian_SwapBE16(8),
                    Norwegian = SkTEndian_SwapBE16(9),
                    Hebrew = SkTEndian_SwapBE16(10),
                    Japanese = SkTEndian_SwapBE16(11),
                    Arabic = SkTEndian_SwapBE16(12),
                    Finnish = SkTEndian_SwapBE16(13),
                    Greek = SkTEndian_SwapBE16(14),
                    Icelandic = SkTEndian_SwapBE16(15),
                    Maltese = SkTEndian_SwapBE16(16),
                    Turkish = SkTEndian_SwapBE16(17),
                    Croatian = SkTEndian_SwapBE16(18),
                    ChineseTraditional = SkTEndian_SwapBE16(19),
                    Urdu = SkTEndian_SwapBE16(20),
                    Hindi = SkTEndian_SwapBE16(21),
                    Thai = SkTEndian_SwapBE16(22),
                    Korean = SkTEndian_SwapBE16(23),
                    Lithuanian = SkTEndian_SwapBE16(24),
                    Polish = SkTEndian_SwapBE16(25),
                    Hungarian = SkTEndian_SwapBE16(26),
                    Estonian = SkTEndian_SwapBE16(27),
                    Latvian = SkTEndian_SwapBE16(28),
                    Sami = SkTEndian_SwapBE16(29),
                    Faroese = SkTEndian_SwapBE16(30),
                    Farsi_Persian = SkTEndian_SwapBE16(31),
                    Russian = SkTEndian_SwapBE16(32),
                    ChineseSimplified = SkTEndian_SwapBE16(33),
                    Flemish = SkTEndian_SwapBE16(34),
                    IrishGaelic = SkTEndian_SwapBE16(35),
                    Albanian = SkTEndian_SwapBE16(36),
                    Romanian = SkTEndian_SwapBE16(37),
                    Czech = SkTEndian_SwapBE16(38),
                    Slovak = SkTEndian_SwapBE16(39),
                    Slovenian = SkTEndian_SwapBE16(40),
                    Yiddish = SkTEndian_SwapBE16(41),
                    Serbian = SkTEndian_SwapBE16(42),
                    Macedonian = SkTEndian_SwapBE16(43),
                    Bulgarian = SkTEndian_SwapBE16(44),
                    Ukrainian = SkTEndian_SwapBE16(45),
                    Byelorussian = SkTEndian_SwapBE16(46),
                    Uzbek = SkTEndian_SwapBE16(47),
                    Kazakh = SkTEndian_SwapBE16(48),
                    AzerbaijaniCyrillic = SkTEndian_SwapBE16(49),
                    AzerbaijaniArabic = SkTEndian_SwapBE16(50),
                    Armenian = SkTEndian_SwapBE16(51),
                    Georgian = SkTEndian_SwapBE16(52),
                    Moldavian = SkTEndian_SwapBE16(53),
                    Kirghiz = SkTEndian_SwapBE16(54),
                    Tajiki = SkTEndian_SwapBE16(55),
                    Turkmen = SkTEndian_SwapBE16(56),
                    MongolianTraditional = SkTEndian_SwapBE16(57),
                    MongolianCyrillic = SkTEndian_SwapBE16(58),
                    Pashto = SkTEndian_SwapBE16(59),
                    Kurdish = SkTEndian_SwapBE16(60),
                    Kashmiri = SkTEndian_SwapBE16(61),
                    Sindhi = SkTEndian_SwapBE16(62),
                    Tibetan = SkTEndian_SwapBE16(63),
                    Nepali = SkTEndian_SwapBE16(64),
                    Sanskrit = SkTEndian_SwapBE16(65),
                    Marathi = SkTEndian_SwapBE16(66),
                    Bengali = SkTEndian_SwapBE16(67),
                    Assamese = SkTEndian_SwapBE16(68),
                    Gujarati = SkTEndian_SwapBE16(69),
                    Punjabi = SkTEndian_SwapBE16(70),
                    Oriya = SkTEndian_SwapBE16(71),
                    Malayalam = SkTEndian_SwapBE16(72),
                    Kannada = SkTEndian_SwapBE16(73),
                    Tamil = SkTEndian_SwapBE16(74),
                    Telugu = SkTEndian_SwapBE16(75),
                    Sinhalese = SkTEndian_SwapBE16(76),
                    Burmese = SkTEndian_SwapBE16(77),
                    Khmer = SkTEndian_SwapBE16(78),
                    Lao = SkTEndian_SwapBE16(79),
                    Vietnamese = SkTEndian_SwapBE16(80),
                    Indonesian = SkTEndian_SwapBE16(81),
                    Tagalong = SkTEndian_SwapBE16(82),
                    MalayRoman = SkTEndian_SwapBE16(83),
                    MalayArabic = SkTEndian_SwapBE16(84),
                    Amharic = SkTEndian_SwapBE16(85),
                    Tigrinya = SkTEndian_SwapBE16(86),
                    Galla = SkTEndian_SwapBE16(87),
                    Somali = SkTEndian_SwapBE16(88),
                    Swahili = SkTEndian_SwapBE16(89),
                    Kinyarwanda_Ruanda = SkTEndian_SwapBE16(90),
                    Rundi = SkTEndian_SwapBE16(91),
                    Nyanja_Chewa = SkTEndian_SwapBE16(92),
                    Malagasy = SkTEndian_SwapBE16(93),
                    Esperanto = SkTEndian_SwapBE16(94),
                    Welsh = SkTEndian_SwapBE16(128),
                    Basque = SkTEndian_SwapBE16(129),
                    Catalan = SkTEndian_SwapBE16(130),
                    Latin = SkTEndian_SwapBE16(131),
                    Quenchua = SkTEndian_SwapBE16(132),
                    Guarani = SkTEndian_SwapBE16(133),
                    Aymara = SkTEndian_SwapBE16(134),
                    Tatar = SkTEndian_SwapBE16(135),
                    Uighur = SkTEndian_SwapBE16(136),
                    Dzongkha = SkTEndian_SwapBE16(137),
                    JavaneseRoman = SkTEndian_SwapBE16(138),
                    SundaneseRoman = SkTEndian_SwapBE16(139),
                    Galician = SkTEndian_SwapBE16(140),
                    Afrikaans = SkTEndian_SwapBE16(141),
                    Breton = SkTEndian_SwapBE16(142),
                    Inuktitut = SkTEndian_SwapBE16(143),
                    ScottishGaelic = SkTEndian_SwapBE16(144),
                    ManxGaelic = SkTEndian_SwapBE16(145),
                    IrishGaelicWithLenition = SkTEndian_SwapBE16(146),
                    Tongan = SkTEndian_SwapBE16(147),
                    GreekPolytonic = SkTEndian_SwapBE16(148),
                    Greenlandic = SkTEndian_SwapBE16(149),
                    AzerbaijaniRoman = SkTEndian_SwapBE16(150),
                } value;
            } macintosh;

            /** These are known as LCIDs.
             *  On Windows the current set can be had from EnumSystemLocalesEx and LocaleNameToLCID.
             */

            struct Windows {
                enum Value : SK_OT_USHORT {
                    Afrikaans_SouthAfrica = SkTEndian_SwapBE16(0x0436),
                    Albanian_Albania = SkTEndian_SwapBE16(0x041C),
                    Alsatian_France = SkTEndian_SwapBE16(0x0484),
                    Amharic_Ethiopia = SkTEndian_SwapBE16(0x045E),
                    Arabic_Algeria = SkTEndian_SwapBE16(0x1401),
                    Arabic_Bahrain = SkTEndian_SwapBE16(0x3C01),
                    Arabic_Egypt = SkTEndian_SwapBE16(0x0C01),
                    Arabic_Iraq = SkTEndian_SwapBE16(0x0801),
                    Arabic_Jordan = SkTEndian_SwapBE16(0x2C01),
                    Arabic_Kuwait = SkTEndian_SwapBE16(0x3401),
                    Arabic_Lebanon = SkTEndian_SwapBE16(0x3001),
                    Arabic_Libya = SkTEndian_SwapBE16(0x1001),
                    Arabic_Morocco = SkTEndian_SwapBE16(0x1801),
                    Arabic_Oman = SkTEndian_SwapBE16(0x2001),
                    Arabic_Qatar = SkTEndian_SwapBE16(0x4001),
                    Arabic_SaudiArabia = SkTEndian_SwapBE16(0x0401),
                    Arabic_Syria = SkTEndian_SwapBE16(0x2801),
                    Arabic_Tunisia = SkTEndian_SwapBE16(0x1C01),
                    Arabic_UAE = SkTEndian_SwapBE16(0x3801),
                    Arabic_Yemen = SkTEndian_SwapBE16(0x2401),
                    Armenian_Armenia = SkTEndian_SwapBE16(0x042B),
                    Assamese_India = SkTEndian_SwapBE16(0x044D),
                    AzeriCyrillic_Azerbaijan = SkTEndian_SwapBE16(0x082C),
                    AzeriLatin_Azerbaijan = SkTEndian_SwapBE16(0x042C),
                    Bashkir_Russia = SkTEndian_SwapBE16(0x046D),
                    Basque_Basque = SkTEndian_SwapBE16(0x042D),
                    Belarusian_Belarus = SkTEndian_SwapBE16(0x0423),
                    Bengali_Bangladesh = SkTEndian_SwapBE16(0x0845),
                    Bengali_India = SkTEndian_SwapBE16(0x0445),
                    BosnianCyrillic_BosniaAndHerzegovina = SkTEndian_SwapBE16(0x201A),
                    BosnianLatin_BosniaAndHerzegovina = SkTEndian_SwapBE16(0x141A),
                    Breton_France = SkTEndian_SwapBE16(0x047E),
                    Bulgarian_Bulgaria = SkTEndian_SwapBE16(0x0402),
                    Catalan_Catalan = SkTEndian_SwapBE16(0x0403),
                    Chinese_HongKongSAR = SkTEndian_SwapBE16(0x0C04),
                    Chinese_MacaoSAR = SkTEndian_SwapBE16(0x1404),
                    Chinese_PeoplesRepublicOfChina = SkTEndian_SwapBE16(0x0804),
                    Chinese_Singapore = SkTEndian_SwapBE16(0x1004),
                    Chinese_Taiwan = SkTEndian_SwapBE16(0x0404),
                    Corsican_France = SkTEndian_SwapBE16(0x0483),
                    Croatian_Croatia = SkTEndian_SwapBE16(0x041A),
                    CroatianLatin_BosniaAndHerzegovina = SkTEndian_SwapBE16(0x101A),
                    Czech_CzechRepublic = SkTEndian_SwapBE16(0x0405),
                    Danish_Denmark = SkTEndian_SwapBE16(0x0406),
                    Dari_Afghanistan = SkTEndian_SwapBE16(0x048C),
                    Divehi_Maldives = SkTEndian_SwapBE16(0x0465),
                    Dutch_Belgium = SkTEndian_SwapBE16(0x0813),
                    Dutch_Netherlands = SkTEndian_SwapBE16(0x0413),
                    English_Australia = SkTEndian_SwapBE16(0x0C09),
                    English_Belize = SkTEndian_SwapBE16(0x2809),
                    English_Canada = SkTEndian_SwapBE16(0x1009),
                    English_Caribbean = SkTEndian_SwapBE16(0x2409),
                    English_India = SkTEndian_SwapBE16(0x4009),
                    English_Ireland = SkTEndian_SwapBE16(0x1809),
                    English_Jamaica = SkTEndian_SwapBE16(0x2009),
                    English_Malaysia = SkTEndian_SwapBE16(0x4409),
                    English_NewZealand = SkTEndian_SwapBE16(0x1409),
                    English_RepublicOfThePhilippines = SkTEndian_SwapBE16(0x3409),
                    English_Singapore = SkTEndian_SwapBE16(0x4809),
                    English_SouthAfrica = SkTEndian_SwapBE16(0x1C09),
                    English_TrinidadAndTobago = SkTEndian_SwapBE16(0x2C09),
                    English_UnitedKingdom = SkTEndian_SwapBE16(0x0809),
                    English_UnitedStates = SkTEndian_SwapBE16(0x0409),
                    English_Zimbabwe = SkTEndian_SwapBE16(0x3009),
                    Estonian_Estonia = SkTEndian_SwapBE16(0x0425),
                    Faroese_FaroeIslands = SkTEndian_SwapBE16(0x0438),
                    Filipino_Philippines = SkTEndian_SwapBE16(0x0464),
                    Finnish_Finland = SkTEndian_SwapBE16(0x040B),
                    French_Belgium = SkTEndian_SwapBE16(0x080C),
                    French_Canada = SkTEndian_SwapBE16(0x0C0C),
                    French_France = SkTEndian_SwapBE16(0x040C),
                    French_Luxembourg = SkTEndian_SwapBE16(0x140c),
                    French_PrincipalityOfMonoco = SkTEndian_SwapBE16(0x180C),
                    French_Switzerland = SkTEndian_SwapBE16(0x100C),
                    Frisian_Netherlands = SkTEndian_SwapBE16(0x0462),
                    Galician_Galician = SkTEndian_SwapBE16(0x0456),
                    Georgian_Georgia = SkTEndian_SwapBE16(0x0437),
                    German_Austria = SkTEndian_SwapBE16(0x0C07),
                    German_Germany = SkTEndian_SwapBE16(0x0407),
                    German_Liechtenstein = SkTEndian_SwapBE16(0x1407),
                    German_Luxembourg = SkTEndian_SwapBE16(0x1007),
                    German_Switzerland = SkTEndian_SwapBE16(0x0807),
                    Greek_Greece = SkTEndian_SwapBE16(0x0408),
                    Greenlandic_Greenland = SkTEndian_SwapBE16(0x046F),
                    Gujarati_India = SkTEndian_SwapBE16(0x0447),
                    HausaLatin_Nigeria = SkTEndian_SwapBE16(0x0468),
                    Hebrew_Israel = SkTEndian_SwapBE16(0x040D),
                    Hindi_India = SkTEndian_SwapBE16(0x0439),
                    Hungarian_Hungary = SkTEndian_SwapBE16(0x040E),
                    Icelandic_Iceland = SkTEndian_SwapBE16(0x040F),
                    Igbo_Nigeria = SkTEndian_SwapBE16(0x0470),
                    Indonesian_Indonesia = SkTEndian_SwapBE16(0x0421),
                    Inuktitut_Canada = SkTEndian_SwapBE16(0x045D),
                    InuktitutLatin_Canada = SkTEndian_SwapBE16(0x085D),
                    Irish_Ireland = SkTEndian_SwapBE16(0x083C),
                    isiXhosa_SouthAfrica = SkTEndian_SwapBE16(0x0434),
                    isiZulu_SouthAfrica = SkTEndian_SwapBE16(0x0435),
                    Italian_Italy = SkTEndian_SwapBE16(0x0410),
                    Italian_Switzerland = SkTEndian_SwapBE16(0x0810),
                    Japanese_Japan = SkTEndian_SwapBE16(0x0411),
                    Kannada_India = SkTEndian_SwapBE16(0x044B),
                    Kazakh_Kazakhstan = SkTEndian_SwapBE16(0x043F),
                    Khmer_Cambodia = SkTEndian_SwapBE16(0x0453),
                    Kiche_Guatemala = SkTEndian_SwapBE16(0x0486),
                    Kinyarwanda_Rwanda = SkTEndian_SwapBE16(0x0487),
                    Kiswahili_Kenya = SkTEndian_SwapBE16(0x0441),
                    Konkani_India = SkTEndian_SwapBE16(0x0457),
                    Korean_Korea = SkTEndian_SwapBE16(0x0412),
                    Kyrgyz_Kyrgyzstan = SkTEndian_SwapBE16(0x0440),
                    Lao_LaoPDR = SkTEndian_SwapBE16(0x0454),
                    Latvian_Latvia = SkTEndian_SwapBE16(0x0426),
                    Lithuanian_Lithuania = SkTEndian_SwapBE16(0x0427),
                    LowerSorbian_Germany = SkTEndian_SwapBE16(0x082E),
                    Luxembourgish_Luxembourg = SkTEndian_SwapBE16(0x046E),
                    MacedonianFYROM_FormerYugoslavRepublicOfMacedonia = SkTEndian_SwapBE16(0x042F),
                    Malay_BruneiDarussalam = SkTEndian_SwapBE16(0x083E),
                    Malay_Malaysia = SkTEndian_SwapBE16(0x043E),
                    Malayalam_India = SkTEndian_SwapBE16(0x044C),
                    Maltese_Malta = SkTEndian_SwapBE16(0x043A),
                    Maori_NewZealand = SkTEndian_SwapBE16(0x0481),
                    Mapudungun_Chile = SkTEndian_SwapBE16(0x047A),
                    Marathi_India = SkTEndian_SwapBE16(0x044E),
                    Mohawk_Mohawk = SkTEndian_SwapBE16(0x047C),
                    MongolianCyrillic_Mongolia = SkTEndian_SwapBE16(0x0450),
                    MongolianTraditional_PeoplesRepublicOfChina = SkTEndian_SwapBE16(0x0850),
                    Nepali_Nepal = SkTEndian_SwapBE16(0x0461),
                    NorwegianBokmal_Norway = SkTEndian_SwapBE16(0x0414),
                    NorwegianNynorsk_Norway = SkTEndian_SwapBE16(0x0814),
                    Occitan_France = SkTEndian_SwapBE16(0x0482),
                    Odia_India = SkTEndian_SwapBE16(0x0448),
                    Pashto_Afghanistan = SkTEndian_SwapBE16(0x0463),
                    Polish_Poland = SkTEndian_SwapBE16(0x0415),
                    Portuguese_Brazil = SkTEndian_SwapBE16(0x0416),
                    Portuguese_Portugal = SkTEndian_SwapBE16(0x0816),
                    Punjabi_India = SkTEndian_SwapBE16(0x0446),
                    Quechua_Bolivia = SkTEndian_SwapBE16(0x046B),
                    Quechua_Ecuador = SkTEndian_SwapBE16(0x086B),
                    Quechua_Peru = SkTEndian_SwapBE16(0x0C6B),
                    Romanian_Romania = SkTEndian_SwapBE16(0x0418),
                    Romansh_Switzerland = SkTEndian_SwapBE16(0x0417),
                    Russian_Russia = SkTEndian_SwapBE16(0x0419),
                    SamiInari_Finland = SkTEndian_SwapBE16(0x243B),
                    SamiLule_Norway = SkTEndian_SwapBE16(0x103B),
                    SamiLule_Sweden = SkTEndian_SwapBE16(0x143B),
                    SamiNorthern_Finland = SkTEndian_SwapBE16(0x0C3B),
                    SamiNorthern_Norway = SkTEndian_SwapBE16(0x043B),
                    SamiNorthern_Sweden = SkTEndian_SwapBE16(0x083B),
                    SamiSkolt_Finland = SkTEndian_SwapBE16(0x203B),
                    SamiSouthern_Norway = SkTEndian_SwapBE16(0x183B),
                    SamiSouthern_Sweden = SkTEndian_SwapBE16(0x1C3B),
                    Sanskrit_India = SkTEndian_SwapBE16(0x044F),
                    SerbianCyrillic_BosniaAndHerzegovina = SkTEndian_SwapBE16(0x1C1A),
                    SerbianCyrillic_Serbia = SkTEndian_SwapBE16(0x0C1A),
                    SerbianLatin_BosniaAndHerzegovina = SkTEndian_SwapBE16(0x181A),
                    SerbianLatin_Serbia = SkTEndian_SwapBE16(0x081A),
                    SesothoSaLeboa_SouthAfrica = SkTEndian_SwapBE16(0x046C),
                    Setswana_SouthAfrica = SkTEndian_SwapBE16(0x0432),
                    Sinhala_SriLanka = SkTEndian_SwapBE16(0x045B),
                    Slovak_Slovakia = SkTEndian_SwapBE16(0x041B),
                    Slovenian_Slovenia = SkTEndian_SwapBE16(0x0424),
                    Spanish_Argentina = SkTEndian_SwapBE16(0x2C0A),
                    Spanish_Bolivia = SkTEndian_SwapBE16(0x400A),
                    Spanish_Chile = SkTEndian_SwapBE16(0x340A),
                    Spanish_Colombia = SkTEndian_SwapBE16(0x240A),
                    Spanish_CostaRica = SkTEndian_SwapBE16(0x140A),
                    Spanish_DominicanRepublic = SkTEndian_SwapBE16(0x1C0A),
                    Spanish_Ecuador = SkTEndian_SwapBE16(0x300A),
                    Spanish_ElSalvador = SkTEndian_SwapBE16(0x440A),
                    Spanish_Guatemala = SkTEndian_SwapBE16(0x100A),
                    Spanish_Honduras = SkTEndian_SwapBE16(0x480A),
                    Spanish_Mexico = SkTEndian_SwapBE16(0x080A),
                    Spanish_Nicaragua = SkTEndian_SwapBE16(0x4C0A),
                    Spanish_Panama = SkTEndian_SwapBE16(0x180A),
                    Spanish_Paraguay = SkTEndian_SwapBE16(0x3C0A),
                    Spanish_Peru = SkTEndian_SwapBE16(0x280A),
                    Spanish_PuertoRico = SkTEndian_SwapBE16(0x500A),
                    SpanishModernSort_Spain = SkTEndian_SwapBE16(0x0C0A),
                    SpanishTraditionalSort_Spain = SkTEndian_SwapBE16(0x040A),
                    Spanish_UnitedStates = SkTEndian_SwapBE16(0x540A),
                    Spanish_Uruguay = SkTEndian_SwapBE16(0x380A),
                    Spanish_Venezuela = SkTEndian_SwapBE16(0x200A),
                    Sweden_Finland = SkTEndian_SwapBE16(0x081D),
                    Swedish_Sweden = SkTEndian_SwapBE16(0x041D),
                    Syriac_Syria = SkTEndian_SwapBE16(0x045A),
                    TajikCyrillic_Tajikistan = SkTEndian_SwapBE16(0x0428),
                    TamazightLatin_Algeria = SkTEndian_SwapBE16(0x085F),
                    Tamil_India = SkTEndian_SwapBE16(0x0449),
                    Tatar_Russia = SkTEndian_SwapBE16(0x0444),
                    Telugu_India = SkTEndian_SwapBE16(0x044A),
                    Thai_Thailand = SkTEndian_SwapBE16(0x041E),
                    Tibetan_PRC = SkTEndian_SwapBE16(0x0451),
                    Turkish_Turkey = SkTEndian_SwapBE16(0x041F),
                    Turkmen_Turkmenistan = SkTEndian_SwapBE16(0x0442),
                    Uighur_PRC = SkTEndian_SwapBE16(0x0480),
                    Ukrainian_Ukraine = SkTEndian_SwapBE16(0x0422),
                    UpperSorbian_Germany = SkTEndian_SwapBE16(0x042E),
                    Urdu_IslamicRepublicOfPakistan = SkTEndian_SwapBE16(0x0420),
                    UzbekCyrillic_Uzbekistan = SkTEndian_SwapBE16(0x0843),
                    UzbekLatin_Uzbekistan = SkTEndian_SwapBE16(0x0443),
                    Vietnamese_Vietnam = SkTEndian_SwapBE16(0x042A),
                    Welsh_UnitedKingdom = SkTEndian_SwapBE16(0x0452),
                    Wolof_Senegal = SkTEndian_SwapBE16(0x0488),
                    Yakut_Russia = SkTEndian_SwapBE16(0x0485),
                    Yi_PRC = SkTEndian_SwapBE16(0x0478),
                    Yoruba_Nigeria = SkTEndian_SwapBE16(0x046A),
                } value;
            } windows;
        } languageID;

        /** NameIDs <= 0xFF are predefined. Those > 0xFF are font specific. */
        union NameID {
           /** A font specific name id which should be greater than 0xFF. */
           SK_OT_USHORT fontSpecific;
           struct Predefined {
                enum Value : SK_OT_USHORT {
                    CopyrightNotice = SkTEndian_SwapBE16(0),
                    FontFamilyName = SkTEndian_SwapBE16(1),
                    FontSubfamilyName = SkTEndian_SwapBE16(2),
                    UniqueFontIdentifier = SkTEndian_SwapBE16(3),
                    FullFontName = SkTEndian_SwapBE16(4),
                    VersionString = SkTEndian_SwapBE16(5), //Version <number>.<number>
                    PostscriptName = SkTEndian_SwapBE16(6), //See spec for constraints.
                    Trademark = SkTEndian_SwapBE16(7),
                    ManufacturerName = SkTEndian_SwapBE16(8),
                    Designer = SkTEndian_SwapBE16(9),
                    Description = SkTEndian_SwapBE16(10),
                    URLVendor = SkTEndian_SwapBE16(11),
                    URLDesigner = SkTEndian_SwapBE16(12),
                    LicenseDescription = SkTEndian_SwapBE16(13),
                    LicenseInfoURL = SkTEndian_SwapBE16(14),
                    PreferredFamily = SkTEndian_SwapBE16(16),
                    PreferredSubfamily = SkTEndian_SwapBE16(17),
                    CompatibleFullName = SkTEndian_SwapBE16(18),
                    SampleText = SkTEndian_SwapBE16(19),
                    PostscriptCIDFindfontName = SkTEndian_SwapBE16(20),
                    WWSFamilyName = SkTEndian_SwapBE16(21),
                    WWSSubfamilyName = SkTEndian_SwapBE16(22),
                } value;
            } predefined;
        } nameID;

        /** The length of the string in SK_OT_BYTEs. */
        SK_OT_USHORT length;

        /** Offset in SK_OT_BYTEs from start of string storage area
         *  (see SkOTTableName::stringOffset).
         */

        SK_OT_USHORT offset;
    }; //nameRecord[count];

    struct Format1Ext {
        /** The number of languageTagRecords which follow. */
        SK_OT_USHORT langTagCount;

        /** The encoding of a langTagRecord string is always UTF-16BE.
         *  The content should follow IETF specification BCP 47.
         */

        struct LangTagRecord {
            /** The length of the string in SK_OT_BYTEs. */
            SK_OT_USHORT length;

            /** Offset in SK_OT_BYTEs from start of string storage area
             *  (see SkOTTableName::stringOffset).
             */

            SK_OT_USHORT offset;
        }; //langTagRecord[langTagCount]
    }; //format1ext (if format == format_1)

// The iterator should not be packed.
#pragma pack(pop)

    class Iterator {
    public:
        Iterator(const uint8_t* nameTable, size_t size)
            : fNameTable(nameTable), fNameTableSize(size), fIndex(0), fType(-1) { }
        Iterator(const uint8_t* nameTable, size_t size, SK_OT_USHORT type)
            : fNameTable(nameTable), fNameTableSize(size), fIndex(0), fType(type)
        { }

        void reset(SK_OT_USHORT type) {
            fIndex = 0;
            fType = type;
        }

        struct Record {
            SkString name;
            SkString language;
            SK_OT_USHORT type;
        };
        bool next(Record&);

    private:
        const uint8_t* fNameTable;
        const size_t fNameTableSize;
        size_t fIndex;
        int fType;
    };
};


static_assert(sizeof(SkOTTableName) == 6, "sizeof(SkOTTableName) not 6");
static_assert(sizeof(SkOTTableName::Format1Ext) == 2, "sizeof(SkOTTableNameF1) not 2");
static_assert(sizeof(SkOTTableName::Format1Ext::LangTagRecord) == 4, "sizeof(SkOTTableNameLangTagRecord) not 4");
static_assert(sizeof(SkOTTableName::Record) == 12, "sizeof(SkOTTableNameRecord) not 12");

#endif

Messung V0.5
C=98 H=91 G=94

¤ Dauer der Verarbeitung: 0.2 Sekunden  (vorverarbeitet)  ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

Beweissystem der NASA

Beweissystem Isabelle

NIST Cobol Testsuite

Cephes Mathematical Library

Wiener Entwicklungsmethode

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.






                                                                                                                                                                                                                                                                                                                                                                                                     


Neuigkeiten

     Aktuelles
     Motto des Tages

Software

     Produkte
     Quellcodebibliothek

Aktivitäten

     Artikel über Sicherheit
     Anleitung zur Aktivierung von SSL

Muße

     Gedichte
     Musik
     Bilder

Jenseits des Üblichen ....
    

Besucherstatistik

Besucherstatistik

Monitoring

Montastic status badge