jdk/src/solaris/classes/sun/awt/X11GraphicsDevice.java
changeset 5579 1a5e995a710b
parent 5275 fa9f5ce2006e
child 5580 629274e4c99f
equal deleted inserted replaced
5578:c25ebb5bc2d6 5579:1a5e995a710b
    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);