1093 if (xRects != &sRects[0]) { 1094 free(xRects); 1095 } 1096 return; 1097 } 1098 1099 for (i=0; i < rectCnt; i++) { 1100 xRects[i].x = rects[i*4 + 0]; 1101 xRects[i].y = rects[i*4 + 1]; 1102 xRects[i].width = rects[i*4 + 2]; 1103 xRects[i].height = rects[i*4 + 3]; 1104 } 1105 1106 XFillRectangles(awt_display, (Drawable) dst, (GC) jlong_to_ptr(gc), xRects, rectCnt); 1107 1108 (*env)->ReleasePrimitiveArrayCritical(env, rectArray, rects, JNI_ABORT); 1109 if (xRects != &sRects[0]) { 1110 free(xRects); 1111 } 1112 } 1113 1114 JNIEXPORT void JNICALL 1115 Java_sun_java2d_xr_XRBackendNative_renderCompositeTrapezoidsNative 1116 (JNIEnv *env, jclass cls, jbyte op, jint src, jlong maskFmt, 1117 jint dst, jint srcX, jint srcY, jintArray trapArray) { 1118 jint *traps; 1119 1120 if ((traps = (jint *) (*env)->GetPrimitiveArrayCritical(env, trapArray, NULL)) == NULL) { 1121 return; 1122 } 1123 1124 XRenderCompositeTrapezoids(awt_display, op, (Picture) src, (Picture) dst, 1125 (XRenderPictFormat *) jlong_to_ptr(maskFmt), 1126 srcX, srcY, (XTrapezoid *) (traps+5), traps[0]); 1127 1128 (*env)->ReleasePrimitiveArrayCritical(env, trapArray, traps, JNI_ABORT); 1129 } | 1093 if (xRects != &sRects[0]) { 1094 free(xRects); 1095 } 1096 return; 1097 } 1098 1099 for (i=0; i < rectCnt; i++) { 1100 xRects[i].x = rects[i*4 + 0]; 1101 xRects[i].y = rects[i*4 + 1]; 1102 xRects[i].width = rects[i*4 + 2]; 1103 xRects[i].height = rects[i*4 + 3]; 1104 } 1105 1106 XFillRectangles(awt_display, (Drawable) dst, (GC) jlong_to_ptr(gc), xRects, rectCnt); 1107 1108 (*env)->ReleasePrimitiveArrayCritical(env, rectArray, rects, JNI_ABORT); 1109 if (xRects != &sRects[0]) { 1110 free(xRects); 1111 } 1112 } |