< prev index next >

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

Print this page
rev 55352 : JB_base_webrev


  38 import java.awt.image.BufferedImage;
  39 import java.awt.image.ColorModel;
  40 import java.awt.image.DataBuffer;
  41 import java.awt.image.DirectColorModel;
  42 import java.awt.image.VolatileImage;
  43 import java.awt.image.WritableRaster;
  44 
  45 import sun.awt.CGraphicsConfig;
  46 import sun.awt.CGraphicsDevice;
  47 import sun.awt.image.OffScreenImage;
  48 import sun.awt.image.SunVolatileImage;
  49 import sun.java2d.Disposer;
  50 import sun.java2d.DisposerRecord;
  51 import sun.java2d.Surface;
  52 import sun.java2d.SurfaceData;
  53 import sun.java2d.opengl.OGLContext.OGLContextCaps;
  54 import sun.java2d.pipe.hw.AccelSurface;
  55 import sun.java2d.pipe.hw.AccelTypedVolatileImage;
  56 import sun.java2d.pipe.hw.ContextCapabilities;
  57 import sun.lwawt.LWComponentPeer;

  58 import sun.lwawt.macosx.CPlatformView;
  59 
  60 import static sun.java2d.opengl.OGLContext.OGLContextCaps.CAPS_DOUBLEBUFFERED;
  61 import static sun.java2d.opengl.OGLContext.OGLContextCaps.CAPS_EXT_FBOBJECT;
  62 import static sun.java2d.opengl.OGLSurfaceData.FBOBJECT;
  63 import static sun.java2d.opengl.OGLSurfaceData.TEXTURE;
  64 
  65 public final class CGLGraphicsConfig extends CGraphicsConfig
  66     implements OGLGraphicsConfig
  67 {
  68     //private static final int kOpenGLSwapInterval =
  69     // RuntimeOptions.getCurrentOptions().OpenGLSwapInterval;
  70     private static final int kOpenGLSwapInterval = 0; // TODO
  71     private static boolean cglAvailable;
  72     private static ImageCapabilities imageCaps = new CGLImageCaps();
  73 
  74     private int pixfmt;
  75     private BufferCapabilities bufferCaps;
  76     private long pConfigInfo;
  77     private ContextCapabilities oglCaps;


 247         rq.lock();
 248         try {
 249             OGLContext.invalidateCurrentContext();
 250         } finally {
 251             rq.unlock();
 252         }
 253     }
 254 
 255     @Override
 256     public String toString() {
 257         String display = getDevice().getIDstring();
 258         return ("CGLGraphicsConfig[" + display + ", pixfmt=" + pixfmt + "]");
 259     }
 260 
 261     @Override
 262     public SurfaceData createSurfaceData(CPlatformView pView) {
 263         return CGLSurfaceData.createData(pView);
 264     }
 265 
 266     @Override
 267     public SurfaceData createSurfaceData(CGLLayer layer) {
 268         return CGLSurfaceData.createData(layer);
 269     }
 270 
 271     @Override
 272     public Image createAcceleratedImage(Component target,
 273                                         int width, int height)
 274     {
 275         ColorModel model = getColorModel(Transparency.OPAQUE);
 276         WritableRaster wr = model.createCompatibleWritableRaster(width, height);
 277         return new OffScreenImage(target, model, wr,
 278                                   model.isAlphaPremultiplied());
 279     }
 280 
 281     @Override
 282     public void assertOperationSupported(final int numBuffers,
 283                                          final BufferCapabilities caps)
 284             throws AWTException {
 285         // Assume this method is never called with numBuffers != 2, as 0 is
 286         // unsupported, and 1 corresponds to a SingleBufferStrategy which
 287         // doesn't depend on the peer. Screen is considered as a separate
 288         // "buffer".




  38 import java.awt.image.BufferedImage;
  39 import java.awt.image.ColorModel;
  40 import java.awt.image.DataBuffer;
  41 import java.awt.image.DirectColorModel;
  42 import java.awt.image.VolatileImage;
  43 import java.awt.image.WritableRaster;
  44 
  45 import sun.awt.CGraphicsConfig;
  46 import sun.awt.CGraphicsDevice;
  47 import sun.awt.image.OffScreenImage;
  48 import sun.awt.image.SunVolatileImage;
  49 import sun.java2d.Disposer;
  50 import sun.java2d.DisposerRecord;
  51 import sun.java2d.Surface;
  52 import sun.java2d.SurfaceData;
  53 import sun.java2d.opengl.OGLContext.OGLContextCaps;
  54 import sun.java2d.pipe.hw.AccelSurface;
  55 import sun.java2d.pipe.hw.AccelTypedVolatileImage;
  56 import sun.java2d.pipe.hw.ContextCapabilities;
  57 import sun.lwawt.LWComponentPeer;
  58 import sun.lwawt.macosx.CFRetainedResource;
  59 import sun.lwawt.macosx.CPlatformView;
  60 
  61 import static sun.java2d.opengl.OGLContext.OGLContextCaps.CAPS_DOUBLEBUFFERED;
  62 import static sun.java2d.opengl.OGLContext.OGLContextCaps.CAPS_EXT_FBOBJECT;
  63 import static sun.java2d.opengl.OGLSurfaceData.FBOBJECT;
  64 import static sun.java2d.opengl.OGLSurfaceData.TEXTURE;
  65 
  66 public final class CGLGraphicsConfig extends CGraphicsConfig
  67     implements OGLGraphicsConfig
  68 {
  69     //private static final int kOpenGLSwapInterval =
  70     // RuntimeOptions.getCurrentOptions().OpenGLSwapInterval;
  71     private static final int kOpenGLSwapInterval = 0; // TODO
  72     private static boolean cglAvailable;
  73     private static ImageCapabilities imageCaps = new CGLImageCaps();
  74 
  75     private int pixfmt;
  76     private BufferCapabilities bufferCaps;
  77     private long pConfigInfo;
  78     private ContextCapabilities oglCaps;


 248         rq.lock();
 249         try {
 250             OGLContext.invalidateCurrentContext();
 251         } finally {
 252             rq.unlock();
 253         }
 254     }
 255 
 256     @Override
 257     public String toString() {
 258         String display = getDevice().getIDstring();
 259         return ("CGLGraphicsConfig[" + display + ", pixfmt=" + pixfmt + "]");
 260     }
 261 
 262     @Override
 263     public SurfaceData createSurfaceData(CPlatformView pView) {
 264         return CGLSurfaceData.createData(pView);
 265     }
 266 
 267     @Override
 268     public SurfaceData createSurfaceData(CFRetainedResource layer) {
 269         return CGLSurfaceData.createData((CGLLayer) layer);
 270     }
 271 
 272     @Override
 273     public Image createAcceleratedImage(Component target,
 274                                         int width, int height)
 275     {
 276         ColorModel model = getColorModel(Transparency.OPAQUE);
 277         WritableRaster wr = model.createCompatibleWritableRaster(width, height);
 278         return new OffScreenImage(target, model, wr,
 279                                   model.isAlphaPremultiplied());
 280     }
 281 
 282     @Override
 283     public void assertOperationSupported(final int numBuffers,
 284                                          final BufferCapabilities caps)
 285             throws AWTException {
 286         // Assume this method is never called with numBuffers != 2, as 0 is
 287         // unsupported, and 1 corresponds to a SingleBufferStrategy which
 288         // doesn't depend on the peer. Screen is considered as a separate
 289         // "buffer".


< prev index next >