aboutsummaryrefslogtreecommitdiff
path: root/src/solaris/classes/sun/awt/X11GraphicsEnvironment.java
diff options
context:
space:
mode:
authorceisserer <none@none>2010-05-28 11:37:44 -0700
committerceisserer <none@none>2010-05-28 11:37:44 -0700
commit93956cae3b774c623d420359f723f9f76f906257 (patch)
tree4b6071c16cc574276e56e03df5af421a9036fbd4 /src/solaris/classes/sun/awt/X11GraphicsEnvironment.java
parent9f77a553296b86ea53f5f7e3d5bbbe6030078924 (diff)
downloadjdk8u_jdk-93956cae3b774c623d420359f723f9f76f906257.tar.gz
6307603: [X11] Use RENDER extension for complex operations done in software
Reviewed-by: bae, igor, prr
Diffstat (limited to 'src/solaris/classes/sun/awt/X11GraphicsEnvironment.java')
-rw-r--r--src/solaris/classes/sun/awt/X11GraphicsEnvironment.java40
1 files changed, 40 insertions, 0 deletions
diff --git a/src/solaris/classes/sun/awt/X11GraphicsEnvironment.java b/src/solaris/classes/sun/awt/X11GraphicsEnvironment.java
index 6ea0756dd5..356beb15f4 100644
--- a/src/solaris/classes/sun/awt/X11GraphicsEnvironment.java
+++ b/src/solaris/classes/sun/awt/X11GraphicsEnvironment.java
@@ -26,6 +26,7 @@
package sun.awt;
import java.awt.GraphicsDevice;
+
import java.awt.Point;
import java.awt.Rectangle;
import java.io.BufferedReader;
@@ -51,6 +52,7 @@ import sun.java2d.SunGraphicsEnvironment;
import sun.java2d.SurfaceManagerFactory;
import sun.java2d.UnixSurfaceManagerFactory;
import sun.util.logging.PlatformLogger;
+import sun.java2d.xr.XRSurfaceData;
/**
* This is an implementation of a GraphicsEnvironment object for the
@@ -92,6 +94,18 @@ public class X11GraphicsEnvironment
}
}
+ // Now check for XRender system property
+ boolean xRenderRequested = false;
+ String xProp = System.getProperty("sun.java2d.xrender");
+ if (xProp != null) {
+ if (xProp.equals("true") || xProp.equals("t")) {
+ xRenderRequested = true;
+ } else if (xProp.equals("True") || xProp.equals("T")) {
+ xRenderRequested = true;
+ xRenderVerbose = true;
+ }
+ }
+
// initialize the X11 display connection
initDisplay(glxRequested);
@@ -104,6 +118,19 @@ public class X11GraphicsEnvironment
"pipeline (GLX 1.3 not available)");
}
}
+
+ // only attempt to initialize Xrender if it was requested
+ if (xRenderRequested) {
+ xRenderAvailable = initXRender();
+ if (xRenderVerbose && !xRenderAvailable) {
+ System.out.println(
+ "Could not enable XRender pipeline");
+ }
+ }
+
+ if (xRenderAvailable) {
+ XRSurfaceData.initXRSurfaceData();
+ }
}
return null;
@@ -115,6 +142,7 @@ public class X11GraphicsEnvironment
}
+
private static boolean glxAvailable;
private static boolean glxVerbose;
@@ -128,6 +156,18 @@ public class X11GraphicsEnvironment
return glxVerbose;
}
+ private static boolean xRenderVerbose;
+ private static boolean xRenderAvailable;
+
+ private static native boolean initXRender();
+ public static boolean isXRenderAvailable() {
+ return xRenderAvailable;
+ }
+
+ public static boolean isXRenderVerbose() {
+ return xRenderVerbose;
+ }
+
/**
* Checks if Shared Memory extension can be used.
* Returns: