/* * Copyright (c) 2002 Light Weight Java Game Library Project * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are * met: * * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * * Neither the name of 'Light Weight Java Game Library' nor the names of * its contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ package org.lwjgl; /** * $Id$ * * This class encapsulates the properties for a given display mode. * This class is not instantiable, and is aquired from the Display. * getAvailableDisplayModes() method. * * @author cix_foo * @version $Revision$ */ public final class DisplayMode { /** properties of the display mode */ public final int width, height, bpp, freq, alpha, depth, stencil; /** * Construct a display mode. * * @see Display */ private DisplayMode(int width, int height, int bpp, int freq, int alpha, int depth, int stencil) { this.width = width; this.height = height; this.bpp = bpp; this.freq = freq; this.alpha = alpha; this.depth = depth; this.stencil = stencil; } /** * Tests for DisplayMode equality * * @see java.lang.Object#equals(Object) */ public boolean equals(Object obj) { if (obj == null || !(obj instanceof DisplayMode)) { return false; } DisplayMode dm = (DisplayMode) obj; return dm.width == width && dm.height == dm.height && dm.bpp == bpp && dm.freq == freq && dm.alpha == alpha && dm.depth == depth && dm.stencil == stencil; } /** * Retrieves the hashcode for this object * * @see java.lang.Object#hashCode() */ public int hashCode() { return width ^ height ^ freq ^ bpp ^ alpha ^ (depth << 8) ^ (stencil << 24); } /** * Retrieves a String representation of this DisplayMode * * @see java.lang.Object#toString() */ public String toString() { StringBuffer sb = new StringBuffer(); sb.append(width); sb.append(" x "); sb.append(height); sb.append(" x "); sb.append(bpp); sb.append(" @"); sb.append(freq); sb.append("Hz "); sb.append(alpha); sb.append("bit alpha, "); sb.append(depth); sb.append("bit depth, "); sb.append(stencil); sb.append("bit stencil"); return sb.toString(); } }