jdk/src/java.desktop/share/native/libfontmanager/HBShaper.c
changeset 47188 0048f025c993
parent 42711 1a4a75c37134
equal deleted inserted replaced
47187:ea6212ea3397 47188:0048f025c993
   201                        jobject font2D,
   201                        jobject font2D,
   202                        jobject fontStrike,
   202                        jobject fontStrike,
   203                        jfloat ptSize,
   203                        jfloat ptSize,
   204                        jlong pScaler,
   204                        jlong pScaler,
   205                        jlong pNativeFont,
   205                        jlong pNativeFont,
       
   206                        jlong layoutTables,
   206                        jfloatArray matrix,
   207                        jfloatArray matrix,
   207                        jboolean aat) {
   208                        jboolean aat) {
   208 
   209 
   209 
   210 
   210     JDKFontInfo *fi = (JDKFontInfo*)malloc(sizeof(JDKFontInfo));
   211     JDKFontInfo *fi = (JDKFontInfo*)malloc(sizeof(JDKFontInfo));
   213     }
   214     }
   214     fi->env = env; // this is valid only for the life of this JNI call.
   215     fi->env = env; // this is valid only for the life of this JNI call.
   215     fi->font2D = font2D;
   216     fi->font2D = font2D;
   216     fi->fontStrike = fontStrike;
   217     fi->fontStrike = fontStrike;
   217     fi->nativeFont = pNativeFont;
   218     fi->nativeFont = pNativeFont;
       
   219     fi->layoutTables = (TTLayoutTableCache*)layoutTables;
   218     fi->aat = aat;
   220     fi->aat = aat;
   219     (*env)->GetFloatArrayRegion(env, matrix, 0, 4, fi->matrix);
   221     (*env)->GetFloatArrayRegion(env, matrix, 0, 4, fi->matrix);
   220     fi->ptSize = ptSize;
   222     fi->ptSize = ptSize;
   221     fi->xPtSize = euclidianDistance(fi->matrix[0], fi->matrix[1]);
   223     fi->xPtSize = euclidianDistance(fi->matrix[0], fi->matrix[1]);
   222     fi->yPtSize = euclidianDistance(fi->matrix[2], fi->matrix[3]);
   224     fi->yPtSize = euclidianDistance(fi->matrix[2], fi->matrix[3]);
   239      jobject fontStrike,
   241      jobject fontStrike,
   240      jfloat ptSize,
   242      jfloat ptSize,
   241      jfloatArray matrix,
   243      jfloatArray matrix,
   242      jlong pScaler,
   244      jlong pScaler,
   243      jlong pNativeFont,
   245      jlong pNativeFont,
       
   246      jlong layoutTables,
   244      jboolean aat,
   247      jboolean aat,
   245      jcharArray text,
   248      jcharArray text,
   246      jobject gvdata,
   249      jobject gvdata,
   247      jint script,
   250      jint script,
   248      jint offset,
   251      jint offset,
   267      jboolean ret;
   270      jboolean ret;
   268      unsigned int buflen;
   271      unsigned int buflen;
   269 
   272 
   270      JDKFontInfo *jdkFontInfo =
   273      JDKFontInfo *jdkFontInfo =
   271          createJDKFontInfo(env, font2D, fontStrike, ptSize,
   274          createJDKFontInfo(env, font2D, fontStrike, ptSize,
   272                            pScaler, pNativeFont, matrix, aat);
   275                            pScaler, pNativeFont, layoutTables, matrix, aat);
   273      if (!jdkFontInfo) {
   276      if (!jdkFontInfo) {
   274         return JNI_FALSE;
   277         return JNI_FALSE;
   275      }
   278      }
   276      jdkFontInfo->env = env; // this is valid only for the life of this JNI call.
   279      jdkFontInfo->env = env; // this is valid only for the life of this JNI call.
   277      jdkFontInfo->font2D = font2D;
   280      jdkFontInfo->font2D = font2D;