493 JNIEXPORT void JNICALL
494 Java_sun_java2d_x11_X11SurfaceData_initSurface(JNIEnv *env, jclass xsd,
495 jint depth,
496 jint width, jint height,
497 jlong drawable)
498 {
499 #ifndef HEADLESS
500 X11SDOps *xsdo = X11SurfaceData_GetOps(env, xsd);
501 if (xsdo == NULL) {
502 return;
503 }
504
505 if (xsdo->configData->awt_cmap == (Colormap)NULL) {
506 awtJNI_CreateColorData(env, xsdo->configData, 1);
507 }
508 /* color_data will be initialized in awtJNI_CreateColorData for
509 8-bit visuals */
510 xsdo->cData = xsdo->configData->color_data;
511
512 XShared_initSurface(env, xsdo, depth, width, height, drawable);
513 xsdo->xrPic = NULL;
514 #endif /* !HEADLESS */
515 }
516
517 #ifndef HEADLESS
518
519 #ifdef MITSHM
520
521 void X11SD_DropSharedSegment(XShmSegmentInfo *shminfo)
522 {
523 if (shminfo != NULL) {
524 XShmDetach(awt_display, shminfo);
525 shmdt(shminfo->shmaddr);
526 /* REMIND: we don't need shmctl(shminfo->shmid, IPC_RMID, 0); here. */
527 /* Check X11SD_CreateSharedImage() for the explanation */
528 }
529 }
530
531 XImage* X11SD_CreateSharedImage(X11SDOps *xsdo,
532 jint width, jint height)
533 {
|
493 JNIEXPORT void JNICALL
494 Java_sun_java2d_x11_X11SurfaceData_initSurface(JNIEnv *env, jclass xsd,
495 jint depth,
496 jint width, jint height,
497 jlong drawable)
498 {
499 #ifndef HEADLESS
500 X11SDOps *xsdo = X11SurfaceData_GetOps(env, xsd);
501 if (xsdo == NULL) {
502 return;
503 }
504
505 if (xsdo->configData->awt_cmap == (Colormap)NULL) {
506 awtJNI_CreateColorData(env, xsdo->configData, 1);
507 }
508 /* color_data will be initialized in awtJNI_CreateColorData for
509 8-bit visuals */
510 xsdo->cData = xsdo->configData->color_data;
511
512 XShared_initSurface(env, xsdo, depth, width, height, drawable);
513 xsdo->xrPic = None;
514 #endif /* !HEADLESS */
515 }
516
517 #ifndef HEADLESS
518
519 #ifdef MITSHM
520
521 void X11SD_DropSharedSegment(XShmSegmentInfo *shminfo)
522 {
523 if (shminfo != NULL) {
524 XShmDetach(awt_display, shminfo);
525 shmdt(shminfo->shmaddr);
526 /* REMIND: we don't need shmctl(shminfo->shmid, IPC_RMID, 0); here. */
527 /* Check X11SD_CreateSharedImage() for the explanation */
528 }
529 }
530
531 XImage* X11SD_CreateSharedImage(X11SDOps *xsdo,
532 jint width, jint height)
533 {
|