< prev index next >

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

Print this page




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



 322             (*env)->ReleasePrimitiveArrayCritical(env, glyphCodes,
 323                                               rawGlyphCodes, JNI_ABORT);
 324         }

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

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




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


< prev index next >