/* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You under the Apache License, Version 2.0 * (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /** * @author Alexey A. Petrenko * @version $Revision$ */ package java.awt; /** * The BufferCapabilities class represents the capabilities and other properties * of the image buffers. * * @since Android 1.0 */ public class BufferCapabilities implements Cloneable { /** * The front buffer capabilities. */ private final ImageCapabilities frontBufferCapabilities; /** * The back buffer capabilities. */ private final ImageCapabilities backBufferCapabilities; /** * The flip contents. */ private final FlipContents flipContents; /** * Instantiates a new BufferCapabilities object. * * @param frontBufferCapabilities * the front buffer capabilities, can not be null. * @param backBufferCapabilities * the the back and intermediate buffers capabilities, can not be * null. * @param flipContents * the back buffer contents after page flipping, null if page * flipping is not used. */ public BufferCapabilities(ImageCapabilities frontBufferCapabilities, ImageCapabilities backBufferCapabilities, FlipContents flipContents) { if (frontBufferCapabilities == null || backBufferCapabilities == null) { throw new IllegalArgumentException(); } this.frontBufferCapabilities = frontBufferCapabilities; this.backBufferCapabilities = backBufferCapabilities; this.flipContents = flipContents; } /** * Returns a copy of the BufferCapabilities object. * * @return a copy of the BufferCapabilities object. */ @Override public Object clone() { return new BufferCapabilities(frontBufferCapabilities, backBufferCapabilities, flipContents); } /** * Gets the image capabilities of the front buffer. * * @return the ImageCapabilities object represented capabilities of the * front buffer. */ public ImageCapabilities getFrontBufferCapabilities() { return frontBufferCapabilities; } /** * Gets the image capabilities of the back buffer. * * @return the ImageCapabilities object represented capabilities of the back * buffer. */ public ImageCapabilities getBackBufferCapabilities() { return backBufferCapabilities; } /** * Gets the flip contents of the back buffer after page-flipping. * * @return the FlipContents of the back buffer after page-flipping. */ public FlipContents getFlipContents() { return flipContents; } /** * Checks if the buffer strategy uses page flipping. * * @return true, if the buffer strategy uses page flipping, false otherwise. */ public boolean isPageFlipping() { return flipContents != null; } /** * Checks if page flipping is only available in full-screen mode. * * @return true, if page flipping is only available in full-screen mode, * false otherwise. */ public boolean isFullScreenRequired() { return false; } /** * Checks if page flipping can be performed using more than two buffers. * * @return true, if page flipping can be performed using more than two * buffers, false otherwise. */ public boolean isMultiBufferAvailable() { return false; } /** * The FlipContents class represents a set of possible back buffer contents * after page-flipping. * * @since Android 1.0 */ public static final class FlipContents { /** * The back buffered contents are cleared with the background color * after flipping. */ public static final FlipContents BACKGROUND = new FlipContents(); /** * The back buffered contents are copied to the front buffer before * flipping. */ public static final FlipContents COPIED = new FlipContents(); /** * The back buffer contents are the prior contents of the front buffer. */ public static final FlipContents PRIOR = new FlipContents(); /** * The back buffer contents are undefined after flipping */ public static final FlipContents UNDEFINED = new FlipContents(); /** * Instantiates a new flip contents. */ private FlipContents() { } /** * Returns the hash code of the FlipContents object. * * @return the hash code of the FlipContents object. */ @Override public int hashCode() { return super.hashCode(); } /** * Returns the String representation of the FlipContents object. * * @return the string */ @Override public String toString() { return super.toString(); } } }