diff options
Diffstat (limited to 'core/java/android')
-rw-r--r-- | core/java/android/view/Surface.java | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/core/java/android/view/Surface.java b/core/java/android/view/Surface.java index da684e8..828e082 100644 --- a/core/java/android/view/Surface.java +++ b/core/java/android/view/Surface.java @@ -53,6 +53,9 @@ public class Surface implements Parcelable { private static native void nativeAllocateBuffers(long nativeObject); + private static native int nativeGetWidth(long nativeObject); + private static native int nativeGetHeight(long nativeObject); + public static final Parcelable.Creator<Surface> CREATOR = new Parcelable.Creator<Surface>() { @Override @@ -324,7 +327,9 @@ public class Surface implements Parcelable { if (mHwuiContext == null) { mHwuiContext = new HwuiContext(); } - return mHwuiContext.lockCanvas(); + return mHwuiContext.lockCanvas( + nativeGetWidth(mNativeObject), + nativeGetHeight(mNativeObject)); } } @@ -573,11 +578,11 @@ public class Surface implements Parcelable { mHwuiRenderer = nHwuiCreate(mRenderNode.mNativeRenderNode, mNativeObject); } - Canvas lockCanvas() { + Canvas lockCanvas(int width, int height) { if (mCanvas != null) { throw new IllegalStateException("Surface was already locked!"); } - mCanvas = mRenderNode.start(0, 0); + mCanvas = mRenderNode.start(width, height); return mCanvas; } |