のねのBlog

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

FontFamily

     32     public FontFamily() {
     33         mNativePtr = nCreateFamily(null, 0);
     34         if (mNativePtr == 0) {
     35             throw new IllegalStateException("error creating native FontFamily");
     36         }
     37     }
     39     public FontFamily(String lang, String variant) {
     40         int varEnum = 0;
     41         if ("compact".equals(variant)) {
     42             varEnum = 1;
     43         } else if ("elegant".equals(variant)) {
     44             varEnum = 2;
     45         }
     46         mNativePtr = nCreateFamily(lang, varEnum);
     47         if (mNativePtr == 0) {
     48             throw new IllegalStateException("error creating native FontFamily");
     49         }
     50     }
    117 static JNINativeMethod gFontFamilyMethods[] = {
    118     { "nCreateFamily",         "(Ljava/lang/String;I)J",   (void*)FontFamily_create },
    119     { "nUnrefFamily",          "(J)V",                     (void*)FontFamily_unref },
    120     { "nAddFont",              "(JLjava/lang/String;)Z",   (void*)FontFamily_addFont },
    121     { "nAddFontWeightStyle",   "(JLjava/lang/String;IZ)Z", (void*)FontFamily_addFontWeightStyle },
    122     { "nAddFontFromAsset",     "(JLandroid/content/res/AssetManager;Ljava/lang/String;)Z",
    123                                            (void*)FontFamily_addFontFromAsset },
    124 };
     36 static jlong FontFamily_create(JNIEnv* env, jobject clazz, jstring lang, jint variant) {
     37     FontLanguage fontLanguage;
     38     if (lang != NULL) {
     39         ScopedUtfChars str(env, lang);
     40         fontLanguage = FontLanguage(str.c_str(), str.size());
     41     }
     42     return (jlong)new FontFamily(fontLanguage, variant);
     43 }
    124     FontFamily(FontLanguage lang, int variant) : mLang(lang), mVariant(variant) {
    125     }
    120 class FontFamily : public MinikinRefCounted {
    142 private:
    152     FontLanguage mLang;
    153     int          mVariant;
    154     std::vector<Font> mFonts;
    155 };
    145     class Font {
    146     public:
    149         MinikinFont* typeface;
    150         FontStyle style;
    151     };