< prev index next >

src/java.desktop/macosx/native/libawt_lwawt/font/AWTStrike.m

Print this page




 297     return generalPath;
 298 }
 299 
 300 /*
 301  * Class:     sun_font_CStrike
 302  * Method:    getGlyphImagePtrsNative
 303  * Signature: (JJ[J[II)V
 304  */
 305 JNIEXPORT void JNICALL
 306 Java_sun_font_CStrike_getGlyphImagePtrsNative
 307     (JNIEnv *env, jclass clazz,
 308      jlong awtStrikePtr, jlongArray glyphInfoLongArray,
 309      jintArray glyphCodes, jint len)
 310 {
 311 JNF_COCOA_ENTER(env);
 312 
 313     AWTStrike *awtStrike = (AWTStrike *)jlong_to_ptr(awtStrikePtr);
 314 
 315     jlong *glyphInfos =
 316         (*env)->GetPrimitiveArrayCritical(env, glyphInfoLongArray, NULL);
 317     if (glyphInfos != NULL) {
 318         jint *rawGlyphCodes =
 319             (*env)->GetPrimitiveArrayCritical(env, glyphCodes, NULL);
 320 
 321         if (rawGlyphCodes != NULL) {
 322             CGGlyphImages_GetGlyphImagePtrs(glyphInfos, awtStrike,
 323                                             rawGlyphCodes, len);
 324 



 325             (*env)->ReleasePrimitiveArrayCritical(env, glyphCodes,
 326                                               rawGlyphCodes, JNI_ABORT);
 327         }

 328         // Do not use JNI_COMMIT, as that will not free the buffer copy
 329         // when +ProtectJavaHeap is on.
 330         (*env)->ReleasePrimitiveArrayCritical(env, glyphInfoLongArray,
 331                                               glyphInfos, 0);
 332     }

 333 
 334 JNF_COCOA_EXIT(env);
 335 }
 336 
 337 /*
 338  * Class:     sun_font_CStrike
 339  * Method:    createNativeStrikePtr
 340  * Signature: (J[D[DII)J
 341  */
 342 JNIEXPORT jlong JNICALL Java_sun_font_CStrike_createNativeStrikePtr
 343 (JNIEnv *env, jclass clazz, jlong nativeFontPtr, jdoubleArray glyphTxArray, jdoubleArray invDevTxArray, jint aaStyle, jint fmHint)
 344 {
 345     AWTStrike *awtStrike = nil;
 346 JNF_COCOA_ENTER(env);
 347 
 348     AWTFont *awtFont = (AWTFont *)jlong_to_ptr(nativeFontPtr);
 349     JRSFontRenderingStyle style = JRSFontGetRenderingStyleForHints(fmHint, aaStyle);
 350 
 351     CGAffineTransform glyphTx = GetTxFromDoubles(env, glyphTxArray);
 352     CGAffineTransform invDevTx = GetTxFromDoubles(env, invDevTxArray);




 297     return generalPath;
 298 }
 299 
 300 /*
 301  * Class:     sun_font_CStrike
 302  * Method:    getGlyphImagePtrsNative
 303  * Signature: (JJ[J[II)V
 304  */
 305 JNIEXPORT void JNICALL
 306 Java_sun_font_CStrike_getGlyphImagePtrsNative
 307     (JNIEnv *env, jclass clazz,
 308      jlong awtStrikePtr, jlongArray glyphInfoLongArray,
 309      jintArray glyphCodes, jint len)
 310 {
 311 JNF_COCOA_ENTER(env);
 312 
 313     AWTStrike *awtStrike = (AWTStrike *)jlong_to_ptr(awtStrikePtr);
 314 
 315     jlong *glyphInfos =
 316         (*env)->GetPrimitiveArrayCritical(env, glyphInfoLongArray, NULL);
 317 
 318     jint *rawGlyphCodes =
 319             (*env)->GetPrimitiveArrayCritical(env, glyphCodes, NULL);
 320     @try {
 321         if (rawGlyphCodes != NULL && glyphInfos != NULL) {
 322             CGGlyphImages_GetGlyphImagePtrs(glyphInfos, awtStrike,
 323                     rawGlyphCodes, len);
 324         }
 325     }
 326     @finally {
 327         if (rawGlyphCodes != NULL) {
 328             (*env)->ReleasePrimitiveArrayCritical(env, glyphCodes,
 329                                                   rawGlyphCodes, JNI_ABORT);
 330         }
 331         if (glyphInfos != NULL) {
 332             // Do not use JNI_COMMIT, as that will not free the buffer copy
 333             // when +ProtectJavaHeap is on.
 334             (*env)->ReleasePrimitiveArrayCritical(env, glyphInfoLongArray,
 335                                                   glyphInfos, 0);
 336         }
 337     }
 338 
 339 JNF_COCOA_EXIT(env);
 340 }
 341 
 342 /*
 343  * Class:     sun_font_CStrike
 344  * Method:    createNativeStrikePtr
 345  * Signature: (J[D[DII)J
 346  */
 347 JNIEXPORT jlong JNICALL Java_sun_font_CStrike_createNativeStrikePtr
 348 (JNIEnv *env, jclass clazz, jlong nativeFontPtr, jdoubleArray glyphTxArray, jdoubleArray invDevTxArray, jint aaStyle, jint fmHint)
 349 {
 350     AWTStrike *awtStrike = nil;
 351 JNF_COCOA_ENTER(env);
 352 
 353     AWTFont *awtFont = (AWTFont *)jlong_to_ptr(nativeFontPtr);
 354     JRSFontRenderingStyle style = JRSFontGetRenderingStyleForHints(fmHint, aaStyle);
 355 
 356     CGAffineTransform glyphTx = GetTxFromDoubles(env, glyphTxArray);
 357     CGAffineTransform invDevTx = GetTxFromDoubles(env, invDevTxArray);


< prev index next >