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

This commit is contained in:
Chris Lord 2013-05-28 18:50:16 +01:00
Родитель baaafdbe93
Коммит 2fe2515333
3 изменённых файлов: 22 добавлений и 1 удалений

Просмотреть файл

@ -357,6 +357,9 @@ pref("gfx.displayport.strategy_vb.danger_y_incr", -1); // additional danger zone
// prediction bias strategy options
pref("gfx.displayport.strategy_pb.threshold", -1); // velocity threshold in inches/frame
// 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);

Просмотреть файл

@ -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);

Просмотреть файл

@ -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 && getGeckoInterface() != null) {
switch (getGeckoInterface().getActivity().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);