< 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,16 +329,12 @@
 #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;
+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,24 +352,26 @@
     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(32*32);
+    maskData = (char *) malloc(maxAATileWidth * maxAATileHeight);
     if (maskData == NULL) {
-       return;
+       return 0;
     }
 
-    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;
-    }
+    defaultImg = XCreateImage(awt_display, NULL, 8, ZPixmap, 0, maskData, maxAATileWidth, maxAATileHeight, 8, 0);
+    defaultImg->data = maskData;
 
-    (*env)->SetStaticLongField(env, cls, maskImgID, ptr_to_jlong(defaultImg));
+    return ptr_to_jlong(defaultImg);
 }
 
 JNIEXPORT void JNICALL
 Java_sun_java2d_xr_XRBackendNative_freeGC
  (JNIEnv *env, jobject this, jlong gc) {
< prev index next >