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. |