summaryrefslogtreecommitdiffstats
path: root/core/java/android/view/HardwareRenderer.java
diff options
context:
space:
mode:
Diffstat (limited to 'core/java/android/view/HardwareRenderer.java')
-rw-r--r--core/java/android/view/HardwareRenderer.java32
1 files changed, 22 insertions, 10 deletions
diff --git a/core/java/android/view/HardwareRenderer.java b/core/java/android/view/HardwareRenderer.java
index 5c0be4a..434d473 100644
--- a/core/java/android/view/HardwareRenderer.java
+++ b/core/java/android/view/HardwareRenderer.java
@@ -188,6 +188,9 @@ public abstract class HardwareRenderer {
*/
public static boolean sSystemRendererDisabled = false;
+ /** @hide */
+ public static boolean sUseRenderThread = false;
+
private boolean mEnabled;
private boolean mRequested = true;
@@ -306,13 +309,6 @@ public abstract class HardwareRenderer {
abstract int getHeight();
/**
- * Gets the current canvas associated with this HardwareRenderer.
- *
- * @return the current HardwareCanvas
- */
- abstract HardwareCanvas getCanvas();
-
- /**
* Outputs extra debugging information in the specified file descriptor.
* @param pw
*/
@@ -335,7 +331,7 @@ public abstract class HardwareRenderer {
*
* @return True if a property has changed.
*/
- abstract boolean loadSystemProperties(Surface surface);
+ abstract boolean loadSystemProperties();
/**
* Sets the directory to use as a persistent storage for hardware rendering
@@ -412,6 +408,18 @@ public abstract class HardwareRenderer {
Rect dirty);
/**
+ * Temporary hook to draw a display list directly, only used if sUseRenderThread
+ * is true.
+ *
+ * @param displayList The display list to draw
+ * @param attachInfo AttachInfo tied to the specified view.
+ * @param callbacks Callbacks invoked when drawing happens.
+ * @param dirty The dirty rectangle to update, can be null.
+ */
+ abstract void drawDisplayList(DisplayList displayList, View.AttachInfo attachInfo,
+ HardwareDrawCallbacks callbacks, Rect dirty);
+
+ /**
* Creates a new hardware layer. A hardware layer built by calling this
* method will be treated as a texture layer, instead of as a render target.
*
@@ -517,10 +525,14 @@ public abstract class HardwareRenderer {
* @return A hardware renderer backed by OpenGL.
*/
static HardwareRenderer create(boolean translucent) {
+ HardwareRenderer renderer = null;
if (GLES20Canvas.isAvailable()) {
- return new GLRenderer(translucent);
+ renderer = new GLRenderer(translucent);
+ }
+ if (renderer != null && sUseRenderThread) {
+ renderer = new ThreadedRenderer((GLRenderer)renderer);
}
- return null;
+ return renderer;
}
/**