Print this page
rev 54883 : JDK-8220154 Improve java2d rendering performance on macOS by using Metal framework
Split |
Close |
Expand all |
Collapse all |
--- old/src/java.desktop/macosx/classes/sun/awt/CGraphicsConfig.java
+++ new/src/java.desktop/macosx/classes/sun/awt/CGraphicsConfig.java
1 1 /*
2 2 * Copyright (c) 2011, 2019, Oracle and/or its affiliates. All rights reserved.
3 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 4 *
5 5 * This code is free software; you can redistribute it and/or modify it
6 6 * under the terms of the GNU General Public License version 2 only, as
7 7 * published by the Free Software Foundation. Oracle designates this
8 8 * particular file as subject to the "Classpath" exception as provided
9 9 * by Oracle in the LICENSE file that accompanied this code.
10 10 *
11 11 * This code is distributed in the hope that it will be useful, but WITHOUT
12 12 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13 13 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
14 14 * version 2 for more details (a copy is included in the LICENSE file that
15 15 * accompanied this code).
16 16 *
17 17 * You should have received a copy of the GNU General Public License version
18 18 * 2 along with this work; if not, write to the Free Software Foundation,
19 19 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
20 20 *
21 21 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
22 22 * or visit www.oracle.com if you need additional information or have any
23 23 * questions.
24 24 */
25 25
26 26 package sun.awt;
↓ open down ↓ |
26 lines elided |
↑ open up ↑ |
27 27
28 28 import java.awt.GraphicsConfiguration;
29 29 import java.awt.Rectangle;
30 30 import java.awt.Transparency;
31 31 import java.awt.geom.AffineTransform;
32 32 import java.awt.image.ColorModel;
33 33
34 34 import sun.java2d.SurfaceData;
35 35 import sun.java2d.opengl.CGLLayer;
36 36 import sun.lwawt.LWGraphicsConfig;
37 +import sun.lwawt.macosx.CFRetainedResource;
37 38 import sun.lwawt.macosx.CPlatformView;
38 39
39 40 public abstract class CGraphicsConfig extends GraphicsConfiguration
40 41 implements LWGraphicsConfig {
41 42
42 43 private final CGraphicsDevice device;
43 44 private ColorModel colorModel;
44 45
45 46 protected CGraphicsConfig(CGraphicsDevice device) {
46 47 this.device = device;
47 48 }
48 49
49 50 @Override
50 51 public final Rectangle getBounds() {
51 52 return device.getBounds();
52 53 }
53 54
54 55 @Override
55 56 public ColorModel getColorModel() {
56 57 if (colorModel == null) {
57 58 colorModel = getColorModel(Transparency.OPAQUE);
58 59 }
59 60 return colorModel;
60 61 }
61 62
62 63 @Override
63 64 public AffineTransform getDefaultTransform() {
64 65 double scaleFactor = device.getScaleFactor();
65 66 return AffineTransform.getScaleInstance(scaleFactor, scaleFactor);
66 67 }
67 68
68 69 @Override
69 70 public CGraphicsDevice getDevice() {
70 71 return device;
71 72 }
72 73
73 74 @Override
74 75 public AffineTransform getNormalizingTransform() {
75 76 double xscale = device.getXResolution() / 72.0;
76 77 double yscale = device.getYResolution() / 72.0;
77 78 return new AffineTransform(xscale, 0.0, 0.0, yscale, 0.0, 0.0);
78 79 }
79 80
↓ open down ↓ |
33 lines elided |
↑ open up ↑ |
80 81 /**
81 82 * Creates a new SurfaceData that will be associated with the given
82 83 * LWWindowPeer.
83 84 */
84 85 public abstract SurfaceData createSurfaceData(CPlatformView pView);
85 86
86 87 /**
87 88 * Creates a new SurfaceData that will be associated with the given
88 89 * CGLLayer.
89 90 */
90 - public abstract SurfaceData createSurfaceData(CGLLayer layer);
91 + public abstract SurfaceData createSurfaceData(CFRetainedResource layer);
91 92
92 93 @Override
93 94 public final boolean isTranslucencyCapable() {
94 95 //we know for sure we have capable config :)
95 96 return true;
96 97 }
97 98 }
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX