@Override
protected void collectNativeMonitorModesAndDevicesImpl(final Cache cache) {
final GraphicsDevice awtGD = ((AWTGraphicsDevice)getDisplay().getGraphicsDevice()).getGraphicsDevice();
final DisplayMode[] awtModes = awtGD.getDisplayModes();
for(int i=0; i<awtModes.length; i++) {
getModeProps(cache, awtModes[i]);
}
final MonitorMode currentMode = getModeProps(cache, awtGD.getDisplayMode());
final int[] props = new int[MonitorModeProps.MIN_MONITOR_DEVICE_PROPERTIES - 1 - MonitorModeProps.NUM_MONITOR_MODE_PROPERTIES];
int i = 0;
props[i++] = props.length;
props[i++] = 0;
props[i++] = ScreenImpl.default_sm_widthmm;
props[i++] = ScreenImpl.default_sm_heightmm;
props[i++] = 0;
props[i++] = 0;
props[i++] = currentMode.getRotatedWidth();
props[i++] = currentMode.getRotatedHeight();
props[i++] = 0;
props[i++] = 0;
props[i++] = currentMode.getRotatedWidth();
props[i++] = currentMode.getRotatedHeight();
MonitorModeProps.streamInMonitorDevice(null, cache, this, cache.monitorModes, currentMode, props, 0);
}