#include #include #include #include /* Linux headers don't work properly */ #define __USE_GNU #include #undef __USE_GNU /* Current versions of Solaris don't expose the XF86 extensions, although with the recent transition to Xorg this will probably happen in an upcoming release */ #if !defined(__sun) && !defined(_HPUX) #include #else /* Need to provide stubs for these */ Bool XF86VidModeGetGammaRampSize( Display *display, int screen, int* size) { return False; } Bool XF86VidModeGetGammaRamp( Display *display, int screen, int size, unsigned short *red_array, unsigned short *green_array, unsigned short *blue_array) { return False; } Bool XF86VidModeSetGammaRamp( Display *display, int screen, int size, unsigned short *red_array, unsigned short *green_array, unsigned short *blue_array) { return False; } #endif /* HP-UX doesn't define RTLD_DEFAULT. */ #if defined(_HPUX) && !defined(RTLD_DEFAULT) #define RTLD_DEFAULT NULL #endif /* Need to expose DefaultScreen and RootWindow macros to Java */ JNIEXPORT jlong JNICALL Java_com_sun_nwi_impl_x11_X11Lib_DefaultScreen(JNIEnv *env, jclass _unused, jlong display) { return DefaultScreen((Display*) (intptr_t) display); } JNIEXPORT jlong JNICALL Java_com_sun_nwi_impl_x11_X11Lib_RootWindow(JNIEnv *env, jclass _unused, jlong display, jint screen) { return RootWindow((Display*) (intptr_t) display, screen); } JNIEXPORT jlong JNICALL Java_com_sun_nwi_impl_x11_X11Lib_dlopen(JNIEnv *env, jclass _unused, jstring name) { const jbyte* chars; void* res; chars = (*env)->GetStringUTFChars(env, name, NULL); res = dlopen(chars, RTLD_LAZY | RTLD_GLOBAL); (*env)->ReleaseStringUTFChars(env, name, chars); return (jlong) ((intptr_t) res); } JNIEXPORT jlong JNICALL Java_com_sun_nwi_impl_x11_X11Lib_dlsym(JNIEnv *env, jclass _unused, jstring name) { const jbyte* chars; void* res; chars = (*env)->GetStringUTFChars(env, name, NULL); res = dlsym(RTLD_DEFAULT, chars); (*env)->ReleaseStringUTFChars(env, name, chars); return (jlong) ((intptr_t) res); } /* Need to pull this in as we don't have a stub header for it */ extern Bool XineramaEnabled(Display* display);