public class MonitorMode extends Object
MonitorMode.SizeAndRRate, consist out of non rotated surface size, refresh rate and flags.rotation, measured counter clockwise (CCW)MonitorDevice Selection:
MonitorDevices is accessible via Screen.getMonitorDevices().Window.getMainMonitor().Screen.getMainMonitor(RectangleImmutable).MonitorDevice.getCurrentMode().MonitorDevice.getOriginalMode().MonitorMode Filtering:
MonitorDevice's MonitorModes is accessible via MonitorDevice.getSupportedModes().MonitorModeUtil to filter and select a desired MonitorMode.MonitorDevice.setCurrentMode(MonitorMode)
to change the current MonitorMode for all Screens referenced via the full qualified name (FQN).original mode is restored when
// Pick the monitor:
// Either the one used by a window ..
MonitorDevice monitor = window.getMainMonitor();
// Or arbitrary from the list ..
List allMonitor = getMonitorDevices();
MonitorDevice monitor = allMonitor.get(0);
// Current and original modes ..
MonitorMode mmCurrent = monitor.queryCurrentMode();
MonitorMode mmOrig = monitor.getOriginalMode();
// Target resolution
Dimension 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);
| Modifier and Type | Class and Description |
|---|---|
static class |
MonitorMode.SizeAndRRate
Immutable surfaceSize and refreshRate Class, consisting of it's read only components:
nativeId SurfaceSize surface memory size
refresh rate
|
| Modifier and Type | Field and Description |
|---|---|
static int |
FLAG_DOUBLESCAN
Lines are doubled.
|
static int |
FLAG_INTERLACE
Frame is split into two fields.
|
static int |
ROTATE_0
zero rotation, compared to normal settings
|
static int |
ROTATE_180
180 degrees CCW rotation
|
static int |
ROTATE_270
270 degrees CCW rotation
|
static int |
ROTATE_90
90 degrees CCW rotation
|
| Constructor and Description |
|---|
MonitorMode(int nativeId,
MonitorMode.SizeAndRRate sizeAndRRate,
int rotation) |
MonitorMode(SurfaceSize surfaceSize,
float refreshRate,
int flags,
int rotation)
Creates a user instance w/o
identity to filter our matching modes w/ identity. |
| Modifier and Type | Method and Description |
|---|---|
boolean |
equals(Object obj)
Tests equality of two
MonitorMode objects
by evaluating equality of it's components:nativeId
sizeAndRRate
rotation
|
int |
getFlags()
Returns bitfield w/ flags, i.e.
|
int |
getId() |
float |
getRefreshRate()
Returns the vertical refresh rate.
|
int |
getRotatedHeight()
Returns the rotated screen height,
derived from
getMonitorMode().getSurfaceSize().getResolution()
and getRotation() |
int |
getRotatedWidth()
Returns the rotated screen width,
derived from
getMonitorMode().getSurfaceSize().getResolution()
and getRotation() |
int |
getRotation()
Returns the CCW rotation of this mode
|
MonitorMode.SizeAndRRate |
getSizeAndRRate()
Returns the surfaceSize and refreshRate instance.
|
SurfaceSize |
getSurfaceSize()
Returns the unrotated
SurfaceSize |
int |
hashCode()
Returns a combined hash code of it's elements:
nativeId
sizeAndRRate
rotation
|
static boolean |
isRotationValid(int rotation) |
String |
toString() |
public static final int ROTATE_0
public static final int ROTATE_90
public static final int ROTATE_180
public static final int ROTATE_270
public static final int FLAG_INTERLACE
getFlags().public static final int FLAG_DOUBLESCAN
getFlags().public MonitorMode(int nativeId,
MonitorMode.SizeAndRRate sizeAndRRate,
int rotation)
sizeAndRRate - the surface size and refresh rate moderotation - the screen rotation, measured counter clockwise (CCW)public MonitorMode(SurfaceSize surfaceSize, float refreshRate, int flags, int rotation)
identity to filter our matching modes w/ identity.
See MonitorModeUtil for filter utilities.
surfaceSize - refreshRate - flags - rotation - public static boolean isRotationValid(int rotation)
public final int getId()
public final MonitorMode.SizeAndRRate getSizeAndRRate()
public final SurfaceSize getSurfaceSize()
SurfaceSizepublic final float getRefreshRate()
public final int getFlags()
FLAG_DOUBLESCAN, FLAG_INTERLACE, ..public final int getRotation()
public final int getRotatedWidth()
getMonitorMode().getSurfaceSize().getResolution()
and getRotation()public final int getRotatedHeight()
getMonitorMode().getSurfaceSize().getResolution()
and getRotation()public final boolean equals(Object obj)
MonitorMode objects
by evaluating equality of it's components:nativeIdsizeAndRRaterotationCopyright 2010 JogAmp Community.