diff options
Diffstat (limited to 'core/java/android')
| -rw-r--r-- | core/java/android/view/Surface.java | 26 |
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); } |
