Search in sources :

Example 1 with ImageCapabilities

use of java.awt.ImageCapabilities in project jdk8u_jdk by JetBrains.

the class VSyncedBufferStrategyTest method createBS.

private void createBS(boolean requestVSync) {
    if (bs != null && requestVSync == currentBSVSynced) {
        return;
    }
    BufferCapabilities bc = defaultBC;
    if (requestVSync) {
        bc = new sun.java2d.pipe.hw.ExtendedBufferCapabilities(new ImageCapabilities(true), new ImageCapabilities(true), FlipContents.COPIED, sun.java2d.pipe.hw.ExtendedBufferCapabilities.VSyncType.VSYNC_ON);
    }
    try {
        createBufferStrategy(2, bc);
    } catch (AWTException e) {
        System.err.println("Warning: cap is not supported: " + bc);
        e.printStackTrace();
        createBufferStrategy(2);
    }
    currentBSVSynced = requestVSync;
    bs = getBufferStrategy();
    String s = getParent() instanceof Frame ? ((Frame) getParent()).getTitle() : "parent";
    System.out.println("Created BS for \"" + s + "\" frame, bs=" + bs);
}
Also used : JFrame(javax.swing.JFrame) Frame(java.awt.Frame) BufferCapabilities(java.awt.BufferCapabilities) ImageCapabilities(java.awt.ImageCapabilities) AWTException(java.awt.AWTException)

Example 2 with ImageCapabilities

use of java.awt.ImageCapabilities in project jdk8u_jdk by JetBrains.

the class CustomCompositeTest method testVolatileImage.

private static void testVolatileImage(GraphicsConfiguration cfg, boolean accelerated) {
    VolatileImage dst = null;
    try {
        dst = cfg.createCompatibleVolatileImage(640, 480, new ImageCapabilities(accelerated));
    } catch (AWTException e) {
        System.out.println("Unable to create volatile image, skip the test.");
        return;
    }
    renderToVolatileImage(dst);
}
Also used : VolatileImage(java.awt.image.VolatileImage) ImageCapabilities(java.awt.ImageCapabilities) AWTException(java.awt.AWTException)

Example 3 with ImageCapabilities

use of java.awt.ImageCapabilities in project jdk8u_jdk by JetBrains.

the class JPEGsNotAcceleratedTest method runTestOnImage.

public void runTestOnImage(String desc, BufferedImage bi, Rectangle srcROI) {
    if (srcROI == null) {
        srcROI = new Rectangle(0, 0, TEST_W, TEST_H);
    }
    VolatileImage testVI = accelerateImage(bi);
    ImageCapabilities ic = bi.getCapabilities(f.getGraphicsConfiguration());
    boolean accelerated = ic.isAccelerated();
    System.err.println("Testing: " + desc + " -- bi.isAccelerated(): " + accelerated);
    BufferedImage snapshot = testVI.getSnapshot();
    if (showRes) {
        showRes(desc, snapshot);
    }
    for (int y = 0; y < srcROI.height; y++) {
        for (int x = 0; x < srcROI.width; x++) {
            int destRGB = snapshot.getRGB(x, y);
            if (destRGB != testRGB && destRGB != 0xfffe0000) {
                failed = true;
                System.err.printf("Test failed at %dx%d pixel=%x\n", x, y, snapshot.getRGB(x, y));
                if (!showRes) {
                    showRes(desc, snapshot);
                }
                break;
            }
        }
    }
}
Also used : VolatileImage(java.awt.image.VolatileImage) Rectangle(java.awt.Rectangle) ImageCapabilities(java.awt.ImageCapabilities) BufferedImage(java.awt.image.BufferedImage)

Example 4 with ImageCapabilities

use of java.awt.ImageCapabilities in project javatari by ppeccin.

the class DesktopScreenWindow method canvasSetRenderingMode.

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) {
        }
}
Also used : BufferCapabilities(java.awt.BufferCapabilities) Constructor(java.lang.reflect.Constructor) ImageCapabilities(java.awt.ImageCapabilities) IOException(java.io.IOException)

Example 5 with ImageCapabilities

use of java.awt.ImageCapabilities in project javatari by ppeccin.

the class DesktopScreenFullWindow method canvasSetRenderingMode.

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) {
        }
}
Also used : BufferCapabilities(java.awt.BufferCapabilities) Constructor(java.lang.reflect.Constructor) ImageCapabilities(java.awt.ImageCapabilities)

Aggregations

ImageCapabilities (java.awt.ImageCapabilities)6 BufferCapabilities (java.awt.BufferCapabilities)4 Constructor (java.lang.reflect.Constructor)3 AWTException (java.awt.AWTException)2 VolatileImage (java.awt.image.VolatileImage)2 IOException (java.io.IOException)2 Frame (java.awt.Frame)1 Rectangle (java.awt.Rectangle)1 BufferedImage (java.awt.image.BufferedImage)1 JFrame (javax.swing.JFrame)1