< prev index next >

src/java.desktop/macosx/classes/sun/lwawt/macosx/LWCToolkit.java

Print this page
rev 54883 : JDK-8220154 Improve java2d rendering performance on macOS by using Metal framework


  92 import java.util.HashMap;
  93 import java.util.Locale;
  94 import java.util.Map;
  95 import java.util.MissingResourceException;
  96 import java.util.Objects;
  97 import java.util.ResourceBundle;
  98 import java.util.concurrent.Callable;
  99 
 100 import javax.swing.UIManager;
 101 
 102 import com.apple.laf.AquaMenuBarUI;
 103 import sun.awt.AWTAccessor;
 104 import sun.awt.AppContext;
 105 import sun.awt.CGraphicsConfig;
 106 import sun.awt.CGraphicsDevice;
 107 import sun.awt.LightweightFrame;
 108 import sun.awt.PlatformGraphicsInfo;
 109 import sun.awt.SunToolkit;
 110 import sun.awt.datatransfer.DataTransferer;
 111 import sun.awt.util.ThreadGroupUtils;


 112 import sun.java2d.opengl.OGLRenderQueue;
 113 import sun.lwawt.LWComponentPeer;
 114 import sun.lwawt.LWCursorManager;
 115 import sun.lwawt.LWToolkit;
 116 import sun.lwawt.LWWindowPeer;
 117 import sun.lwawt.LWWindowPeer.PeerType;
 118 import sun.lwawt.PlatformComponent;
 119 import sun.lwawt.PlatformDropTarget;
 120 import sun.lwawt.PlatformWindow;
 121 import sun.lwawt.SecurityWarningWindow;
 122 import sun.security.action.GetBooleanAction;
 123 
 124 @SuppressWarnings("serial") // JDK implementation class
 125 final class NamedCursor extends Cursor {
 126     NamedCursor(String name) {
 127         super(name);
 128     }
 129 }
 130 
 131 /**


 468     }
 469 
 470     @Override
 471     public native void beep();
 472 
 473     @Override
 474     public int getScreenResolution() throws HeadlessException {
 475         return (int) ((CGraphicsDevice) GraphicsEnvironment
 476                 .getLocalGraphicsEnvironment().getDefaultScreenDevice())
 477                 .getXResolution();
 478     }
 479 
 480     @Override
 481     public Insets getScreenInsets(final GraphicsConfiguration gc) {
 482         return ((CGraphicsConfig) gc).getDevice().getScreenInsets();
 483     }
 484 
 485     @Override
 486     public void sync() {
 487         // flush the OGL pipeline (this is a no-op if OGL is not enabled)



 488         OGLRenderQueue.sync();

 489         // setNeedsDisplay() selector was sent to the appropriate CALayer so now
 490         // we have to flush the native selectors queue.
 491         flushNativeSelectors();
 492     }
 493 
 494     @Override
 495     public RobotPeer createRobot(Robot target, GraphicsDevice screen) {
 496         return new CRobot(target, (CGraphicsDevice)screen);
 497     }
 498 
 499     private native boolean isCapsLockOn();
 500 
 501     /*
 502      * NOTE: Among the keys this method is supposed to check,
 503      * only Caps Lock works as a true locking key with OS X.
 504      * There is no Scroll Lock key on modern Apple keyboards,
 505      * and with a PC keyboard plugged in Scroll Lock is simply
 506      * ignored: no LED lights up if you press it.
 507      * The key located at the same position on Apple keyboards
 508      * as Num Lock on PC keyboards is called Clear, doesn't lock




  92 import java.util.HashMap;
  93 import java.util.Locale;
  94 import java.util.Map;
  95 import java.util.MissingResourceException;
  96 import java.util.Objects;
  97 import java.util.ResourceBundle;
  98 import java.util.concurrent.Callable;
  99 
 100 import javax.swing.UIManager;
 101 
 102 import com.apple.laf.AquaMenuBarUI;
 103 import sun.awt.AWTAccessor;
 104 import sun.awt.AppContext;
 105 import sun.awt.CGraphicsConfig;
 106 import sun.awt.CGraphicsDevice;
 107 import sun.awt.LightweightFrame;
 108 import sun.awt.PlatformGraphicsInfo;
 109 import sun.awt.SunToolkit;
 110 import sun.awt.datatransfer.DataTransferer;
 111 import sun.awt.util.ThreadGroupUtils;
 112 import sun.java2d.macos.MacOSFlags;
 113 import sun.java2d.metal.MTLRenderQueue;
 114 import sun.java2d.opengl.OGLRenderQueue;
 115 import sun.lwawt.LWComponentPeer;
 116 import sun.lwawt.LWCursorManager;
 117 import sun.lwawt.LWToolkit;
 118 import sun.lwawt.LWWindowPeer;
 119 import sun.lwawt.LWWindowPeer.PeerType;
 120 import sun.lwawt.PlatformComponent;
 121 import sun.lwawt.PlatformDropTarget;
 122 import sun.lwawt.PlatformWindow;
 123 import sun.lwawt.SecurityWarningWindow;
 124 import sun.security.action.GetBooleanAction;
 125 
 126 @SuppressWarnings("serial") // JDK implementation class
 127 final class NamedCursor extends Cursor {
 128     NamedCursor(String name) {
 129         super(name);
 130     }
 131 }
 132 
 133 /**


 470     }
 471 
 472     @Override
 473     public native void beep();
 474 
 475     @Override
 476     public int getScreenResolution() throws HeadlessException {
 477         return (int) ((CGraphicsDevice) GraphicsEnvironment
 478                 .getLocalGraphicsEnvironment().getDefaultScreenDevice())
 479                 .getXResolution();
 480     }
 481 
 482     @Override
 483     public Insets getScreenInsets(final GraphicsConfiguration gc) {
 484         return ((CGraphicsConfig) gc).getDevice().getScreenInsets();
 485     }
 486 
 487     @Override
 488     public void sync() {
 489         // flush the OGL pipeline (this is a no-op if OGL is not enabled)
 490         if (MacOSFlags.isMetalEnabled()) {
 491             MTLRenderQueue.sync();
 492         } else {
 493             OGLRenderQueue.sync();
 494         }
 495         // setNeedsDisplay() selector was sent to the appropriate CALayer so now
 496         // we have to flush the native selectors queue.
 497         flushNativeSelectors();
 498     }
 499 
 500     @Override
 501     public RobotPeer createRobot(Robot target, GraphicsDevice screen) {
 502         return new CRobot(target, (CGraphicsDevice)screen);
 503     }
 504 
 505     private native boolean isCapsLockOn();
 506 
 507     /*
 508      * NOTE: Among the keys this method is supposed to check,
 509      * only Caps Lock works as a true locking key with OS X.
 510      * There is no Scroll Lock key on modern Apple keyboards,
 511      * and with a PC keyboard plugged in Scroll Lock is simply
 512      * ignored: no LED lights up if you press it.
 513      * The key located at the same position on Apple keyboards
 514      * as Num Lock on PC keyboards is called Clear, doesn't lock


< prev index next >