Package java.awt

Examples of java.awt.BufferCapabilities


    window.displayLeaveFullscreen();
  }

  public void canvasSetRenderingMode() {
    if (Monitor.MULTI_BUFFERING <= 0) return;
    BufferCapabilities desiredCaps = new BufferCapabilities(
      new ImageCapabilities(true), new ImageCapabilities(true),
      Monitor.PAGE_FLIPPING ? FlipContents.BACKGROUND : null
    );
    Class<?> extBufCapClass = null;
    try {
      // Creates ExtendedBufferCapabilities via reflection to avoid problems with AccessControl
      extBufCapClass = Class.forName("sun.java2d.pipe.hw.ExtendedBufferCapabilities");
    } catch (Exception ex) {}
    // First try with vSync option
    if (extBufCapClass != null && Monitor.BUFFER_VSYNC != -1)
      try {
        // Creates ExtendedBufferCapabilities via reflection to avoid problems with AccessControl
        Class<?> vSyncTypeClass = Class.forName("sun.java2d.pipe.hw.ExtendedBufferCapabilities$VSyncType");
        Constructor<?> extBufCapConstructor = extBufCapClass.getConstructor(
          new Class[] { BufferCapabilities.class, vSyncTypeClass }
        );
              Object vSyncType = vSyncTypeClass.getField(Monitor.BUFFER_VSYNC == 1 ? "VSYNC_ON" : "VSYNC_OFF").get(null);
              BufferCapabilities extBuffCaps = (BufferCapabilities)extBufCapConstructor.newInstance(
                new Object[] { desiredCaps, vSyncType }
              );
              // Try creating the BufferStrategy
              this.createBufferStrategy(Monitor.MULTI_BUFFERING, extBuffCaps);
      } catch (Exception ex) {}
    // Then try with remaining options (Flipping, etc)
    if (this.getBufferStrategy() == null)
      try {
        this.createBufferStrategy(Monitor.MULTI_BUFFERING, desiredCaps);
      } catch (Exception ex) {}
    // Last, use the default
    if (this.getBufferStrategy() == null) {
      System.out.println("Could not create desired BufferStrategy. Switching to default...");
      this.createBufferStrategy(Monitor.MULTI_BUFFERING);
    }
    bufferStrategy = this.getBufferStrategy();
    // Show info about the granted BufferStrategy
    if (bufferStrategy != null) System.out.println("Buffer Strategy: " + bufferStrategy.getClass().getSimpleName());
    BufferCapabilities grantedCaps = bufferStrategy.getCapabilities();
    System.out.println("Backbuffer Accelerated: " + grantedCaps.getBackBufferCapabilities().isAccelerated());
    System.out.println("PageFlipping Active: " + grantedCaps.isPageFlipping() + ", " + grantedCaps.getFlipContents());
    if (extBufCapClass != null && grantedCaps.getClass().equals(extBufCapClass))
      try {
        System.out.println("VSynch active: " + extBufCapClass.getMethod("getVSync",(Class<?>[])null).invoke(grantedCaps));
      } catch (Exception ex) {}
  }
View Full Code Here


    fullScreen = true;
  }

  public void canvasSetRenderingMode() {
    if (Monitor.MULTI_BUFFERING <= 0) return;
    BufferCapabilities desiredCaps = new BufferCapabilities(
      new ImageCapabilities(true), new ImageCapabilities(true),
      Monitor.PAGE_FLIPPING ? FlipContents.BACKGROUND : null
    );
    Class<?> extBufCapClass = null;
    try {
      // Creates ExtendedBufferCapabilities via reflection to avoid problems with AccessControl
      extBufCapClass = Class.forName("sun.java2d.pipe.hw.ExtendedBufferCapabilities");
    } catch (Exception ex) {}
    // First try with vSync option
    if (extBufCapClass != null && Monitor.BUFFER_VSYNC != -1)
      try {
        // Creates ExtendedBufferCapabilities via reflection to avoid problems with AccessControl
        Class<?> vSyncTypeClass = Class.forName("sun.java2d.pipe.hw.ExtendedBufferCapabilities$VSyncType");
        Constructor<?> extBufCapConstructor = extBufCapClass.getConstructor(
          new Class[] { BufferCapabilities.class, vSyncTypeClass }
        );
              Object vSyncType = vSyncTypeClass.getField(Monitor.BUFFER_VSYNC == 1 ? "VSYNC_ON" : "VSYNC_OFF").get(null);
              BufferCapabilities extBuffCaps = (BufferCapabilities)extBufCapConstructor.newInstance(
                new Object[] { desiredCaps, vSyncType }
              );
              // Try creating the BufferStrategy
              canvas.createBufferStrategy(Monitor.MULTI_BUFFERING, extBuffCaps);
      } catch (Exception ex) {}
    // Then try with remaining options (Flipping, etc)
    if (canvas.getBufferStrategy() == null)
      try {
        canvas.createBufferStrategy(Monitor.MULTI_BUFFERING, desiredCaps);
      } catch (Exception ex) {}
    // Last, use the default
    if (canvas.getBufferStrategy() == null) {
      System.out.println("Could not create desired BufferStrategy. Switching to default...");
      canvas.createBufferStrategy(Monitor.MULTI_BUFFERING);
    }
    bufferStrategy = canvas.getBufferStrategy();
    // Show info about the granted BufferStrategy
    if (bufferStrategy != null) System.out.println("Buffer Strategy: " + bufferStrategy.getClass().getSimpleName());
    BufferCapabilities grantedCaps = bufferStrategy.getCapabilities();
    System.out.println("Backbuffer Accelerated: " + grantedCaps.getBackBufferCapabilities().isAccelerated());
    System.out.println("PageFlipping Active: " + grantedCaps.isPageFlipping() + ", " + grantedCaps.getFlipContents());
    if (extBufCapClass != null && grantedCaps.getClass().equals(extBufCapClass))
      try {
        System.out.println("VSynch active: " + extBufCapClass.getMethod("getVSync",(Class<?>[])null).invoke(grantedCaps));
      } catch (Exception ex) {}
  }
View Full Code Here

        }
        if (numBuffers > 2) {
            throw new AWTException(
                "Only double or single buffering is supported");
        }
        BufferCapabilities configCaps = getBufferCapabilities();
        if (!configCaps.isPageFlipping()) {
            throw new AWTException("Page flipping is not supported");
        }

        long window = peer.getContentWindow();
        int swapAction = getSwapAction(caps.getFlipContents());
View Full Code Here

            if (red != 8) return false;
            if (green != 8) return false;
            if (blue != 8) return false;
        }
        // Check double buffer
        BufferCapabilities bc = gc.getBufferCapabilities();
        if (caps.getDoubleBuffered() && !bc.isPageFlipping()) return false;
        if (caps.getStereo() && !bc.isMultiBufferAvailable()) return false;
        if (!fullscreen && bc.isFullScreenRequired()) return false;
        // Check hardware acceleration
        ImageCapabilities ic = bc.getBackBufferCapabilities();
        if (caps.getHardwareAccelerated() && !ic.isAccelerated()) return false;
        if (fullscreen && !gc.getDevice().isFullScreenSupported()) return false;
        // Default: OK
        return true;
    }
View Full Code Here

TOP

Related Classes of java.awt.BufferCapabilities

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.