のねのBlog

パソコンの問題や、ソフトウェアの開発で起きた問題など書いていきます。よろしくお願いします^^。

UnicharToGlyph

    145 uint16_t EmojiFont::UnicharToGlyph(int32_t unichar) {
    146     // do a quick range check before calling the search routine
    147     if (unichar >= GMOJI_PUA_MIN && unichar <= GMOJI_PUA_MAX) {
    148         // our table is stored relative to GMOJI_PUA_MIN to save space (16bits)
    149         uint16_t relative = unichar - GMOJI_PUA_MIN;
    150         int index = SkTSearch<uint16_t>(gGmojiPUA, GMOJI_PUA_COUNT, relative,
    151                                         sizeof(uint16_t));
    152         // a negative value means it was not found
    153         if (index >= 0) {
    154             return index + kGlyphBase;
    155         }
    156         // fall through to return 0
    157     }
    158     // not a supported emoji pua
    159     return 0;
    160 }
    136 #define GMOJI_PUA_MIN   0xFE000
    137 #define GMOJI_PUA_MAX   0xFEEA0
    138 #define GMOJI_PUA_COUNT (sizeof(gGmojiPUA) / sizeof(gGmojiPUA[0]))
     32 static const uint16_t gGmojiPUA[] = {
     33     0x000, 0x001, 0x002, 0x003, 0x004, 0x005, 0x006, 0x007,
     34     0x008, 0x009, 0x00A, 0x00B, 0x00C, 0x00D, 0x00E, 0x00F,
     35     0x010, 0x011, 0x012, 0x013, 0x014, 0x015, 0x016, 0x017,
     36     0x018, 0x019, 0x01A, 0x01B, 0x01C, 0x01D, 0x01E, 0x01F,
     37     0x020, 0x021, 0x022, 0x023, 0x024, 0x025, 0x026, 0x027,
     38     0x028, 0x029, 0x02A, 0x02B, 0x02C, 0x02D, 0x02E, 0x02F,
     39     0x030, 0x031, 0x032, 0x033, 0x034, 0x035, 0x036, 0x037,
     40     0x038, 0x039, 0x03A, 0x03B, 0x03C, 0x03D, 0x03E, 0x03F,
     41     0x040, 0x041, 0x042, 0x043, 0x044, 0x045, 0x046, 0x047,
     42     0x048, 0x049, 0x04A, 0x04B, 0x04C, 0x04D, 0x04E, 0x04F,
     43     0x050, 0x051, 0x052, 0x053, 0x054, 0x055, 0x056, 0x057,
     44     0x058, 0x059, 0x05A, 0x05B, 0x190, 0x191, 0x192, 0x193,
     45     0x194, 0x195, 0x196, 0x197, 0x198, 0x199, 0x19A, 0x19B,
     46     0x19C, 0x19D, 0x19E, 0x19F, 0x1A0, 0x1A1, 0x1A2, 0x1A3,
     47     0x1A4, 0x1A5, 0x1A6, 0x1A7, 0x1A8, 0x1A9, 0x1AA, 0x1AB,
     48     0x1AC, 0x1AD, 0x1AE, 0x1AF, 0x1B0, 0x1B1, 0x1B2, 0x1B3,
     49     0x1B4, 0x1B5, 0x1B6, 0x1B7, 0x1B8, 0x1B9, 0x1BA, 0x1BB,
     50     0x1BC, 0x1BD, 0x1BE, 0x1BF, 0x1C0, 0x1C1, 0x1C2, 0x1C3,
     51     0x1C4, 0x1C5, 0x1C6, 0x1C7, 0x1C8, 0x1C9, 0x1CA, 0x1CB,
     52     0x1CC, 0x1CD, 0x1CE, 0x1CF, 0x1D0, 0x1D1, 0x1D2, 0x1D3,
     53     0x1D4, 0x1D5, 0x1D6, 0x1D7, 0x1D8, 0x1D9, 0x1DA, 0x1DB,
     54     0x1DC, 0x1DD, 0x1DE, 0x1DF, 0x1E0, 0x1E1, 0x1E2, 0x1E3,
     55     0x320, 0x321, 0x322, 0x323, 0x324, 0x325, 0x326, 0x327,
     56     0x328, 0x329, 0x32A, 0x32B, 0x32C, 0x32D, 0x32E, 0x32F,
     57     0x330, 0x331, 0x332, 0x333, 0x334, 0x335, 0x336, 0x337,
     58     0x338, 0x339, 0x33A, 0x33B, 0x33C, 0x33D, 0x33E, 0x33F,
     59     0x340, 0x341, 0x342, 0x343, 0x344, 0x345, 0x346, 0x347,
     60     0x348, 0x349, 0x34A, 0x34B, 0x34C, 0x34D, 0x34E, 0x34F,
     61     0x350, 0x351, 0x352, 0x353, 0x354, 0x355, 0x356, 0x357,
     62     0x358, 0x359, 0x35A, 0x35B, 0x35C, 0x35D, 0x35E, 0x35F,
     63     0x360, 0x361, 0x362, 0x363, 0x364, 0x365, 0x366, 0x367,
     64     0x368, 0x369, 0x4B0, 0x4B1, 0x4B2, 0x4B3, 0x4B4, 0x4B5,
     65     0x4B6, 0x4B7, 0x4B8, 0x4B9, 0x4BA, 0x4BB, 0x4BC, 0x4BD,
     66     0x4BE, 0x4BF, 0x4C0, 0x4C1, 0x4C2, 0x4C3, 0x4C4, 0x4C5,
     67     0x4C6, 0x4C7, 0x4C8, 0x4C9, 0x4CA, 0x4CB, 0x4CC, 0x4CD,
     68     0x4CE, 0x4CF, 0x4D0, 0x4D1, 0x4D2, 0x4D3, 0x4D4, 0x4D5,
     69     0x4D6, 0x4D7, 0x4D8, 0x4D9, 0x4DA, 0x4DB, 0x4DC, 0x4DD,
     70     0x4DE, 0x4DF, 0x4E0, 0x4E1, 0x4E2, 0x4E3, 0x4E4, 0x4E5,
     71     0x4E6, 0x4E7, 0x4E8, 0x4E9, 0x4EA, 0x4EB, 0x4EC, 0x4ED,
     72     0x4EE, 0x4EF, 0x4F0, 0x4F1, 0x4F2, 0x4F3, 0x4F4, 0x4F5,
     73     0x4F6, 0x4F7, 0x4F8, 0x4F9, 0x4FA, 0x4FB, 0x4FC, 0x4FD,
     74     0x4FE, 0x4FF, 0x500, 0x501, 0x502, 0x503, 0x504, 0x505,
     75     0x506, 0x507, 0x508, 0x509, 0x50A, 0x50B, 0x50C, 0x50D,
     76     0x50E, 0x50F, 0x510, 0x511, 0x512, 0x513, 0x514, 0x515,
     77     0x516, 0x517, 0x518, 0x519, 0x51A, 0x51B, 0x51C, 0x51D,
     78     0x51E, 0x51F, 0x520, 0x521, 0x522, 0x523, 0x524, 0x525,
     79     0x526, 0x527, 0x528, 0x529, 0x52A, 0x52B, 0x52C, 0x52D,
     80     0x52E, 0x52F, 0x530, 0x531, 0x532, 0x533, 0x534, 0x535,
     81     0x536, 0x537, 0x538, 0x539, 0x53A, 0x53B, 0x53C, 0x53D,
     82     0x53E, 0x53F, 0x540, 0x541, 0x542, 0x543, 0x544, 0x545,
     83     0x546, 0x547, 0x548, 0x549, 0x54A, 0x54B, 0x54C, 0x54D,
     84     0x54E, 0x54F, 0x550, 0x551, 0x552, 0x553, 0x7D0, 0x7D1,
     85     0x7D2, 0x7D3, 0x7D4, 0x7D5, 0x7D6, 0x7D7, 0x7D8, 0x7D9,
     86     0x7DA, 0x7DB, 0x7DC, 0x7DD, 0x7DE, 0x7DF, 0x7E0, 0x7E1,
     87     0x7E2, 0x7E3, 0x7E4, 0x7E5, 0x7E6, 0x7E7, 0x7E8, 0x7E9,
     88     0x7EA, 0x7EB, 0x7EC, 0x7ED, 0x7EE, 0x7EF, 0x7F0, 0x7F1,
     89     0x7F2, 0x7F3, 0x7F4, 0x7F5, 0x7F6, 0x7F7, 0x7F8, 0x7F9,
     90     0x7FA, 0x7FB, 0x7FC, 0x7FD, 0x7FE, 0x7FF, 0x800, 0x801,
     91     0x802, 0x803, 0x804, 0x805, 0x806, 0x807, 0x808, 0x809,
     92     0x80A, 0x80B, 0x80C, 0x80D, 0x80E, 0x80F, 0x810, 0x811,
     93     0x812, 0x813, 0x814, 0x815, 0x816, 0x817, 0x818, 0x819,
     94     0x81A, 0x81B, 0x81C, 0x81D, 0x81E, 0x81F, 0x820, 0x821,
     95     0x822, 0x823, 0x824, 0x825, 0x826, 0x827, 0x828, 0x829,
     96     0x82A, 0x82B, 0x82C, 0x82D, 0x82E, 0x82F, 0x830, 0x831,
     97     0x832, 0x833, 0x834, 0x835, 0x836, 0x837, 0x838, 0x839,
     98     0x83A, 0x83B, 0x83C, 0x960, 0x961, 0x962, 0x963, 0x964,
     99     0x965, 0x966, 0x967, 0x968, 0x969, 0x96A, 0x96B, 0x96C,
    100     0x96D, 0x96E, 0x96F, 0x970, 0x971, 0x972, 0x973, 0x974,
    101     0x975, 0x976, 0x977, 0x978, 0x979, 0x97A, 0x97B, 0x97C,
    102     0x97D, 0x97E, 0x97F, 0x980, 0x981, 0x982, 0x983, 0x984,
    103     0x985, 0x986, 0x987, 0x988, 0xAF0, 0xAF1, 0xAF2, 0xAF3,
    104     0xAF4, 0xAF5, 0xAF6, 0xAF7, 0xAF8, 0xAF9, 0xAFA, 0xAFB,
    105     0xAFC, 0xAFD, 0xAFE, 0xAFF, 0xB00, 0xB01, 0xB02, 0xB03,
    106     0xB04, 0xB05, 0xB06, 0xB07, 0xB08, 0xB09, 0xB0A, 0xB0B,
    107     0xB0C, 0xB0D, 0xB0E, 0xB0F, 0xB10, 0xB11, 0xB12, 0xB13,
    108     0xB14, 0xB15, 0xB16, 0xB17, 0xB18, 0xB19, 0xB1A, 0xB1B,
    109     0xB1C, 0xB1D, 0xB1E, 0xB1F, 0xB20, 0xB21, 0xB22, 0xB23,
    110     0xB24, 0xB25, 0xB26, 0xB27, 0xB28, 0xB29, 0xB2A, 0xB2B,
    111     0xB2C, 0xB2D, 0xB2E, 0xB2F, 0xB30, 0xB31, 0xB32, 0xB33,
    112     0xB34, 0xB35, 0xB36, 0xB37, 0xB38, 0xB39, 0xB3A, 0xB3B,
    113     0xB3C, 0xB3D, 0xB3E, 0xB3F, 0xB40, 0xB41, 0xB42, 0xB43,
    114     0xB44, 0xB45, 0xB46, 0xB47, 0xB48, 0xB49, 0xB4A, 0xB4B,
    115     0xB4C, 0xB4D, 0xB4E, 0xB4F, 0xB50, 0xB51, 0xB52, 0xB53,
    116     0xB54, 0xB55, 0xB56, 0xB57, 0xB58, 0xB59, 0xB5A, 0xB5B,
    117     0xB5C, 0xB5D, 0xB5E, 0xB5F, 0xB60, 0xB61, 0xB62, 0xB63,
    118     0xB64, 0xB65, 0xB66, 0xB67, 0xB68, 0xB69, 0xB6A, 0xB6B,
    119     0xB6C, 0xB6D, 0xB6E, 0xB6F, 0xB70, 0xB71, 0xB72, 0xB73,
    120     0xB74, 0xB75, 0xB76, 0xB77, 0xB78, 0xB79, 0xB7A, 0xB7B,
    121     0xB7C, 0xB7D, 0xB7E, 0xB7F, 0xB80, 0xB81, 0xB82, 0xB83,
    122     0xB84, 0xB85, 0xB86, 0xB87, 0xB88, 0xB89, 0xB8A, 0xB8B,
    123     0xB8C, 0xB8D, 0xB8E, 0xB8F, 0xB90, 0xB91, 0xB92, 0xB93,
    124     0xB94, 0xB95, 0xB96, 0xB97, 0xB98, 0xB99, 0xB9A, 0xB9B,
    125     0xB9C, 0xB9D, 0xB9E, 0xB9F, 0xBA0, 0xBA1, 0xBA2, 0xE10,
    126     0xE11, 0xE12, 0xE13, 0xE14, 0xE15, 0xE16, 0xE17, 0xE18,
    127     0xE19, 0xE1A, 0xE1B, 0xE1C, 0xE1D, 0xE1E, 0xE1F, 0xE20,
    128     0xE21, 0xE22, 0xE23, 0xE24, 0xE25, 0xE26, 0xE27, 0xE28,
    129     0xE29, 0xE2A, 0xE2B, 0xE2C, 0xE2D, 0xE2E, 0xE2F, 0xE30,
    130     0xE31, 0xE32, 0xE33, 0xE40, 0xE41, 0xE42, 0xE43, 0xE44,
    131     0xE45, 0xE46, 0xE47, 0xE48, 0xE49, 0xE4A, 0xE70, 0xE71,
    132     0xE72, 0xE73, 0xE74, 0xE75, 0xE76, 0xE77, 0xE78, 0xE79,
    133     0xE7A, 0xE7B, 0xE7C, 0xE7D, 0xEA0
    134 };
    135