/* * Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation. Oracle designates this * particular file as subject to the "Classpath" exception as provided * by Oracle in the LICENSE file that accompanied this code. * * This code is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * version 2 for more details (a copy is included in the LICENSE file that * accompanied this code). * * You should have received a copy of the GNU General Public License version * 2 along with this work; if not, write to the Free Software Foundation, * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. * * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA * or visit www.oracle.com if you need additional information or have any * questions. */ package sun.lwawt; import java.awt.AWTException; import java.awt.BufferCapabilities; import java.awt.Component; import java.awt.Image; /** * As lwawt can be used on different platforms with different graphic * configurations, the general set of methods is necessary. This interface * collects the methods that should be provided by GraphicsConfiguration, * simplifying use by the LWAWT. * * @author Sergey Bylokhov */ public interface LWGraphicsConfig { /* * A GraphicsConfiguration must implements following methods to indicate * that it imposes certain limitations on the maximum size of supported * textures. */ /** * Returns the maximum width of any texture image. By default return {@code * Integer.MAX_VALUE}. */ int getMaxTextureWidth(); /** * Returns the maximum height of any texture image. By default return {@code * Integer.MAX_VALUE}. */ int getMaxTextureHeight(); /* * The following methods correspond to the multi-buffering methods in * LWComponentPeer.java. */ /** * Checks that the requested configuration is natively supported; if not, an * AWTException is thrown. */ void assertOperationSupported(int numBuffers, BufferCapabilities caps) throws AWTException; /** * Creates a back buffer for the given peer and returns the image wrapper. */ Image createBackBuffer(LWComponentPeer peer); /** * Destroys the back buffer object. */ void destroyBackBuffer(Image backBuffer); /** * Performs the native flip operation for the given target Component. Our * flip is implemented through normal drawImage() to the graphic object, * because of our components uses a graphic object of the container(in this * case we also apply necessary constrains) */ void flip(LWComponentPeer peer, Image backBuffer, int x1, int y1, int x2, int y2, BufferCapabilities.FlipContents flipAction); /** * Creates a new hidden-acceleration image of the given width and height * that is associated with the target Component. */ Image createAcceleratedImage(Component target, int width, int height); }