package com.googlecode.gwtquake.shared.render;
import java.util.LinkedList;
import com.googlecode.gwtquake.shared.client.Dimension;
import com.googlecode.gwtquake.shared.common.Globals;
public class DisplayModes {
static DisplayMode[] getModeList() {
DisplayMode[] modes = Globals.re.getAvailableDisplayModes();
LinkedList<DisplayMode> l = new LinkedList<DisplayMode>();
l.add(GlState.oldDisplayMode);
for (int i = 0; i < modes.length; i++) {
DisplayMode m = modes[i];
// if (m.getBitsPerPixel() != oldDisplayMode.getBitsPerPixel()) continue;
//// if (m.getFrequency() > oldDisplayMode.getFrequency()) continue;
//// if (m.getHeight() < 240 || m.getWidth() < 320) continue;
if (m.height != GlState.oldDisplayMode.height ||
m.width != GlState.oldDisplayMode.width) {
l.add(m);
}
}
DisplayMode[] ma = new DisplayMode[l.size()];
l.toArray(ma);
return ma;
}
static DisplayMode findDisplayMode(Dimension dim) {
DisplayMode mode = null;
DisplayMode m = null;
DisplayMode[] modes = getModeList();
int w = dim.width;
int h = dim.height;
for (int i = 0; i < modes.length; i++) {
m = modes[i];
if (m.getWidth() == w && m.getHeight() == h) {
mode = m;
break;
}
}
if (mode == null) mode = GlState.oldDisplayMode;
return mode;
}
}