Bug 803299 - Respect gfx.android.rgb16.force pref. r=blassey

This commit is contained in:
Chris Lord 2013-05-28 14:22:06 +01:00
parent e13961ccc9
commit c30759b16e
3 changed files with 22 additions and 1 deletions

View File

@ -362,6 +362,9 @@ pref("gfx.displayport.strategy_pb.threshold", -1); // velocity threshold in inch
// (see bug 700023, bug 846832, bug 847344)
pref("gfx.font_rendering.graphite.enabled", false);
// Allow 24-bit colour when the hardware supports it
pref("gfx.android.rgb16.force", false);
// don't allow JS to move and resize existing windows
pref("dom.disable_window_move_resize", true);

View File

@ -2191,6 +2191,15 @@ abstract public class GeckoApp
}
protected void connectGeckoLayerClient() {
// See if we want to force 16-bit colour before doing anything
PrefsHelper.getPref("gfx.android.rgb16.force", new PrefsHelper.PrefHandlerBase() {
@Override public void prefValue(String pref, boolean force16bit) {
if (force16bit) {
GeckoAppShell.setScreenDepthOverride(16);
}
}
});
mLayerView.getLayerClient().notifyGeckoReady();
mLayerView.addTouchInterceptor(this);

View File

@ -1385,7 +1385,7 @@ public class GeckoAppShell
* Returns the colour depth of the default screen. This will either be
* 24 or 16.
*/
public static int getScreenDepth() {
public static synchronized int getScreenDepth() {
if (sScreenDepth == 0) {
switch (GeckoApp.mAppContext.getWindowManager().getDefaultDisplay().getPixelFormat()) {
case PixelFormat.RGBA_8888 :
@ -1402,6 +1402,15 @@ public class GeckoAppShell
return sScreenDepth;
}
public static synchronized void setScreenDepthOverride(int aScreenDepth) {
if (sScreenDepth != 0) {
Log.e(LOGTAG, "Tried to override screen depth after it's already been set");
return;
}
sScreenDepth = aScreenDepth;
}
public static void setFullScreen(boolean fullscreen) {
if (getGeckoInterface() != null)
getGeckoInterface().setFullScreen(fullscreen);