< 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


 314 
 315     if (firstTime) {
 316 #ifdef DISABLE_XRENDER_BY_DEFAULT
 317         if (verbose == JNI_FALSE) {
 318             xrenderAvailable = JNI_FALSE;
 319             firstTime = JNI_FALSE;
 320             return xrenderAvailable;
 321         }
 322 #endif
 323         AWT_LOCK();
 324         xrenderAvailable = IsXRenderAvailable(verbose, ignoreLinuxVersion);
 325         AWT_UNLOCK();
 326         firstTime = JNI_FALSE;
 327     }
 328     return xrenderAvailable;
 329 #else
 330     return JNI_FALSE;
 331 #endif /* !HEADLESS */
 332 }
 333 
 334 
 335 JNIEXPORT void JNICALL
 336 Java_sun_java2d_xr_XRBackendNative_initIDs(JNIEnv *env, jclass cls) {
 337     char *maskData;
 338     XImage* defaultImg;
 339     jfieldID maskImgID;
 340     jlong fmt8;
 341     jlong fmt32;
 342 
 343     jfieldID a8ID = (*env)->GetStaticFieldID(env, cls, "FMTPTR_A8", "J");
 344     if (a8ID == NULL) {
 345         return;
 346     }
 347     jfieldID argb32ID = (*env)->GetStaticFieldID(env, cls, "FMTPTR_ARGB32", "J");
 348     if (argb32ID == NULL) {
 349         return;
 350     }
 351 
 352     if (awt_display == (Display *)NULL) {
 353         return;
 354     }
 355 
 356     fmt8 = ptr_to_jlong(XRenderFindStandardFormat(awt_display, PictStandardA8));
 357     fmt32 = ptr_to_jlong(XRenderFindStandardFormat(awt_display, PictStandardARGB32));
 358 
 359     (*env)->SetStaticLongField(env, cls, a8ID, fmt8);
 360     (*env)->SetStaticLongField(env, cls, argb32ID, fmt32);

 361 
 362     maskData = (char *) malloc(32*32);





 363     if (maskData == NULL) {
 364        return;
 365     }
 366 
 367     defaultImg = XCreateImage(awt_display, NULL, 8, ZPixmap, 0, maskData, 32, 32, 8, 0);
 368     defaultImg->data = maskData; //required?
 369     maskImgID = (*env)->GetStaticFieldID(env, cls, "MASK_XIMG", "J");
 370     if (maskImgID == NULL) {
 371        return;
 372     }
 373 
 374     (*env)->SetStaticLongField(env, cls, maskImgID, ptr_to_jlong(defaultImg));
 375 }
 376 
 377 JNIEXPORT void JNICALL
 378 Java_sun_java2d_xr_XRBackendNative_freeGC
 379  (JNIEnv *env, jobject this, jlong gc) {
 380     XFreeGC(awt_display, (GC) jlong_to_ptr(gc));
 381 }
 382 
 383 JNIEXPORT jlong JNICALL
 384 Java_sun_java2d_xr_XRBackendNative_createGC
 385  (JNIEnv *env, jobject this, jint drawable) {
 386   GC xgc = XCreateGC(awt_display, (Drawable) drawable, 0L, NULL);
 387   return ptr_to_jlong(xgc);
 388 }
 389 
 390 JNIEXPORT jint JNICALL
 391 Java_sun_java2d_xr_XRBackendNative_createPixmap(JNIEnv *env, jobject this,
 392                                                 jint drawable, jint depth,
 393                                                 jint width, jint height) {
 394     return (jint) XCreatePixmap(awt_display, (Drawable) drawable,




 314 
 315     if (firstTime) {
 316 #ifdef DISABLE_XRENDER_BY_DEFAULT
 317         if (verbose == JNI_FALSE) {
 318             xrenderAvailable = JNI_FALSE;
 319             firstTime = JNI_FALSE;
 320             return xrenderAvailable;
 321         }
 322 #endif
 323         AWT_LOCK();
 324         xrenderAvailable = IsXRenderAvailable(verbose, ignoreLinuxVersion);
 325         AWT_UNLOCK();
 326         firstTime = JNI_FALSE;
 327     }
 328     return xrenderAvailable;
 329 #else
 330     return JNI_FALSE;
 331 #endif /* !HEADLESS */
 332 }
 333 

 334 JNIEXPORT void JNICALL
 335 Java_sun_java2d_xr_XRBackendNative_initIDs(JNIEnv *env, jclass cls, jint maxAATileWidth, jint maxAATileHeight) {



 336     jlong fmt8;
 337     jlong fmt32;
 338 
 339     jfieldID a8ID = (*env)->GetStaticFieldID(env, cls, "FMTPTR_A8", "J");
 340     if (a8ID == NULL) {
 341         return;
 342     }
 343     jfieldID argb32ID = (*env)->GetStaticFieldID(env, cls, "FMTPTR_ARGB32", "J");
 344     if (argb32ID == NULL) {
 345         return;
 346     }
 347 
 348     if (awt_display == (Display *)NULL) {
 349         return;
 350     }
 351 
 352     fmt8 = ptr_to_jlong(XRenderFindStandardFormat(awt_display, PictStandardA8));
 353     fmt32 = ptr_to_jlong(XRenderFindStandardFormat(awt_display, PictStandardARGB32));
 354 
 355     (*env)->SetStaticLongField(env, cls, a8ID, fmt8);
 356     (*env)->SetStaticLongField(env, cls, argb32ID, fmt32);
 357 }
 358 
 359 JNIEXPORT jlong JNICALL
 360 Java_sun_java2d_xr_XRBackendNative_initDefaultAAXImg(JNIEnv *env, jclass cls, jint maxAATileWidth, jint maxAATileHeight) {
 361     char *maskData;
 362     XImage* defaultImg;
 363     
 364     maskData = (char *) malloc(maxAATileWidth * maxAATileHeight);
 365     if (maskData == NULL) {
 366        return 0;
 367     }
 368 
 369     defaultImg = XCreateImage(awt_display, NULL, 8, ZPixmap, 0, maskData, maxAATileWidth, maxAATileHeight, 8, 0);
 370     defaultImg->data = maskData;




 371 
 372     return ptr_to_jlong(defaultImg);
 373 }
 374 
 375 JNIEXPORT void JNICALL
 376 Java_sun_java2d_xr_XRBackendNative_freeGC
 377  (JNIEnv *env, jobject this, jlong gc) {
 378     XFreeGC(awt_display, (GC) jlong_to_ptr(gc));
 379 }
 380 
 381 JNIEXPORT jlong JNICALL
 382 Java_sun_java2d_xr_XRBackendNative_createGC
 383  (JNIEnv *env, jobject this, jint drawable) {
 384   GC xgc = XCreateGC(awt_display, (Drawable) drawable, 0L, NULL);
 385   return ptr_to_jlong(xgc);
 386 }
 387 
 388 JNIEXPORT jint JNICALL
 389 Java_sun_java2d_xr_XRBackendNative_createPixmap(JNIEnv *env, jobject this,
 390                                                 jint drawable, jint depth,
 391                                                 jint width, jint height) {
 392     return (jint) XCreatePixmap(awt_display, (Drawable) drawable,


< prev index next >