< prev index next >

src/java.desktop/unix/classes/sun/java2d/opengl/GLXGraphicsConfig.java

Print this page




  10  *
  11  * This code is distributed in the hope that it will be useful, but WITHOUT
  12  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  13  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  14  * version 2 for more details (a copy is included in the LICENSE file that
  15  * accompanied this code).
  16  *
  17  * You should have received a copy of the GNU General Public License version
  18  * 2 along with this work; if not, write to the Free Software Foundation,
  19  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  20  *
  21  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  22  * or visit www.oracle.com if you need additional information or have any
  23  * questions.
  24  */
  25 
  26 package sun.java2d.opengl;
  27 
  28 import java.awt.AWTException;
  29 import java.awt.BufferCapabilities;
  30 import java.awt.BufferCapabilities.FlipContents;
  31 import java.awt.Color;
  32 import java.awt.Component;
  33 import java.awt.Graphics;
  34 import java.awt.Graphics2D;
  35 import java.awt.Image;
  36 import java.awt.ImageCapabilities;
  37 import java.awt.Transparency;
  38 import java.awt.color.ColorSpace;
  39 import java.awt.image.BufferedImage;
  40 import java.awt.image.ColorModel;
  41 import java.awt.image.DataBuffer;
  42 import java.awt.image.DirectColorModel;
  43 import java.awt.image.VolatileImage;
  44 import java.awt.image.WritableRaster;
  45 import sun.awt.X11ComponentPeer;
  46 import sun.awt.X11GraphicsConfig;
  47 import sun.awt.X11GraphicsDevice;
  48 import sun.awt.X11GraphicsEnvironment;
  49 import sun.awt.image.OffScreenImage;
  50 import sun.awt.image.SunVolatileImage;
  51 import sun.awt.image.SurfaceManager;
  52 import sun.java2d.SunGraphics2D;
  53 import sun.java2d.Surface;
  54 import sun.java2d.SurfaceData;
  55 import sun.java2d.pipe.hw.AccelSurface;
  56 import sun.java2d.pipe.hw.AccelTypedVolatileImage;
  57 import sun.java2d.pipe.hw.ContextCapabilities;
  58 import static sun.java2d.opengl.OGLSurfaceData.*;
  59 import static sun.java2d.opengl.OGLContext.*;
  60 import static sun.java2d.opengl.OGLContext.OGLContextCaps.*;
  61 import sun.java2d.opengl.GLXSurfaceData.GLXVSyncOffScreenSurfaceData;
  62 import sun.java2d.pipe.hw.AccelDeviceEventListener;
  63 import sun.java2d.pipe.hw.AccelDeviceEventNotifier;
  64 
  65 public class GLXGraphicsConfig
  66     extends X11GraphicsConfig
  67     implements OGLGraphicsConfig
  68 {
  69     private static ImageCapabilities imageCaps = new GLXImageCaps();
  70     private BufferCapabilities bufferCaps;
  71     private long pConfigInfo;
  72     private ContextCapabilities oglCaps;
  73     private OGLContext context;
  74 
  75     private static native long getGLXConfigInfo(int screennum, int visualnum);
  76     private static native int getOGLCapabilities(long configInfo);
  77     private native void initConfig(long aData, long ctxinfo);
  78 
  79     private GLXGraphicsConfig(X11GraphicsDevice device, int visualnum,
  80                               long configInfo, ContextCapabilities oglCaps)
  81     {
  82         super(device, visualnum, 0, 0,
  83               (oglCaps.getCaps() & CAPS_DOUBLEBUFFERED) != 0);


 408                                                           transparency, type);
 409         Surface sd = vi.getDestSurface();
 410         if (!(sd instanceof AccelSurface) ||
 411             ((AccelSurface)sd).getType() != type)
 412         {
 413             vi.flush();
 414             vi = null;
 415         }
 416 
 417         return vi;
 418     }
 419 
 420     /**
 421      * {@inheritDoc}
 422      *
 423      * @see sun.java2d.pipe.hw.AccelGraphicsConfig#getContextCapabilities
 424      */
 425     @Override
 426     public ContextCapabilities getContextCapabilities() {
 427         return oglCaps;
 428     }
 429 
 430     @Override
 431     public void addDeviceEventListener(AccelDeviceEventListener l) {
 432         AccelDeviceEventNotifier.addListener(l, screen.getScreen());
 433     }
 434 
 435     @Override
 436     public void removeDeviceEventListener(AccelDeviceEventListener l) {
 437         AccelDeviceEventNotifier.removeListener(l);
 438     }
 439 }


  10  *
  11  * This code is distributed in the hope that it will be useful, but WITHOUT
  12  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  13  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  14  * version 2 for more details (a copy is included in the LICENSE file that
  15  * accompanied this code).
  16  *
  17  * You should have received a copy of the GNU General Public License version
  18  * 2 along with this work; if not, write to the Free Software Foundation,
  19  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  20  *
  21  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  22  * or visit www.oracle.com if you need additional information or have any
  23  * questions.
  24  */
  25 
  26 package sun.java2d.opengl;
  27 
  28 import java.awt.AWTException;
  29 import java.awt.BufferCapabilities;

  30 import java.awt.Color;
  31 import java.awt.Component;
  32 import java.awt.Graphics;
  33 import java.awt.Graphics2D;
  34 import java.awt.Image;
  35 import java.awt.ImageCapabilities;
  36 import java.awt.Transparency;
  37 import java.awt.color.ColorSpace;
  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 import sun.awt.X11ComponentPeer;
  45 import sun.awt.X11GraphicsConfig;
  46 import sun.awt.X11GraphicsDevice;
  47 import sun.awt.X11GraphicsEnvironment;
  48 import sun.awt.image.OffScreenImage;
  49 import sun.awt.image.SunVolatileImage;
  50 import sun.awt.image.SurfaceManager;
  51 import sun.java2d.SunGraphics2D;
  52 import sun.java2d.Surface;
  53 import sun.java2d.SurfaceData;
  54 import sun.java2d.pipe.hw.AccelSurface;
  55 import sun.java2d.pipe.hw.AccelTypedVolatileImage;
  56 import sun.java2d.pipe.hw.ContextCapabilities;
  57 import static sun.java2d.opengl.OGLSurfaceData.*;
  58 import static sun.java2d.opengl.OGLContext.*;
  59 import static sun.java2d.opengl.OGLContext.OGLContextCaps.*;
  60 import sun.java2d.opengl.GLXSurfaceData.GLXVSyncOffScreenSurfaceData;


  61 
  62 public class GLXGraphicsConfig
  63     extends X11GraphicsConfig
  64     implements OGLGraphicsConfig
  65 {
  66     private static ImageCapabilities imageCaps = new GLXImageCaps();
  67     private BufferCapabilities bufferCaps;
  68     private long pConfigInfo;
  69     private ContextCapabilities oglCaps;
  70     private OGLContext context;
  71 
  72     private static native long getGLXConfigInfo(int screennum, int visualnum);
  73     private static native int getOGLCapabilities(long configInfo);
  74     private native void initConfig(long aData, long ctxinfo);
  75 
  76     private GLXGraphicsConfig(X11GraphicsDevice device, int visualnum,
  77                               long configInfo, ContextCapabilities oglCaps)
  78     {
  79         super(device, visualnum, 0, 0,
  80               (oglCaps.getCaps() & CAPS_DOUBLEBUFFERED) != 0);


 405                                                           transparency, type);
 406         Surface sd = vi.getDestSurface();
 407         if (!(sd instanceof AccelSurface) ||
 408             ((AccelSurface)sd).getType() != type)
 409         {
 410             vi.flush();
 411             vi = null;
 412         }
 413 
 414         return vi;
 415     }
 416 
 417     /**
 418      * {@inheritDoc}
 419      *
 420      * @see sun.java2d.pipe.hw.AccelGraphicsConfig#getContextCapabilities
 421      */
 422     @Override
 423     public ContextCapabilities getContextCapabilities() {
 424         return oglCaps;










 425     }
 426 }
< prev index next >