Merge "Fix rendering artifacts on tiled renderers Bug #7275145" into jb-mr1-dev

This commit is contained in:
Romain Guy
2012-10-03 18:47:35 -07:00
committed by Android (Google) Code Review
6 changed files with 26 additions and 24 deletions

View File

@ -235,18 +235,6 @@ class GLES20RecordingCanvas extends GLES20Canvas implements Poolable<GLES20Recor
recordShaderBitmap(paint); recordShaderBitmap(paint);
} }
@Override
public void drawRect(Rect r, Paint paint) {
super.drawRect(r, paint);
recordShaderBitmap(paint);
}
@Override
public void drawRect(RectF r, Paint paint) {
super.drawRect(r, paint);
recordShaderBitmap(paint);
}
@Override @Override
public void drawRoundRect(RectF rect, float rx, float ry, Paint paint) { public void drawRoundRect(RectF rect, float rx, float ry, Paint paint) {
super.drawRoundRect(rect, rx, ry, paint); super.drawRoundRect(rect, rx, ry, paint);

View File

@ -507,17 +507,22 @@ public abstract class HardwareRenderer {
* @param width The width of the drawing surface. * @param width The width of the drawing surface.
* @param height The height of the drawing surface. * @param height The height of the drawing surface.
* @param surface The surface to hardware accelerate * @param surface The surface to hardware accelerate
*
* @return true if the surface was initialized, false otherwise. Returning
* false might mean that the surface was already initialized.
*/ */
void initializeIfNeeded(int width, int height, Surface surface) boolean initializeIfNeeded(int width, int height, Surface surface)
throws Surface.OutOfResourcesException { throws Surface.OutOfResourcesException {
if (isRequested()) { if (isRequested()) {
// We lost the gl context, so recreate it. // We lost the gl context, so recreate it.
if (!isEnabled()) { if (!isEnabled()) {
if (initialize(surface)) { if (initialize(surface)) {
setup(width, height); setup(width, height);
return true;
} }
} }
} }
return false;
} }
/** /**

View File

@ -2904,6 +2904,7 @@ public class View implements Drawable.Callback, KeyEvent.Callback,
*/ */
int mOldHeightMeasureSpec = Integer.MIN_VALUE; int mOldHeightMeasureSpec = Integer.MIN_VALUE;
@ViewDebug.ExportedProperty(deepExport = true, prefix = "bg_")
private Drawable mBackground; private Drawable mBackground;
private int mBackgroundResource; private int mBackgroundResource;

View File

@ -923,8 +923,12 @@ public class ViewDebug {
private static void dumpViewProperties(Context context, Object view, private static void dumpViewProperties(Context context, Object view,
BufferedWriter out, String prefix) throws IOException { BufferedWriter out, String prefix) throws IOException {
Class<?> klass = view.getClass(); if (view == null) {
out.write(prefix + "=4,null ");
return;
}
Class<?> klass = view.getClass();
do { do {
exportFields(context, view, out, klass, prefix); exportFields(context, view, out, klass, prefix);
exportMethods(context, view, out, klass, prefix); exportMethods(context, view, out, klass, prefix);
@ -1064,8 +1068,8 @@ public class ViewDebug {
return; return;
} else if (!type.isPrimitive()) { } else if (!type.isPrimitive()) {
if (property.deepExport()) { if (property.deepExport()) {
dumpViewProperties(context, field.get(view), out, prefix dumpViewProperties(context, field.get(view), out, prefix +
+ property.prefix()); property.prefix());
continue; continue;
} }
} }

View File

@ -52,7 +52,6 @@ import android.os.RemoteException;
import android.os.SystemClock; import android.os.SystemClock;
import android.os.SystemProperties; import android.os.SystemProperties;
import android.os.Trace; import android.os.Trace;
import android.os.UserHandle;
import android.util.AndroidRuntimeException; import android.util.AndroidRuntimeException;
import android.util.DisplayMetrics; import android.util.DisplayMetrics;
import android.util.Log; import android.util.Log;
@ -2817,10 +2816,10 @@ public final class ViewRootImpl implements ViewParent,
case MSG_RESIZED: { case MSG_RESIZED: {
// Recycled in the fall through... // Recycled in the fall through...
SomeArgs args = (SomeArgs) msg.obj; SomeArgs args = (SomeArgs) msg.obj;
if (mWinFrame.equals((Rect) args.arg1) if (mWinFrame.equals(args.arg1)
&& mPendingContentInsets.equals((Rect) args.arg2) && mPendingContentInsets.equals(args.arg2)
&& mPendingVisibleInsets.equals((Rect) args.arg3) && mPendingVisibleInsets.equals(args.arg3)
&& ((Configuration) args.arg4 == null)) { && args.arg4 == null) {
break; break;
} }
} // fall through... } // fall through...
@ -2882,8 +2881,10 @@ public final class ViewRootImpl implements ViewParent,
mSurface != null && mSurface.isValid()) { mSurface != null && mSurface.isValid()) {
mFullRedrawNeeded = true; mFullRedrawNeeded = true;
try { try {
mAttachInfo.mHardwareRenderer.initializeIfNeeded(mWidth, mHeight, if (mAttachInfo.mHardwareRenderer.initializeIfNeeded(
mHolder.getSurface()); mWidth, mHeight, mHolder.getSurface())) {
mFullRedrawNeeded = true;
}
} catch (Surface.OutOfResourcesException e) { } catch (Surface.OutOfResourcesException e) {
Log.e(TAG, "OutOfResourcesException locking surface", e); Log.e(TAG, "OutOfResourcesException locking surface", e);
try { try {

View File

@ -20,6 +20,7 @@ import android.graphics.*;
import android.content.res.Resources; import android.content.res.Resources;
import android.content.res.TypedArray; import android.content.res.TypedArray;
import android.util.AttributeSet; import android.util.AttributeSet;
import android.view.ViewDebug;
import org.xmlpull.v1.XmlPullParser; import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserException; import org.xmlpull.v1.XmlPullParserException;
@ -34,6 +35,7 @@ import java.io.IOException;
* @attr ref android.R.styleable#ColorDrawable_color * @attr ref android.R.styleable#ColorDrawable_color
*/ */
public class ColorDrawable extends Drawable { public class ColorDrawable extends Drawable {
@ViewDebug.ExportedProperty(deepExport = true, prefix = "state_")
private ColorState mState; private ColorState mState;
private final Paint mPaint = new Paint(); private final Paint mPaint = new Paint();
private boolean mMutated; private boolean mMutated;
@ -174,6 +176,7 @@ public class ColorDrawable extends Drawable {
final static class ColorState extends ConstantState { final static class ColorState extends ConstantState {
int mBaseColor; // base color, independent of setAlpha() int mBaseColor; // base color, independent of setAlpha()
@ViewDebug.ExportedProperty
int mUseColor; // basecolor modulated by setAlpha() int mUseColor; // basecolor modulated by setAlpha()
int mChangingConfigurations; int mChangingConfigurations;