< prev index next >

src/java.desktop/unix/native/libawt_xawt/java2d/x11/XRBackendNative.c

Print this page
rev 48928 : Xrender: Introduction of the deferred backend, allows for accumulated AA mask upload.
rev 48930 : Xrender: Perform Ximg allocation for tile upload only for non-deferred mode

*** 329,344 **** #else return JNI_FALSE; #endif /* !HEADLESS */ } - JNIEXPORT void JNICALL ! Java_sun_java2d_xr_XRBackendNative_initIDs(JNIEnv *env, jclass cls) { ! char *maskData; ! XImage* defaultImg; ! jfieldID maskImgID; jlong fmt8; jlong fmt32; jfieldID a8ID = (*env)->GetStaticFieldID(env, cls, "FMTPTR_A8", "J"); if (a8ID == NULL) { --- 329,340 ---- #else return JNI_FALSE; #endif /* !HEADLESS */ } JNIEXPORT void JNICALL ! Java_sun_java2d_xr_XRBackendNative_initIDs(JNIEnv *env, jclass cls, jint maxAATileWidth, jint maxAATileHeight) { jlong fmt8; jlong fmt32; jfieldID a8ID = (*env)->GetStaticFieldID(env, cls, "FMTPTR_A8", "J"); if (a8ID == NULL) {
*** 356,379 **** fmt8 = ptr_to_jlong(XRenderFindStandardFormat(awt_display, PictStandardA8)); fmt32 = ptr_to_jlong(XRenderFindStandardFormat(awt_display, PictStandardARGB32)); (*env)->SetStaticLongField(env, cls, a8ID, fmt8); (*env)->SetStaticLongField(env, cls, argb32ID, fmt32); ! maskData = (char *) malloc(32*32); if (maskData == NULL) { ! return; } ! defaultImg = XCreateImage(awt_display, NULL, 8, ZPixmap, 0, maskData, 32, 32, 8, 0); ! defaultImg->data = maskData; //required? ! maskImgID = (*env)->GetStaticFieldID(env, cls, "MASK_XIMG", "J"); ! if (maskImgID == NULL) { ! return; ! } ! (*env)->SetStaticLongField(env, cls, maskImgID, ptr_to_jlong(defaultImg)); } JNIEXPORT void JNICALL Java_sun_java2d_xr_XRBackendNative_freeGC (JNIEnv *env, jobject this, jlong gc) { --- 352,377 ---- fmt8 = ptr_to_jlong(XRenderFindStandardFormat(awt_display, PictStandardA8)); fmt32 = ptr_to_jlong(XRenderFindStandardFormat(awt_display, PictStandardARGB32)); (*env)->SetStaticLongField(env, cls, a8ID, fmt8); (*env)->SetStaticLongField(env, cls, argb32ID, fmt32); + } + + JNIEXPORT jlong JNICALL + Java_sun_java2d_xr_XRBackendNative_initDefaultAAXImg(JNIEnv *env, jclass cls, jint maxAATileWidth, jint maxAATileHeight) { + char *maskData; + XImage* defaultImg; ! maskData = (char *) malloc(maxAATileWidth * maxAATileHeight); if (maskData == NULL) { ! return 0; } ! defaultImg = XCreateImage(awt_display, NULL, 8, ZPixmap, 0, maskData, maxAATileWidth, maxAATileHeight, 8, 0); ! defaultImg->data = maskData; ! return ptr_to_jlong(defaultImg); } JNIEXPORT void JNICALL Java_sun_java2d_xr_XRBackendNative_freeGC (JNIEnv *env, jobject this, jlong gc) {
< prev index next >