diff options
author | Sven Gothel <sgothel@jausoft.com> | 2012-02-13 12:51:40 +0100 |
---|---|---|
committer | Sven Gothel <sgothel@jausoft.com> | 2012-02-13 12:51:40 +0100 |
commit | f2bc8fe1f93b5a112093d9507bdb397e3b390215 (patch) | |
tree | 9e257513cbde8da2c71c56220c6dd185b8d2bf0d /make/config/nativewindow/jawt-CustomJavaCode.java | |
parent | c996bcdc264070ada3abce85becece2e852f93a4 (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.java | 35 |
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(); } |