のねのBlog

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

harfbuzz-ng

     79 static hb_bool_t harfbuzzGetGlyph(
                        hb_font_t* hbFont,
                        void* fontData,
                        hb_codepoint_t unicode,
                        hb_codepoint_t variationSelector,
                        hb_codepoint_t* glyph,
                        void* userData)
     80 {
     81     HarfBuzzFontData* hbFontData = reinterpret_cast<HarfBuzzFontData*>(fontData);
     82 
     83     if (unicode > 0x10ffff) {
     84         unicode = 0xfffd;
     85     }
     86     SkPaint* paint = hbFontData->m_paint;
     87     // It would be better to use kUTF32_TextEncoding directly
     88     paint->setTextEncoding(SkPaint::kUTF16_TextEncoding);
     89     uint16_t glyph16;
     90     uint16_t unichar[2];
     91     size_t size = SkUTF16_FromUnichar(unicode, unichar);
     92     paint->textToGlyphs(unichar, size * sizeof(*unichar), &glyph16);
     93     *glyph = glyph16;
     94     return !!*glyph;
     95 }