Print this page
Added gradle and cmake project

*** 31,40 **** --- 31,43 ---- import java.util.concurrent.atomic.AtomicInteger; import java.util.concurrent.atomic.AtomicReference; import sun.awt.CGraphicsConfig; import sun.awt.CGraphicsEnvironment; + import sun.java2d.macos.MacOSFlags; + import sun.java2d.metal.MTLLayer; + import sun.java2d.metal.MTLSurfaceData; import sun.lwawt.LWWindowPeer; import sun.java2d.SurfaceData; import sun.java2d.opengl.CGLLayer; import sun.java2d.opengl.CGLSurfaceData;
*** 46,75 **** private static native Rectangle2D nativeGetLocationOnScreen(long awtView); private static native boolean nativeIsViewUnderMouse(long ptr); private LWWindowPeer peer; private SurfaceData surfaceData; ! private CGLLayer windowLayer; private CPlatformResponder responder; public CPlatformView() { super(0, true); } public void initialize(LWWindowPeer peer, CPlatformResponder responder) { initializeBase(peer, responder); if (!LWCToolkit.getSunAwtDisableCALayers()) { ! this.windowLayer = createCGLayer(); } setPtr(nativeCreateView(0, 0, 0, 0, getWindowLayerPtr())); } public CGLLayer createCGLayer() { return new CGLLayer(peer); } protected void initializeBase(LWWindowPeer peer, CPlatformResponder responder) { this.peer = peer; this.responder = responder; } --- 49,83 ---- private static native Rectangle2D nativeGetLocationOnScreen(long awtView); private static native boolean nativeIsViewUnderMouse(long ptr); private LWWindowPeer peer; private SurfaceData surfaceData; ! private CFRetainedResource windowLayer; private CPlatformResponder responder; public CPlatformView() { super(0, true); } public void initialize(LWWindowPeer peer, CPlatformResponder responder) { initializeBase(peer, responder); if (!LWCToolkit.getSunAwtDisableCALayers()) { ! this.windowLayer = MacOSFlags.isMetalEnabled()? createMTLLayer() : createCGLayer(); } setPtr(nativeCreateView(0, 0, 0, 0, getWindowLayerPtr())); } public CGLLayer createCGLayer() { return new CGLLayer(peer); } + public MTLLayer createMTLLayer() { + return new MTLLayer(peer); + } + + protected void initializeBase(LWWindowPeer peer, CPlatformResponder responder) { this.peer = peer; this.responder = responder; }
*** 105,115 **** // ---------------------------------------------------------------------- // PAINTING METHODS // ---------------------------------------------------------------------- public SurfaceData replaceSurfaceData() { if (!LWCToolkit.getSunAwtDisableCALayers()) { ! surfaceData = windowLayer.replaceSurfaceData(); } else { if (surfaceData == null) { CGraphicsConfig graphicsConfig = (CGraphicsConfig)getGraphicsConfiguration(); surfaceData = graphicsConfig.createSurfaceData(this); } else { --- 113,126 ---- // ---------------------------------------------------------------------- // PAINTING METHODS // ---------------------------------------------------------------------- public SurfaceData replaceSurfaceData() { if (!LWCToolkit.getSunAwtDisableCALayers()) { ! surfaceData = (MacOSFlags.isMetalEnabled()) ? ! ((MTLLayer)windowLayer).replaceSurfaceData() : ! ((CGLLayer)windowLayer).replaceSurfaceData() ! ; } else { if (surfaceData == null) { CGraphicsConfig graphicsConfig = (CGraphicsConfig)getGraphicsConfiguration(); surfaceData = graphicsConfig.createSurfaceData(this); } else {
*** 119,129 **** return surfaceData; } private void validateSurface() { if (surfaceData != null) { ! ((CGLSurfaceData)surfaceData).validate(); } } public GraphicsConfiguration getGraphicsConfiguration() { return peer.getGraphicsConfiguration(); --- 130,144 ---- return surfaceData; } private void validateSurface() { if (surfaceData != null) { ! if (MacOSFlags.isMetalEnabled()) { ! ((MTLSurfaceData) surfaceData).validate(); ! } else { ! ((CGLSurfaceData) surfaceData).validate(); ! } } } public GraphicsConfiguration getGraphicsConfiguration() { return peer.getGraphicsConfiguration();
*** 141,151 **** super.dispose(); } public long getWindowLayerPtr() { if (!LWCToolkit.getSunAwtDisableCALayers()) { ! return windowLayer.getPointer(); } else { return 0; } } --- 156,168 ---- super.dispose(); } public long getWindowLayerPtr() { if (!LWCToolkit.getSunAwtDisableCALayers()) { ! return MacOSFlags.isMetalEnabled() ? ! ((MTLLayer)windowLayer).getPointer() : ! ((CGLLayer)windowLayer).getPointer(); } else { return 0; } }