Package com.jogamp.newt
Class MonitorMode
- java.lang.Object
-
- com.jogamp.newt.MonitorMode
-
- All Implemented Interfaces:
Comparable<MonitorMode>
public class MonitorMode extends Object implements Comparable<MonitorMode>
Immutable MonitorMode Class, consisting of it's read only components:
- nativeId
MonitorMode.SizeAndRRate, consist out of non rotatedsurface size,refresh rateandflags.rotation, measured counter clockwise (CCW)
MonitorDeviceSelection:- A List of all
MonitorDevices is accessible viaScreen.getMonitorDevices(). - The main monitor used by a windows is accessible via
Window.getMainMonitor(). - The main monitor covering an arbitrary rectangle is accessible via
Screen.getMainMonitor(RectangleImmutable).
- A List of all
- The current MonitorMode can be obtained via
MonitorDevice.getCurrentMode(). - The original MonitorMode can be obtained via
MonitorDevice.getOriginalMode(). MonitorModeFiltering:- A
MonitorDevice's MonitorModes is accessible viaMonitorDevice.getSupportedModes(). - You may utilize
MonitorModeUtilto filter and select a desired MonitorMode.
- A
Changing MonitorMode
- Use
MonitorDevice.setCurrentMode(MonitorMode)to change the current MonitorMode for allScreens referenced via thefull qualified name (FQN). - The
original modeis restored when- the last FQN referenced Screen closes.
- the JVM shuts down.
Example for changing the MonitorMode:// Pick the monitor: // Either the one used by a window .. MonitorDevice monitor = window.getMainMonitor(); // Or arbitrary from the list .. ListallMonitor = getMonitorDevices(); MonitorDevice monitor = allMonitor.get(0); // Current and original modes .. MonitorMode mmCurrent = monitor.queryCurrentMode(); MonitorMode mmOrig = monitor.getOriginalMode(); // Target resolution in pixel units DimensionImmutable res = new Dimension(800, 600); // Target refresh rate shall be similar to current one .. float freq = mmCurrent.getRefreshRate(); // Target rotation shall be similar to current one int rot = mmCurrent.getRotation(); // Filter criterias sequential out of all available MonitorMode of the chosen MonitorDevice List monitorModes = monitor.getSupportedModes(); monitorModes = MonitorModeUtil.filterByFlags(monitorModes, 0); // no interlace, double-scan etc monitorModes = MonitorModeUtil.filterByRotation(monitorModes, rot); monitorModes = MonitorModeUtil.filterByResolution(monitorModes, res); monitorModes = MonitorModeUtil.filterByRate(monitorModes, freq); monitorModes = MonitorModeUtil.getHighestAvailableBpp(monitorModes); // pick 1st one and set to current .. MonitorMode mm = monitorModes.get(0); monitor.setCurrentMode(mm);
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classMonitorMode.SizeAndRRateImmutable surfaceSize, flags and refreshRate Class, consisting of it's read only components:
nativeIdSurfaceSizesurface memory sizeflagsrefresh rate
-
Field Summary
Fields Modifier and Type Field Description static intFLAG_DOUBLESCANLines are doubled.static intFLAG_INTERLACEFrame is split into two fields.static Comparator<MonitorMode>monitorModeComparatorComparator for 2MonitorModes, following comparison order as described incompareTo(MonitorMode), returning the ascending order.static Comparator<MonitorMode>monitorModeComparatorInvComparator for 2MonitorModes, following comparison order as described incompareTo(MonitorMode), returning the descending order.static intROTATE_0zero rotation, compared to normal settingsstatic intROTATE_180180 degrees CCW rotationstatic intROTATE_270270 degrees CCW rotationstatic intROTATE_9090 degrees CCW rotation
-
Constructor Summary
Constructors Constructor Description MonitorMode(int nativeId, MonitorMode.SizeAndRRate sizeAndRRate, int rotation)MonitorMode(SurfaceSize surfaceSize, float refreshRate, int flags, int rotation)Creates a user instance w/oidentityto filter our matching modes w/ identity.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description intcompareTo(MonitorMode mm)ComparessizeAndRRate1st, thenrotation.booleanequals(Object obj)Tests equality of twoMonitorModeobjects by evaluating equality of it's components:
nativeIdsizeAndRRaterotationintgetFlags()Returns bitfield w/ flags, i.e.intgetId()floatgetRefreshRate()Returns the vertical refresh rate.intgetRotatedHeight()Returns the rotated screen height in pixel units, derived fromgetMonitorMode().getSurfaceSize().getResolution()andgetRotation()intgetRotatedWidth()Returns the rotated screen width in pixel units, derived fromgetMonitorMode().getSurfaceSize().getResolution()andgetRotation()intgetRotation()Returns the CCW rotation of this modeMonitorMode.SizeAndRRategetSizeAndRRate()Returns the surfaceSize and refreshRate instance.SurfaceSizegetSurfaceSize()Returns the unrotatedSurfaceSizeinthashCode()Returns a combined hash code of it's elements:
nativeIdsizeAndRRaterotationstatic booleanisRotationValid(int rotation)StringtoString()
-
-
-
Field Detail
-
monitorModeComparator
public static final Comparator<MonitorMode> monitorModeComparator
Comparator for 2MonitorModes, following comparison order as described incompareTo(MonitorMode), returning the ascending order.
-
monitorModeComparatorInv
public static final Comparator<MonitorMode> monitorModeComparatorInv
Comparator for 2MonitorModes, following comparison order as described incompareTo(MonitorMode), returning the descending order.
-
ROTATE_0
public static final int ROTATE_0
zero rotation, compared to normal settings- See Also:
- Constant Field Values
-
ROTATE_90
public static final int ROTATE_90
90 degrees CCW rotation- See Also:
- Constant Field Values
-
ROTATE_180
public static final int ROTATE_180
180 degrees CCW rotation- See Also:
- Constant Field Values
-
ROTATE_270
public static final int ROTATE_270
270 degrees CCW rotation- See Also:
- Constant Field Values
-
FLAG_INTERLACE
public static final int FLAG_INTERLACE
Frame is split into two fields. SeegetFlags().- See Also:
- Constant Field Values
-
FLAG_DOUBLESCAN
public static final int FLAG_DOUBLESCAN
Lines are doubled. SeegetFlags().- See Also:
- Constant Field Values
-
-
Constructor Detail
-
MonitorMode
public MonitorMode(int nativeId, MonitorMode.SizeAndRRate sizeAndRRate, int rotation)- Parameters:
sizeAndRRate- the surface size and refresh rate moderotation- the screen rotation, measured counter clockwise (CCW)
-
MonitorMode
public MonitorMode(SurfaceSize surfaceSize, float refreshRate, int flags, int rotation)
Creates a user instance w/oidentityto filter our matching modes w/ identity.See
MonitorModeUtilfor filter utilities.- Parameters:
surfaceSize-refreshRate-flags-rotation-
-
-
Method Detail
-
isRotationValid
public static boolean isRotationValid(int rotation)
-
getId
public final int getId()
- Returns:
- the immutable native Id of this mode, may not be unique, may be 0.
-
getSizeAndRRate
public final MonitorMode.SizeAndRRate getSizeAndRRate()
Returns the surfaceSize and refreshRate instance.
-
getSurfaceSize
public final SurfaceSize getSurfaceSize()
Returns the unrotatedSurfaceSize
-
getRefreshRate
public final float getRefreshRate()
Returns the vertical refresh rate.
-
getFlags
public final int getFlags()
Returns bitfield w/ flags, i.e.FLAG_DOUBLESCAN,FLAG_INTERLACE, ..
-
getRotation
public final int getRotation()
Returns the CCW rotation of this mode
-
getRotatedWidth
public final int getRotatedWidth()
Returns the rotated screen width in pixel units, derived fromgetMonitorMode().getSurfaceSize().getResolution()andgetRotation()
-
getRotatedHeight
public final int getRotatedHeight()
Returns the rotated screen height in pixel units, derived fromgetMonitorMode().getSurfaceSize().getResolution()andgetRotation()
-
compareTo
public int compareTo(MonitorMode mm)
Compares
sizeAndRRate1st, thenrotation.Rotation is compared inverted, i.e.
360 - rotation, so the lowest rotation reflects a higher value.Order of comparing MonitorMode:
- resolution
- bits per pixel
- flags
- refresh rate
- rotation
- Specified by:
compareToin interfaceComparable<MonitorMode>
-
equals
public final boolean equals(Object obj)
Tests equality of twoMonitorModeobjects by evaluating equality of it's components:
nativeIdsizeAndRRaterotation
-
-