equal
deleted
inserted
replaced
37 import java.util.ArrayList; |
37 import java.util.ArrayList; |
38 import java.util.HashSet; |
38 import java.util.HashSet; |
39 import java.util.HashMap; |
39 import java.util.HashMap; |
40 |
40 |
41 import sun.java2d.opengl.GLXGraphicsConfig; |
41 import sun.java2d.opengl.GLXGraphicsConfig; |
|
42 import sun.java2d.xr.XRGraphicsConfig; |
42 import sun.java2d.loops.SurfaceType; |
43 import sun.java2d.loops.SurfaceType; |
43 |
44 |
44 /** |
45 /** |
45 * This is an implementation of a GraphicsDevice object for a single |
46 * This is an implementation of a GraphicsDevice object for a single |
46 * X11 screen. |
47 * X11 screen. |
150 else { |
151 else { |
151 ret [0] = defaultConfig; |
152 ret [0] = defaultConfig; |
152 } |
153 } |
153 |
154 |
154 boolean glxSupported = X11GraphicsEnvironment.isGLXAvailable(); |
155 boolean glxSupported = X11GraphicsEnvironment.isGLXAvailable(); |
|
156 boolean xrenderSupported = X11GraphicsEnvironment.isXRenderAvailable(); |
|
157 |
155 boolean dbeSupported = isDBESupported(); |
158 boolean dbeSupported = isDBESupported(); |
156 if (dbeSupported && doubleBufferVisuals == null) { |
159 if (dbeSupported && doubleBufferVisuals == null) { |
157 doubleBufferVisuals = new HashSet(); |
160 doubleBufferVisuals = new HashSet(); |
158 getDoubleBufferVisuals(screen); |
161 getDoubleBufferVisuals(screen); |
159 } |
162 } |
165 } |
168 } |
166 if (ret[i] == null) { |
169 if (ret[i] == null) { |
167 boolean doubleBuffer = |
170 boolean doubleBuffer = |
168 (dbeSupported && |
171 (dbeSupported && |
169 doubleBufferVisuals.contains(Integer.valueOf(visNum))); |
172 doubleBufferVisuals.contains(Integer.valueOf(visNum))); |
170 ret[i] = X11GraphicsConfig.getConfig(this, visNum, depth, |
173 |
171 getConfigColormap(i, screen), |
174 if (xrenderSupported) { |
172 doubleBuffer); |
175 ret[i] = XRGraphicsConfig.getConfig(this, visNum, depth, getConfigColormap(i, screen), |
|
176 doubleBuffer); |
|
177 } else { |
|
178 ret[i] = X11GraphicsConfig.getConfig(this, visNum, depth, |
|
179 getConfigColormap(i, screen), |
|
180 doubleBuffer); |
|
181 } |
173 } |
182 } |
174 } |
183 } |
175 configs = ret; |
184 configs = ret; |
176 } |
185 } |
177 } |
186 } |
241 doubleBufferVisuals = new HashSet(); |
250 doubleBufferVisuals = new HashSet(); |
242 getDoubleBufferVisuals(screen); |
251 getDoubleBufferVisuals(screen); |
243 doubleBuffer = |
252 doubleBuffer = |
244 doubleBufferVisuals.contains(Integer.valueOf(visNum)); |
253 doubleBufferVisuals.contains(Integer.valueOf(visNum)); |
245 } |
254 } |
246 defaultConfig = X11GraphicsConfig.getConfig(this, visNum, |
255 |
247 depth, getConfigColormap(0, screen), |
256 if (X11GraphicsEnvironment.isXRenderAvailable()) { |
248 doubleBuffer); |
257 if (X11GraphicsEnvironment.isXRenderVerbose()) { |
|
258 System.out.println("XRender pipeline enabled"); |
|
259 } |
|
260 defaultConfig = XRGraphicsConfig.getConfig(this, visNum, |
|
261 depth, getConfigColormap(0, screen), |
|
262 doubleBuffer); |
|
263 } else { |
|
264 defaultConfig = X11GraphicsConfig.getConfig(this, visNum, |
|
265 depth, getConfigColormap(0, screen), |
|
266 doubleBuffer); |
|
267 } |
249 } |
268 } |
250 } |
269 } |
251 } |
270 } |
252 |
271 |
253 private static native void enterFullScreenExclusive(long window); |
272 private static native void enterFullScreenExclusive(long window); |