src/java.desktop/macosx/classes/sun/lwawt/LWComponentPeer.java
branchmetal-prototype-branch
changeset 57416 e153174dba06
parent 57400 978ffc56771f
equal deleted inserted replaced
57400:978ffc56771f 57416:e153174dba06
    75 import sun.awt.SunToolkit;
    75 import sun.awt.SunToolkit;
    76 import sun.awt.event.IgnorePaintEvent;
    76 import sun.awt.event.IgnorePaintEvent;
    77 import sun.awt.image.SunVolatileImage;
    77 import sun.awt.image.SunVolatileImage;
    78 import sun.awt.image.ToolkitImage;
    78 import sun.awt.image.ToolkitImage;
    79 import sun.java2d.SunGraphics2D;
    79 import sun.java2d.SunGraphics2D;
       
    80 import sun.java2d.macos.MacOSFlags;
       
    81 import sun.java2d.metal.MTLRenderQueue;
    80 import sun.java2d.opengl.OGLRenderQueue;
    82 import sun.java2d.opengl.OGLRenderQueue;
    81 import sun.java2d.metal.MetalRenderQueue;
       
    82 import sun.java2d.pipe.Region;
    83 import sun.java2d.pipe.Region;
       
    84 import sun.java2d.pipe.RenderQueue;
    83 import sun.util.logging.PlatformLogger;
    85 import sun.util.logging.PlatformLogger;
    84 
    86 
    85 public abstract class LWComponentPeer<T extends Component, D extends JComponent>
    87 public abstract class LWComponentPeer<T extends Component, D extends JComponent>
    86     implements ComponentPeer, DropTargetPeer
    88     implements ComponentPeer, DropTargetPeer
    87 {
    89 {
  1433             }
  1435             }
  1434         }
  1436         }
  1435     }
  1437     }
  1436 
  1438 
  1437     protected static final void flushOnscreenGraphics(){
  1439     protected static final void flushOnscreenGraphics(){
  1438 
  1440         RenderQueue rq = MacOSFlags.isMetalEnabled() ?
  1439         // Check for metal
  1441                 MTLRenderQueue.getInstance() : OGLRenderQueue.getInstance();
  1440         boolean isMetal = false;
  1442         rq.lock();
  1441         String str = System.getProperty("sun.java2d.metal");
  1443         try {
  1442 
  1444             rq.flushNow();
  1443         if (str != null) {
  1445         } finally {
  1444            //System.out.println("Property : sun.java2d.metal=" + str);
  1446             rq.unlock();
  1445             if (str.equals("true")) {
  1447         }
  1446                 isMetal = true;
  1448     }
  1447             }
       
  1448         }
       
  1449 
       
  1450         if (isMetal) {
       
  1451             final MetalRenderQueue rq = MetalRenderQueue.getInstance();
       
  1452             rq.lock();
       
  1453             try {
       
  1454                 rq.flushNow();
       
  1455             } finally {
       
  1456                 rq.unlock();
       
  1457             }
       
  1458         } else {
       
  1459 
       
  1460             final OGLRenderQueue rq = OGLRenderQueue.getInstance();
       
  1461             rq.lock();
       
  1462             try {
       
  1463                 rq.flushNow();
       
  1464             } finally {
       
  1465                 rq.unlock();
       
  1466             }
       
  1467         }
       
  1468     }
       
  1469 
       
  1470 
  1449 
  1471     /**
  1450     /**
  1472      * Used by ContainerPeer to skip all the paint events during layout.
  1451      * Used by ContainerPeer to skip all the paint events during layout.
  1473      *
  1452      *
  1474      * @param isLayouting layouting state.
  1453      * @param isLayouting layouting state.