Loading core/java/android/view/GLES20Canvas.java +6 −5 Original line number Diff line number Diff line Loading @@ -215,16 +215,17 @@ class GLES20Canvas extends HardwareCanvas { private static native void nSetViewport(int renderer, int width, int height); @Override public void onPreDraw(Rect dirty) { public int onPreDraw(Rect dirty) { if (dirty != null) { nPrepareDirty(mRenderer, dirty.left, dirty.top, dirty.right, dirty.bottom, mOpaque); return nPrepareDirty(mRenderer, dirty.left, dirty.top, dirty.right, dirty.bottom, mOpaque); } else { nPrepare(mRenderer, mOpaque); return nPrepare(mRenderer, mOpaque); } } private static native void nPrepare(int renderer, boolean opaque); private static native void nPrepareDirty(int renderer, int left, int top, int right, int bottom, private static native int nPrepare(int renderer, boolean opaque); private static native int nPrepareDirty(int renderer, int left, int top, int right, int bottom, boolean opaque); @Override Loading core/java/android/view/HardwareCanvas.java +6 −3 Original line number Diff line number Diff line Loading @@ -41,8 +41,10 @@ public abstract class HardwareCanvas extends Canvas { * Invoked before any drawing operation is performed in this canvas. * * @param dirty The dirty rectangle to update, can be null. * @return {@link DisplayList#STATUS_DREW} if anything was drawn (such as a call to clear * the canvas). */ public abstract void onPreDraw(Rect dirty); public abstract int onPreDraw(Rect dirty); /** * Invoked after all drawing operation have been performed. Loading @@ -58,8 +60,9 @@ public abstract class HardwareCanvas extends Canvas { * @param flags Optional flags about drawing, see {@link DisplayList} for * the possible flags. * * @return One of {@link DisplayList#STATUS_DONE}, {@link DisplayList#STATUS_DRAW} or * {@link DisplayList#STATUS_INVOKE} * @return One of {@link DisplayList#STATUS_DONE}, {@link DisplayList#STATUS_DRAW}, or * {@link DisplayList#STATUS_INVOKE}, or'd with {@link DisplayList#STATUS_DREW} * if anything was drawn. */ public abstract int drawDisplayList(DisplayList displayList, Rect dirty, int flags); Loading core/java/android/view/HardwareRenderer.java +6 −8 Original line number Diff line number Diff line Loading @@ -1042,8 +1042,8 @@ public abstract class HardwareRenderer { return mGl != null && mCanvas != null; } void onPreDraw(Rect dirty) { int onPreDraw(Rect dirty) { return DisplayList.STATUS_DONE; } void onPostDraw() { Loading Loading @@ -1102,9 +1102,7 @@ public abstract class HardwareRenderer { } } onPreDraw(dirty); int status = DisplayList.STATUS_DONE; int status = onPreDraw(dirty); int saveCount = canvas.save(); callbacks.onHardwarePreDraw(canvas); Loading Loading @@ -1138,7 +1136,7 @@ public abstract class HardwareRenderer { drawDisplayListStartTime = System.nanoTime(); } status = canvas.drawDisplayList(displayList, mRedrawClip, status |= canvas.drawDisplayList(displayList, mRedrawClip, DisplayList.FLAG_CLIP_CHILDREN); if (mProfileEnabled) { Loading Loading @@ -1372,8 +1370,8 @@ public abstract class HardwareRenderer { } @Override void onPreDraw(Rect dirty) { mGlCanvas.onPreDraw(dirty); int onPreDraw(Rect dirty) { return mGlCanvas.onPreDraw(dirty); } @Override Loading core/jni/android_view_GLES20Canvas.cpp +6 −6 Original line number Diff line number Diff line Loading @@ -133,15 +133,15 @@ static void android_view_GLES20Canvas_setViewport(JNIEnv* env, jobject clazz, renderer->setViewport(width, height); } static void android_view_GLES20Canvas_prepare(JNIEnv* env, jobject clazz, static int android_view_GLES20Canvas_prepare(JNIEnv* env, jobject clazz, OpenGLRenderer* renderer, jboolean opaque) { renderer->prepare(opaque); return renderer->prepare(opaque); } static void android_view_GLES20Canvas_prepareDirty(JNIEnv* env, jobject clazz, static int android_view_GLES20Canvas_prepareDirty(JNIEnv* env, jobject clazz, OpenGLRenderer* renderer, jint left, jint top, jint right, jint bottom, jboolean opaque) { renderer->prepareDirty(left, top, right, bottom, opaque); return renderer->prepareDirty(left, top, right, bottom, opaque); } static void android_view_GLES20Canvas_finish(JNIEnv* env, jobject clazz, Loading Loading @@ -868,8 +868,8 @@ static JNINativeMethod gMethods[] = { { "nCreateRenderer", "()I", (void*) android_view_GLES20Canvas_createRenderer }, { "nDestroyRenderer", "(I)V", (void*) android_view_GLES20Canvas_destroyRenderer }, { "nSetViewport", "(III)V", (void*) android_view_GLES20Canvas_setViewport }, { "nPrepare", "(IZ)V", (void*) android_view_GLES20Canvas_prepare }, { "nPrepareDirty", "(IIIIIZ)V", (void*) android_view_GLES20Canvas_prepareDirty }, { "nPrepare", "(IZ)I", (void*) android_view_GLES20Canvas_prepare }, { "nPrepareDirty", "(IIIIIZ)I", (void*) android_view_GLES20Canvas_prepareDirty }, { "nFinish", "(I)V", (void*) android_view_GLES20Canvas_finish }, { "nGetStencilSize", "()I", (void*) android_view_GLES20Canvas_getStencilSize }, Loading libs/hwui/DisplayListRenderer.cpp +2 −1 Original line number Diff line number Diff line Loading @@ -1368,13 +1368,14 @@ void DisplayListRenderer::setViewport(int width, int height) { mHeight = height; } void DisplayListRenderer::prepareDirty(float left, float top, int DisplayListRenderer::prepareDirty(float left, float top, float right, float bottom, bool opaque) { mSnapshot = new Snapshot(mFirstSnapshot, SkCanvas::kMatrix_SaveFlag | SkCanvas::kClip_SaveFlag); mSaveCount = 1; mSnapshot->setClip(0.0f, 0.0f, mWidth, mHeight); mRestoreSaveCount = -1; return DrawGlInfo::kStatusDone; // No invalidate needed at record-time } void DisplayListRenderer::finish() { Loading Loading
core/java/android/view/GLES20Canvas.java +6 −5 Original line number Diff line number Diff line Loading @@ -215,16 +215,17 @@ class GLES20Canvas extends HardwareCanvas { private static native void nSetViewport(int renderer, int width, int height); @Override public void onPreDraw(Rect dirty) { public int onPreDraw(Rect dirty) { if (dirty != null) { nPrepareDirty(mRenderer, dirty.left, dirty.top, dirty.right, dirty.bottom, mOpaque); return nPrepareDirty(mRenderer, dirty.left, dirty.top, dirty.right, dirty.bottom, mOpaque); } else { nPrepare(mRenderer, mOpaque); return nPrepare(mRenderer, mOpaque); } } private static native void nPrepare(int renderer, boolean opaque); private static native void nPrepareDirty(int renderer, int left, int top, int right, int bottom, private static native int nPrepare(int renderer, boolean opaque); private static native int nPrepareDirty(int renderer, int left, int top, int right, int bottom, boolean opaque); @Override Loading
core/java/android/view/HardwareCanvas.java +6 −3 Original line number Diff line number Diff line Loading @@ -41,8 +41,10 @@ public abstract class HardwareCanvas extends Canvas { * Invoked before any drawing operation is performed in this canvas. * * @param dirty The dirty rectangle to update, can be null. * @return {@link DisplayList#STATUS_DREW} if anything was drawn (such as a call to clear * the canvas). */ public abstract void onPreDraw(Rect dirty); public abstract int onPreDraw(Rect dirty); /** * Invoked after all drawing operation have been performed. Loading @@ -58,8 +60,9 @@ public abstract class HardwareCanvas extends Canvas { * @param flags Optional flags about drawing, see {@link DisplayList} for * the possible flags. * * @return One of {@link DisplayList#STATUS_DONE}, {@link DisplayList#STATUS_DRAW} or * {@link DisplayList#STATUS_INVOKE} * @return One of {@link DisplayList#STATUS_DONE}, {@link DisplayList#STATUS_DRAW}, or * {@link DisplayList#STATUS_INVOKE}, or'd with {@link DisplayList#STATUS_DREW} * if anything was drawn. */ public abstract int drawDisplayList(DisplayList displayList, Rect dirty, int flags); Loading
core/java/android/view/HardwareRenderer.java +6 −8 Original line number Diff line number Diff line Loading @@ -1042,8 +1042,8 @@ public abstract class HardwareRenderer { return mGl != null && mCanvas != null; } void onPreDraw(Rect dirty) { int onPreDraw(Rect dirty) { return DisplayList.STATUS_DONE; } void onPostDraw() { Loading Loading @@ -1102,9 +1102,7 @@ public abstract class HardwareRenderer { } } onPreDraw(dirty); int status = DisplayList.STATUS_DONE; int status = onPreDraw(dirty); int saveCount = canvas.save(); callbacks.onHardwarePreDraw(canvas); Loading Loading @@ -1138,7 +1136,7 @@ public abstract class HardwareRenderer { drawDisplayListStartTime = System.nanoTime(); } status = canvas.drawDisplayList(displayList, mRedrawClip, status |= canvas.drawDisplayList(displayList, mRedrawClip, DisplayList.FLAG_CLIP_CHILDREN); if (mProfileEnabled) { Loading Loading @@ -1372,8 +1370,8 @@ public abstract class HardwareRenderer { } @Override void onPreDraw(Rect dirty) { mGlCanvas.onPreDraw(dirty); int onPreDraw(Rect dirty) { return mGlCanvas.onPreDraw(dirty); } @Override Loading
core/jni/android_view_GLES20Canvas.cpp +6 −6 Original line number Diff line number Diff line Loading @@ -133,15 +133,15 @@ static void android_view_GLES20Canvas_setViewport(JNIEnv* env, jobject clazz, renderer->setViewport(width, height); } static void android_view_GLES20Canvas_prepare(JNIEnv* env, jobject clazz, static int android_view_GLES20Canvas_prepare(JNIEnv* env, jobject clazz, OpenGLRenderer* renderer, jboolean opaque) { renderer->prepare(opaque); return renderer->prepare(opaque); } static void android_view_GLES20Canvas_prepareDirty(JNIEnv* env, jobject clazz, static int android_view_GLES20Canvas_prepareDirty(JNIEnv* env, jobject clazz, OpenGLRenderer* renderer, jint left, jint top, jint right, jint bottom, jboolean opaque) { renderer->prepareDirty(left, top, right, bottom, opaque); return renderer->prepareDirty(left, top, right, bottom, opaque); } static void android_view_GLES20Canvas_finish(JNIEnv* env, jobject clazz, Loading Loading @@ -868,8 +868,8 @@ static JNINativeMethod gMethods[] = { { "nCreateRenderer", "()I", (void*) android_view_GLES20Canvas_createRenderer }, { "nDestroyRenderer", "(I)V", (void*) android_view_GLES20Canvas_destroyRenderer }, { "nSetViewport", "(III)V", (void*) android_view_GLES20Canvas_setViewport }, { "nPrepare", "(IZ)V", (void*) android_view_GLES20Canvas_prepare }, { "nPrepareDirty", "(IIIIIZ)V", (void*) android_view_GLES20Canvas_prepareDirty }, { "nPrepare", "(IZ)I", (void*) android_view_GLES20Canvas_prepare }, { "nPrepareDirty", "(IIIIIZ)I", (void*) android_view_GLES20Canvas_prepareDirty }, { "nFinish", "(I)V", (void*) android_view_GLES20Canvas_finish }, { "nGetStencilSize", "()I", (void*) android_view_GLES20Canvas_getStencilSize }, Loading
libs/hwui/DisplayListRenderer.cpp +2 −1 Original line number Diff line number Diff line Loading @@ -1368,13 +1368,14 @@ void DisplayListRenderer::setViewport(int width, int height) { mHeight = height; } void DisplayListRenderer::prepareDirty(float left, float top, int DisplayListRenderer::prepareDirty(float left, float top, float right, float bottom, bool opaque) { mSnapshot = new Snapshot(mFirstSnapshot, SkCanvas::kMatrix_SaveFlag | SkCanvas::kClip_SaveFlag); mSaveCount = 1; mSnapshot->setClip(0.0f, 0.0f, mWidth, mHeight); mRestoreSaveCount = -1; return DrawGlInfo::kStatusDone; // No invalidate needed at record-time } void DisplayListRenderer::finish() { Loading