001 package com.croftsoft.core.gui;
002
003 import java.awt.*;
004
005 import com.croftsoft.core.lang.NullArgumentException;
006
007 /*********************************************************************
008 * Library of static methods for manipulating a GraphicDevice.
009 *
010 * @version
011 * 2003-07-26
012 * @since
013 * 2003-07-25
014 * @author
015 * <a href="http://www.CroftSoft.com/">David Wallace Croft</a>
016 *********************************************************************/
017
018 public final class GraphicsDeviceLib
019 //////////////////////////////////////////////////////////////////////
020 //////////////////////////////////////////////////////////////////////
021 {
022
023 public static boolean changeDisplayMode (
024 GraphicsDevice graphicsDevice,
025 DisplayMode [ ] desiredDisplayModes )
026 //////////////////////////////////////////////////////////////////////
027 {
028 NullArgumentException.check ( graphicsDevice );
029
030 NullArgumentException.check ( desiredDisplayModes );
031
032 if ( !graphicsDevice.isDisplayChangeSupported ( ) )
033 {
034 return false;
035 }
036
037 DisplayMode currentDisplayMode = graphicsDevice.getDisplayMode ( );
038
039 DisplayMode [ ] supportedDisplayModes
040 = graphicsDevice.getDisplayModes ( );
041
042 for ( int i = 0; i < desiredDisplayModes.length; i++ )
043 {
044 DisplayMode desiredDisplayMode = desiredDisplayModes [ i ];
045
046 if ( DisplayModeLib.matches (
047 currentDisplayMode, desiredDisplayMode ) )
048 {
049 return false;
050 }
051
052 for ( int j = 0; j < supportedDisplayModes.length; j++ )
053 {
054 DisplayMode supportedDisplayMode = supportedDisplayModes [ j ];
055
056 if ( DisplayModeLib.matches (
057 supportedDisplayMode, desiredDisplayMode ) )
058 {
059 graphicsDevice.setDisplayMode ( supportedDisplayMode );
060
061 return true;
062 }
063 }
064 }
065
066 return false;
067 }
068
069 //////////////////////////////////////////////////////////////////////
070 //////////////////////////////////////////////////////////////////////
071
072 private GraphicsDeviceLib ( ) { }
073
074 //////////////////////////////////////////////////////////////////////
075 //////////////////////////////////////////////////////////////////////
076 }