From f519190f0cf97eb6b3fda61f4eb8c1f55de43b51 Mon Sep 17 00:00:00 2001 From: Sven Gothel Date: Mon, 27 Feb 2012 10:23:53 +0100 Subject: ScreenMode/X11: Use common defaults in case of undefined values. X11: Tolerate invalid refresh rate and use default. --- src/newt/classes/jogamp/newt/ScreenImpl.java | 16 +++++++++++----- src/newt/classes/jogamp/newt/driver/x11/X11Screen.java | 10 ++++++---- 2 files changed, 17 insertions(+), 9 deletions(-) (limited to 'src/newt/classes') diff --git a/src/newt/classes/jogamp/newt/ScreenImpl.java b/src/newt/classes/jogamp/newt/ScreenImpl.java index fdf80586a..ea103025e 100644 --- a/src/newt/classes/jogamp/newt/ScreenImpl.java +++ b/src/newt/classes/jogamp/newt/ScreenImpl.java @@ -62,6 +62,12 @@ import com.jogamp.newt.util.ScreenModeUtil; public abstract class ScreenImpl extends Screen implements ScreenModeListener { protected static final boolean DEBUG_TEST_SCREENMODE_DISABLED = Debug.isPropertyDefined("newt.test.Screen.disableScreenMode", true); + protected static final int default_sm_bpp = 32; + protected static final int default_sm_widthmm = 519; + protected static final int default_sm_heightmm = 324; + protected static final int default_sm_rate = 60; + protected static final int default_sm_rotation = 0; + protected DisplayImpl display; protected int screen_idx; protected String fqname; @@ -501,11 +507,11 @@ public abstract class ScreenImpl extends Screen implements ScreenModeListener { props[i++] = 0; // set later for verification of iterator props[i++] = getWidth(); // width props[i++] = getHeight(); // height - props[i++] = 32; // bpp - props[i++] = 519; // widthmm - props[i++] = 324; // heightmm - props[i++] = 60; // rate - props[i++] = 0; // rot + props[i++] = default_sm_bpp; + props[i++] = default_sm_widthmm; + props[i++] = default_sm_heightmm; + props[i++] = default_sm_rate; + props[i++] = default_sm_rotation; props[i - ScreenModeUtil.NUM_SCREEN_MODE_PROPERTIES_ALL] = i; // count res = ScreenModeUtil.streamIn(props, 0); } diff --git a/src/newt/classes/jogamp/newt/driver/x11/X11Screen.java b/src/newt/classes/jogamp/newt/driver/x11/X11Screen.java index 9dbac5d7f..ba1aed308 100644 --- a/src/newt/classes/jogamp/newt/driver/x11/X11Screen.java +++ b/src/newt/classes/jogamp/newt/driver/x11/X11Screen.java @@ -124,10 +124,12 @@ public class X11Screen extends ScreenImpl { if(0>=res[0] || 0>=res[1]) { throw new InternalError("invalid resolution: "+res[0]+"x"+res[1]+" for res idx "+nres_index+"/"+nres_number); } - int bpp = 32; // FIXME int rate = nrates[nrate_index]; if(0>=rate) { - throw new InternalError("invalid rate: "+rate+" at index "+nrate_index+"/"+nrates.length); + rate = default_sm_rate; + if(DEBUG) { + System.err.println("Invalid rate: "+rate+" at index "+nrate_index+"/"+nrates.length+", using default: "+default_sm_rate); + } } int rotation = nrotations[nrotation_index]; @@ -137,7 +139,7 @@ public class X11Screen extends ScreenImpl { props[i++] = 0; // set later for verification of iterator props[i++] = res[0]; // width props[i++] = res[1]; // height - props[i++] = bpp; // bpp + props[i++] = default_sm_bpp; // FIXME props[i++] = res[2]; // widthmm props[i++] = res[3]; // heightmm props[i++] = rate; // rate @@ -217,7 +219,7 @@ public class X11Screen extends ScreenImpl { props[i++] = 0; // set later for verification of iterator props[i++] = res[0]; // width props[i++] = res[1]; // height - props[i++] = 32; // FIXME: bpp + props[i++] = default_sm_bpp; // FIXME props[i++] = res[2]; // widthmm props[i++] = res[3]; // heightmm props[i++] = rate; // rate -- cgit v1.2.3