< prev index next >

src/java.desktop/macosx/classes/sun/java2d/opengl/CGLVolatileSurfaceManager.java

Print this page

        

@@ -43,38 +43,33 @@
 import sun.java2d.pipe.hw.ExtendedBufferCapabilities;
 import static sun.java2d.pipe.hw.ExtendedBufferCapabilities.VSyncType.*;
 
 public class CGLVolatileSurfaceManager extends VolatileSurfaceManager {
 
-    private boolean accelerationEnabled;
+    private final boolean accelerationEnabled;
 
     public CGLVolatileSurfaceManager(SunVolatileImage vImg, Object context) {
         super(vImg, context);
 
         /*
          * We will attempt to accelerate this image only under the
          * following conditions:
-         *   - the image is opaque OR
-         *   - the image is translucent AND
-         *       - the GraphicsConfig supports the FBO extension OR
-         *       - the GraphicsConfig has a stored alpha channel
+         *   - the image is not bitmask AND the GraphicsConfig supports the FBO
+         *     extension
          */
         int transparency = vImg.getTransparency();
-        CGLGraphicsConfig gc = (CGLGraphicsConfig)vImg.getGraphicsConfig();
-        accelerationEnabled =
-            (transparency == Transparency.OPAQUE) ||
-            ((transparency == Transparency.TRANSLUCENT) &&
-             (gc.isCapPresent(CAPS_EXT_FBOBJECT) ||
-              gc.isCapPresent(CAPS_STORED_ALPHA)));
+        CGLGraphicsConfig gc = (CGLGraphicsConfig) vImg.getGraphicsConfig();
+        accelerationEnabled = gc.isCapPresent(CAPS_EXT_FBOBJECT)
+                && transparency != Transparency.BITMASK;
     }
 
     protected boolean isAccelerationEnabled() {
         return accelerationEnabled;
     }
 
     /**
-     * Create a pbuffer-based SurfaceData object (or init the backbuffer
+     * Create a FBO-based SurfaceData object (or init the backbuffer
      * of an existing window if this is a double buffered GraphicsConfig)
      */
     protected SurfaceData initAcceleratedSurface() {
         SurfaceData sData = null;
         Component comp = vImg.getComponent();

@@ -111,14 +106,13 @@
                 CGLGraphicsConfig gc =
                     (CGLGraphicsConfig)vImg.getGraphicsConfig();
                 ColorModel cm = gc.getColorModel(vImg.getTransparency());
                 int type = vImg.getForcedAccelSurfaceType();
                 // if acceleration type is forced (type != UNDEFINED) then
-                // use the forced type, otherwise choose one based on caps
+                // use the forced type, otherwise choose FBOBJECT
                 if (type == OGLSurfaceData.UNDEFINED) {
-                    type = gc.isCapPresent(CAPS_EXT_FBOBJECT) ?
-                        OGLSurfaceData.FBOBJECT : OGLSurfaceData.PBUFFER;
+                    type = OGLSurfaceData.FBOBJECT;
                 }
                 if (createVSynced) {
                     // TODO: modify parameter to delegate
 //                  sData = CGLSurfaceData.createData(peer, vImg, type);
                 } else {
< prev index next >