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