summaryrefslogtreecommitdiff
path: root/core/java/android
diff options
context:
space:
mode:
Diffstat (limited to 'core/java/android')
-rw-r--r--core/java/android/view/Surface.java26
1 files changed, 12 insertions, 14 deletions
diff --git a/core/java/android/view/Surface.java b/core/java/android/view/Surface.java
index 17f07b5a2ad4..17ad615164a1 100644
--- a/core/java/android/view/Surface.java
+++ b/core/java/android/view/Surface.java
@@ -23,6 +23,7 @@ import android.content.res.CompatibilityInfo.Translator;
import android.graphics.Canvas;
import android.graphics.ColorSpace;
import android.graphics.GraphicBuffer;
+import android.graphics.HardwareRenderer;
import android.graphics.Matrix;
import android.graphics.RecordingCanvas;
import android.graphics.Rect;
@@ -925,7 +926,7 @@ public class Surface implements Parcelable {
private final class HwuiContext {
private final RenderNode mRenderNode;
- private long mHwuiRenderer;
+ private HardwareRenderer mHardwareRenderer;
private RecordingCanvas mCanvas;
private final boolean mIsWideColorGamut;
@@ -934,8 +935,12 @@ public class Surface implements Parcelable {
mRenderNode.setClipToBounds(false);
mRenderNode.setForceDarkAllowed(false);
mIsWideColorGamut = isWideColorGamut;
- mHwuiRenderer = nHwuiCreate(mRenderNode.mNativeRenderNode, mNativeObject,
- isWideColorGamut);
+ mHardwareRenderer = new HardwareRenderer();
+ mHardwareRenderer.setSurface(Surface.this, true);
+ mHardwareRenderer.loadSystemProperties();
+ mHardwareRenderer.setWideGamut(isWideColorGamut);
+ mHardwareRenderer.setLightSourceAlpha(0.0f, 0.0f);
+ mHardwareRenderer.setLightSourceGeometry(0.0f, 0.0f, 0.0f, 0.0f);
}
Canvas lockCanvas(int width, int height) {
@@ -953,27 +958,20 @@ public class Surface implements Parcelable {
}
mRenderNode.endRecording();
mCanvas = null;
- nHwuiDraw(mHwuiRenderer);
+ mHardwareRenderer.drawRenderNode(mRenderNode);
+ // TODO unable to set FrameInfoFlags::SurfaceCanvas on the draw
}
void updateSurface() {
- nHwuiSetSurface(mHwuiRenderer, mNativeObject);
+ mHardwareRenderer.setSurface(Surface.this);
}
void destroy() {
- if (mHwuiRenderer != 0) {
- nHwuiDestroy(mHwuiRenderer);
- mHwuiRenderer = 0;
- }
+ mHardwareRenderer.destroy();
}
boolean isWideColorGamut() {
return mIsWideColorGamut;
}
}
-
- private static native long nHwuiCreate(long rootNode, long surface, boolean isWideColorGamut);
- private static native void nHwuiSetSurface(long renderer, long surface);
- private static native void nHwuiDraw(long renderer);
- private static native void nHwuiDestroy(long renderer);
}