# HG changeset patch # User jdv # Date 1561101130 -19800 # Node ID 28582d575a985beabef2468cff6f001978f8f292 # Parent e153174dba06207520c8582657a8e6fab086385f Enable volatileimage usage for back buffer diff -r e153174dba06 -r 28582d575a98 src/java.desktop/macosx/native/libawt_lwawt/awt/AWTSurfaceLayers.m --- a/src/java.desktop/macosx/native/libawt_lwawt/awt/AWTSurfaceLayers.m Fri Jun 21 12:08:37 2019 +0530 +++ b/src/java.desktop/macosx/native/libawt_lwawt/awt/AWTSurfaceLayers.m Fri Jun 21 12:42:10 2019 +0530 @@ -29,7 +29,6 @@ #import #import -#import @implementation AWTSurfaceLayers @@ -70,10 +69,8 @@ // Updates back buffer size of the layer if it's an OpenGL layer // including all OpenGL sublayers -// TODO : Added check for CAMetalLayer also but this needs to be verified. + (void) repaintLayersRecursively:(CALayer*)aLayer { - if ([aLayer isKindOfClass:[CAOpenGLLayer class]] || - [aLayer isKindOfClass:[CAMetalLayer class]]) { + if ([aLayer isKindOfClass:[CAOpenGLLayer class]]) { [aLayer setNeedsDisplay]; } for(CALayer *child in aLayer.sublayers) { diff -r e153174dba06 -r 28582d575a98 src/java.desktop/macosx/native/libawt_lwawt/awt/AWTView.m --- a/src/java.desktop/macosx/native/libawt_lwawt/awt/AWTView.m Fri Jun 21 12:08:37 2019 +0530 +++ b/src/java.desktop/macosx/native/libawt_lwawt/awt/AWTView.m Fri Jun 21 12:42:10 2019 +0530 @@ -70,13 +70,7 @@ @synthesize cglLayer; @synthesize mouseIsOver; -/* - * TODO : Eventhough the name of variable is cgllayer, - * we are setting common CALayer properties, so we might not - * to add one more variable for CAMetalLayer. Also have - * to verify REMOTE_LAYER use case, if it is need then we - * need to add CAMetalLayer specific logic. - */ + // Note: Must be called on main (AppKit) thread only - (id) initWithRect: (NSRect) rect platformView: (jobject) cPlatformView diff -r e153174dba06 -r 28582d575a98 src/java.desktop/share/classes/javax/swing/RepaintManager.java --- a/src/java.desktop/share/classes/javax/swing/RepaintManager.java Fri Jun 21 12:08:37 2019 +0530 +++ b/src/java.desktop/share/classes/javax/swing/RepaintManager.java Fri Jun 21 12:42:10 2019 +0530 @@ -129,13 +129,7 @@ private static final Object repaintManagerKey = RepaintManager.class; // Whether or not a VolatileImage should be used for double-buffered painting - // TODO : We have not yet implemented MetalBlitLoops logic. - // Because once we draw into offline buffer we need blitloops - // logic to blit the content into destination buffer. - // When we have blitloops logic for Metal we can enable usage - // of offscreen volatile image - //static boolean volatileImageBufferEnabled = true; - static boolean volatileImageBufferEnabled = false; + static boolean volatileImageBufferEnabled = true; /** * Type of VolatileImage which should be used for double-buffered * painting. @@ -217,14 +211,13 @@ } }); - // TODO : Revert this change after we implement MetalBlitLoops - /*volatileImageBufferEnabled = "true".equals(AccessController. + volatileImageBufferEnabled = "true".equals(AccessController. doPrivileged(new GetPropertyAction( - "swing.volatileImageBufferEnabled", "true")));*/ + "swing.volatileImageBufferEnabled", "true"))); boolean headless = GraphicsEnvironment.isHeadless(); - /*if (volatileImageBufferEnabled && headless) { + if (volatileImageBufferEnabled && headless) { volatileImageBufferEnabled = false; - }*/ + } nativeDoubleBuffering = "true".equals(AccessController.doPrivileged( new GetPropertyAction("awt.nativeDoubleBuffering"))); String bs = AccessController.doPrivileged(