< 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 >