diff --git a/api/current.xml b/api/current.xml
index 76d8eed8a4c00..528761006c982 100644
--- a/api/current.xml
+++ b/api/current.xml
@@ -51156,6 +51156,17 @@
visibility="public"
>
+
+
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
not used for displaying the
+ * Window itself -- that must be done by the client.
+ *
+ * @param wm The ViewManager for adding new windows.
+ */
+ public void setWindowManager(WindowManager wm, IBinder appToken, String appName,
+ boolean hardwareAccelerated) {
mAppToken = appToken;
mAppName = appName;
if (wm == null) {
wm = WindowManagerImpl.getDefault();
}
- mWindowManager = new LocalWindowManager(wm);
+ mWindowManager = new LocalWindowManager(wm, hardwareAccelerated);
}
private class LocalWindowManager implements WindowManager {
- LocalWindowManager(WindowManager wm) {
+ private boolean mHardwareAccelerated;
+
+ LocalWindowManager(WindowManager wm, boolean hardwareAccelerated) {
mWindowManager = wm;
mDefaultDisplay = mContext.getResources().getDefaultDisplay(
mWindowManager.getDefaultDisplay());
+ mHardwareAccelerated = hardwareAccelerated;
}
public final void addView(View view, ViewGroup.LayoutParams params) {
@@ -436,6 +454,9 @@ public abstract class Window {
if (wp.packageName == null) {
wp.packageName = mContext.getPackageName();
}
+ if (mHardwareAccelerated) {
+ wp.flags |= WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED;
+ }
mWindowManager.addView(view, params);
}
diff --git a/core/java/android/view/WindowManager.java b/core/java/android/view/WindowManager.java
index eebbc931d0a34..c147b74aec88f 100644
--- a/core/java/android/view/WindowManager.java
+++ b/core/java/android/view/WindowManager.java
@@ -72,6 +72,7 @@ public interface WindowManager extends ViewManager {
* When using {@link Gravity#LEFT} or {@link Gravity#RIGHT} it provides
* an offset from the given edge.
*/
+ @ViewDebug.ExportedProperty
public int x;
/**
@@ -79,6 +80,7 @@ public interface WindowManager extends ViewManager {
* When using {@link Gravity#TOP} or {@link Gravity#BOTTOM} it provides
* an offset from the given edge.
*/
+ @ViewDebug.ExportedProperty
public int y;
/**
@@ -87,6 +89,7 @@ public interface WindowManager extends ViewManager {
* should not be stretched. Otherwise the extra pixels will be pro-rated
* among all views whose weight is greater than 0.
*/
+ @ViewDebug.ExportedProperty
public float horizontalWeight;
/**
@@ -95,8 +98,9 @@ public interface WindowManager extends ViewManager {
* should not be stretched. Otherwise the extra pixels will be pro-rated
* among all views whose weight is greater than 0.
*/
+ @ViewDebug.ExportedProperty
public float verticalWeight;
-
+
/**
* The general type of window. There are three main classes of
* window types:
@@ -389,6 +393,7 @@ public interface WindowManager extends ViewManager {
* @see #FLAG_FULLSCREEN
* @see #FLAG_FORCE_NOT_FULLSCREEN
* @see #FLAG_IGNORE_CHEEK_PRESSES
+ * @see #FLAG_HARDWARE_ACCELERATED
*/
@ViewDebug.ExportedProperty(flagMapping = {
@ViewDebug.FlagToString(mask = FLAG_BLUR_BEHIND, equals = FLAG_BLUR_BEHIND,
@@ -420,7 +425,9 @@ public interface WindowManager extends ViewManager {
@ViewDebug.FlagToString(mask = FLAG_FORCE_NOT_FULLSCREEN,
equals = FLAG_FORCE_NOT_FULLSCREEN, name = "FLAG_FORCE_NOT_FULLSCREEN"),
@ViewDebug.FlagToString(mask = FLAG_IGNORE_CHEEK_PRESSES,
- equals = FLAG_IGNORE_CHEEK_PRESSES, name = "FLAG_IGNORE_CHEEK_PRESSES")
+ equals = FLAG_IGNORE_CHEEK_PRESSES, name = "FLAG_IGNORE_CHEEK_PRESSES"),
+ @ViewDebug.FlagToString(mask = FLAG_HARDWARE_ACCELERATED,
+ equals = FLAG_HARDWARE_ACCELERATED, name = "FLAG_HARDWARE_ACCELERATED")
})
public int flags;
@@ -603,6 +610,12 @@ public interface WindowManager extends ViewManager {
* it is created.
* {@hide} */
public static final int FLAG_SYSTEM_ERROR = 0x40000000;
+
+ /**
+ * Indicates whether this window should be hardware accelerated.
+ * Requesting hardware acceleration does not guarantee it will happen.
+ */
+ public static final int FLAG_HARDWARE_ACCELERATED = 0x80000000;
/**
* Given a particular set of window manager flags, determine whether
@@ -1075,6 +1088,7 @@ public interface WindowManager extends ViewManager {
screenOrientation = o.screenOrientation;
changes |= SCREEN_ORIENTATION_CHANGED;
}
+
return changes;
}
diff --git a/core/res/res/values/attrs_manifest.xml b/core/res/res/values/attrs_manifest.xml
index 5e8c618a93a57..bc130f2cf6181 100644
--- a/core/res/res/values/attrs_manifest.xml
+++ b/core/res/res/values/attrs_manifest.xml
@@ -1210,6 +1210,7 @@
any value in the theme. -->
+