Loading core/java/android/view/View.java +2 −2 Original line number Diff line number Diff line Loading @@ -11701,7 +11701,7 @@ public class View implements Drawable.Callback2, KeyEvent.Callback, Accessibilit /** * Utility to return a default size. Uses the supplied size if the * MeasureSpec imposed no contraints. Will get larger if allowed * MeasureSpec imposed no constraints. Will get larger if allowed * by the MeasureSpec. * * @param size Default size for this view Loading libs/hwui/ShapeCache.h +6 −5 Original line number Diff line number Diff line Loading @@ -537,15 +537,16 @@ PathTexture* ShapeCache<Entry>::addTexture(const Entry& entry, const SkPath *pat const float pathWidth = fmax(bounds.width(), 1.0f); const float pathHeight = fmax(bounds.height(), 1.0f); if (pathWidth > mMaxTextureSize || pathHeight > mMaxTextureSize) { LOGW("Shape %s too large to be rendered into a texture", mName); return NULL; } const float offset = fmax(paint->getStrokeWidth(), 1.0f) * 1.5f; const float offset = paint->getStrokeWidth() * 1.5f; const uint32_t width = uint32_t(pathWidth + offset * 2.0 + 0.5); const uint32_t height = uint32_t(pathHeight + offset * 2.0 + 0.5); if (width > mMaxTextureSize || height > mMaxTextureSize) { LOGW("Shape %s too large to be rendered into a texture", mName); return NULL; } const uint32_t size = width * height; // Don't even try to cache a bitmap that's bigger than the cache if (size < mMaxSize) { Loading tests/HwAccelerationTest/AndroidManifest.xml +9 −0 Original line number Diff line number Diff line Loading @@ -30,6 +30,15 @@ android:label="HwUi" android:hardwareAccelerated="true"> <activity android:name="SmallCircleActivity" android:label="_SmallCircle"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name="ClearActivity" android:label="_Clear"> Loading tests/HwAccelerationTest/src/com/android/test/hwui/SmallCircleActivity.java 0 → 100644 +70 −0 Original line number Diff line number Diff line /* * Copyright (C) 2010 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.android.test.hwui; import android.app.Activity; import android.content.Context; import android.graphics.Canvas; import android.graphics.Paint; import android.graphics.Path; import android.os.Bundle; import android.view.View; import android.widget.LinearLayout; @SuppressWarnings({"UnusedDeclaration"}) public class SmallCircleActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); final LinearLayout layout = new LinearLayout(this); layout.setOrientation(LinearLayout.VERTICAL); View view = new PathView(this); layout.addView(view, new LinearLayout.LayoutParams(PathView.SIZE, PathView.SIZE)); view = new PathView(this); view.setLayerType(View.LAYER_TYPE_SOFTWARE, null); layout.addView(view, new LinearLayout.LayoutParams(PathView.SIZE, PathView.SIZE)); setContentView(layout); } static class PathView extends View { private static final int SIZE = 37; private final Paint mPaint; private final Path mPath; PathView(Context c) { super(c); mPath = new Path(); mPath.addCircle(SIZE * 0.5f, SIZE * 0.5f, SIZE * 0.275f, Path.Direction.CW); mPath.addCircle(SIZE * 0.5f, SIZE * 0.5f, SIZE * 0.225f, Path.Direction.CCW); mPaint = new Paint(); mPaint.setAntiAlias(true); mPaint.setColor(0xffffffff); } @Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); canvas.drawPath(mPath, mPaint); } } } Loading
core/java/android/view/View.java +2 −2 Original line number Diff line number Diff line Loading @@ -11701,7 +11701,7 @@ public class View implements Drawable.Callback2, KeyEvent.Callback, Accessibilit /** * Utility to return a default size. Uses the supplied size if the * MeasureSpec imposed no contraints. Will get larger if allowed * MeasureSpec imposed no constraints. Will get larger if allowed * by the MeasureSpec. * * @param size Default size for this view Loading
libs/hwui/ShapeCache.h +6 −5 Original line number Diff line number Diff line Loading @@ -537,15 +537,16 @@ PathTexture* ShapeCache<Entry>::addTexture(const Entry& entry, const SkPath *pat const float pathWidth = fmax(bounds.width(), 1.0f); const float pathHeight = fmax(bounds.height(), 1.0f); if (pathWidth > mMaxTextureSize || pathHeight > mMaxTextureSize) { LOGW("Shape %s too large to be rendered into a texture", mName); return NULL; } const float offset = fmax(paint->getStrokeWidth(), 1.0f) * 1.5f; const float offset = paint->getStrokeWidth() * 1.5f; const uint32_t width = uint32_t(pathWidth + offset * 2.0 + 0.5); const uint32_t height = uint32_t(pathHeight + offset * 2.0 + 0.5); if (width > mMaxTextureSize || height > mMaxTextureSize) { LOGW("Shape %s too large to be rendered into a texture", mName); return NULL; } const uint32_t size = width * height; // Don't even try to cache a bitmap that's bigger than the cache if (size < mMaxSize) { Loading
tests/HwAccelerationTest/AndroidManifest.xml +9 −0 Original line number Diff line number Diff line Loading @@ -30,6 +30,15 @@ android:label="HwUi" android:hardwareAccelerated="true"> <activity android:name="SmallCircleActivity" android:label="_SmallCircle"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name="ClearActivity" android:label="_Clear"> Loading
tests/HwAccelerationTest/src/com/android/test/hwui/SmallCircleActivity.java 0 → 100644 +70 −0 Original line number Diff line number Diff line /* * Copyright (C) 2010 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.android.test.hwui; import android.app.Activity; import android.content.Context; import android.graphics.Canvas; import android.graphics.Paint; import android.graphics.Path; import android.os.Bundle; import android.view.View; import android.widget.LinearLayout; @SuppressWarnings({"UnusedDeclaration"}) public class SmallCircleActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); final LinearLayout layout = new LinearLayout(this); layout.setOrientation(LinearLayout.VERTICAL); View view = new PathView(this); layout.addView(view, new LinearLayout.LayoutParams(PathView.SIZE, PathView.SIZE)); view = new PathView(this); view.setLayerType(View.LAYER_TYPE_SOFTWARE, null); layout.addView(view, new LinearLayout.LayoutParams(PathView.SIZE, PathView.SIZE)); setContentView(layout); } static class PathView extends View { private static final int SIZE = 37; private final Paint mPaint; private final Path mPath; PathView(Context c) { super(c); mPath = new Path(); mPath.addCircle(SIZE * 0.5f, SIZE * 0.5f, SIZE * 0.275f, Path.Direction.CW); mPath.addCircle(SIZE * 0.5f, SIZE * 0.5f, SIZE * 0.225f, Path.Direction.CCW); mPaint = new Paint(); mPaint.setAntiAlias(true); mPaint.setColor(0xffffffff); } @Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); canvas.drawPath(mPath, mPaint); } } }