< prev index next >
src/java.desktop/unix/native/libawt_xawt/java2d/x11/XRBackendNative.c
Print this page
rev 59383 : [mq]: final
*** 1,7 ****
/*
! * Copyright (c) 2010, 2016, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation. Oracle designates this
--- 1,7 ----
/*
! * Copyright (c) 2010, 2020, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation. Oracle designates this
*** 33,57 ****
#ifdef __linux__
#include <sys/utsname.h>
#endif
- /* On Solaris 10 updates 8, 9, the render.h file defines these
- * protocol values but does not define the structs in Xrender.h.
- * Thus in order to get these always defined on Solaris 10
- * we will undefine the symbols if we have determined via the
- * makefiles that Xrender.h is lacking the structs. This will
- * trigger providing our own definitions as on earlier updates.
- * We could assume that *all* Solaris 10 update versions will lack the updated
- * Xrender.h and do this based solely on O/S being any 5.10 version, but this
- * could still change and we'd be broken again as we'd be re-defining them.
- */
- #ifdef SOLARIS10_NO_XRENDER_STRUCTS
- #undef X_RenderCreateLinearGradient
- #undef X_RenderCreateRadialGradient
- #endif
-
#ifndef X_RenderCreateLinearGradient
typedef struct _XLinearGradient {
XPointFixed p1;
XPointFixed p2;
} XLinearGradient;
--- 33,42 ----
*** 70,102 ****
} XRadialGradient;
#endif
#include <dlfcn.h>
- #if defined(__solaris__)
- /* Solaris 10 will not have these symbols at compile time */
-
- typedef Picture (*XRenderCreateLinearGradientFuncType)
- (Display *dpy,
- const XLinearGradient *gradient,
- const XFixed *stops,
- const XRenderColor *colors,
- int nstops);
-
- typedef Picture (*XRenderCreateRadialGradientFuncType)
- (Display *dpy,
- const XRadialGradient *gradient,
- const XFixed *stops,
- const XRenderColor *colors,
- int nstops);
-
- static
- XRenderCreateLinearGradientFuncType XRenderCreateLinearGradientFunc = NULL;
- static
- XRenderCreateRadialGradientFuncType XRenderCreateRadialGradientFunc = NULL;
- #endif
-
#define BUILD_TRANSFORM_MATRIX(TRANSFORM, M00, M01, M02, M10, M11, M12) \
{ \
TRANSFORM.matrix[0][0] = M00; \
TRANSFORM.matrix[0][1] = M01; \
TRANSFORM.matrix[0][2] = M02; \
--- 55,64 ----
*** 160,190 ****
if (xrenderlib != NULL) {
dlclose(xrenderlib);
} else {
available = JNI_FALSE;
}
- #elif defined(__solaris__)
- xrenderlib = dlopen("libXrender.so",RTLD_GLOBAL|RTLD_LAZY);
- if (xrenderlib != NULL) {
-
- XRenderCreateLinearGradientFunc =
- (XRenderCreateLinearGradientFuncType)
- dlsym(xrenderlib, "XRenderCreateLinearGradient");
-
- XRenderCreateRadialGradientFunc =
- (XRenderCreateRadialGradientFuncType)
- dlsym(xrenderlib, "XRenderCreateRadialGradient");
-
- if (XRenderCreateLinearGradientFunc == NULL ||
- XRenderCreateRadialGradientFunc == NULL)
- {
- available = JNI_FALSE;
- }
- dlclose(xrenderlib);
- } else {
- available = JNI_FALSE;
- }
#else
Dl_info info;
jboolean versionInfoIsFound = JNI_FALSE;
memset(&info, 0, sizeof(Dl_info));
--- 122,131 ----
*** 591,607 ****
colors[i].alpha = pixels[i*4 + 0];
colors[i].red = pixels[i*4 + 1];
colors[i].green = pixels[i*4 + 2];
colors[i].blue = pixels[i*4 + 3];
}
- #ifdef __solaris__
- if (XRenderCreateLinearGradientFunc!=NULL) {
- gradient = (*XRenderCreateLinearGradientFunc)(awt_display, &grad, stops, colors, numStops);
- }
- #else
gradient = XRenderCreateLinearGradient(awt_display, &grad, stops, colors, numStops);
- #endif
free(colors);
free(stops);
(*env)->ReleasePrimitiveArrayCritical(env, pixelsArray, pixels, JNI_ABORT);
(*env)->ReleasePrimitiveArrayCritical(env, fractionsArray, fractions, JNI_ABORT);
--- 532,542 ----
*** 675,691 ****
colors[i].alpha = pixels[i*4 + 0];
colors[i].red = pixels[i*4 + 1];
colors[i].green = pixels[i*4 + 2];
colors[i].blue = pixels[i*4 + 3];
}
- #ifdef __solaris__
- if (XRenderCreateRadialGradientFunc != NULL) {
- gradient = (jint) (*XRenderCreateRadialGradientFunc)(awt_display, &grad, stops, colors, numStops);
- }
- #else
gradient = (jint) XRenderCreateRadialGradient(awt_display, &grad, stops, colors, numStops);
- #endif
free(colors);
free(stops);
(*env)->ReleasePrimitiveArrayCritical(env, pixelsArray, pixels, JNI_ABORT);
(*env)->ReleasePrimitiveArrayCritical(env, fractionsArray, fractions, JNI_ABORT);
--- 610,620 ----
< prev index next >