summaryrefslogtreecommitdiffstats
path: root/make/config/nativewindow/jawt-CustomJavaCode.java
diff options
context:
space:
mode:
authorSven Gothel <[email protected]>2012-02-13 12:51:40 +0100
committerSven Gothel <[email protected]>2012-02-13 12:51:40 +0100
commitf2bc8fe1f93b5a112093d9507bdb397e3b390215 (patch)
tree9e257513cbde8da2c71c56220c6dd185b8d2bf0d /make/config/nativewindow/jawt-CustomJavaCode.java
parentc996bcdc264070ada3abce85becece2e852f93a4 (diff)
OSX/Java7 JAWT/JAWTUtil: Support OSX/Java7 CALayer only JAWT mode; Cleanup JAWT/JAWTUtil
- Support OSX/Java7 CALayer only JAWT mode - Cleanup JAWT/JAWTUtil while moving elaborated logic and data to JAWTUtil, leave generated JAWT simple.
Diffstat (limited to 'make/config/nativewindow/jawt-CustomJavaCode.java')
-rw-r--r--make/config/nativewindow/jawt-CustomJavaCode.java35
1 files changed, 10 insertions, 25 deletions
diff --git a/make/config/nativewindow/jawt-CustomJavaCode.java b/make/config/nativewindow/jawt-CustomJavaCode.java
index d3dc3845f..6ea57dca2 100644
--- a/make/config/nativewindow/jawt-CustomJavaCode.java
+++ b/make/config/nativewindow/jawt-CustomJavaCode.java
@@ -1,38 +1,23 @@
-/** Available and recommended on Mac OS X >= 10.6 Update 4 */
-public static final int JAWT_MACOSX_USE_CALAYER = 0x80000000;
-public static final VersionNumber JAWT_MacOSXCALayerMinVersion = new VersionNumber(10,6,4);
-
private int jawt_version_cached = 0;
public final int getCachedVersion() {
return jawt_version_cached;
}
-/** Helper routine for all users to call to access the JAWT. */
-public static JAWT getJAWT(final int jawt_version_flags) {
+protected static boolean getJAWT(final JAWT jawt, final int jawt_version_flags) {
JAWTUtil.initSingleton();
// Workaround for 4845371.
// Make sure the first reference to the JNI GetDirectBufferAddress is done
// from a privileged context so the VM's internal class lookups will succeed.
- return AccessController.doPrivileged(new PrivilegedAction<JAWT>() {
- public JAWT run() {
- int jawt_version_flags_mod = jawt_version_flags;
- JAWT jawt = JAWT.create();
- if( 0 != ( jawt_version_flags_mod & JAWT_MACOSX_USE_CALAYER ) ) {
- jawt.setVersion(jawt_version_flags_mod);
- if (JAWTFactory.JAWT_GetAWT(jawt)) {
- jawt.jawt_version_cached = jawt.getVersion();
- return jawt;
- }
- jawt_version_flags_mod &= ~JAWT_MACOSX_USE_CALAYER;
- System.err.println("MacOSX "+Platform.OS_VERSION_NUMBER+" >= "+JAWT_MacOSXCALayerMinVersion+": Failed to use JAWT_MACOSX_USE_CALAYER");
- }
- jawt.setVersion(jawt_version_flags_mod);
- if (!JAWTFactory.JAWT_GetAWT(jawt)) {
- throw new RuntimeException("Unable to initialize JAWT: 0x"+Integer.toHexString(jawt_version_flags_mod));
+ return AccessController.doPrivileged(new PrivilegedAction<Boolean>() {
+ public Boolean run() {
+ jawt.setVersion(jawt_version_flags);
+ if (JAWTFactory.JAWT_GetAWT(jawt)) {
+ jawt.jawt_version_cached = jawt.getVersion();
+ return new Boolean(true);
}
- jawt.jawt_version_cached = jawt.getVersion();
- return jawt;
+ jawt.jawt_version_cached = 0;
+ return new Boolean(false);
}
- });
+ }).booleanValue();
}