Currently we rely on GC to close them.
This may cause system_server crash depending on the timing of GC.
Bug: 187879195
Test: atest UpdatableSystemFontTest
Change-Id: I09ac3f349e5ec100e4164320cbf27977474cc4bb
Mixing alpha blended colors, and then premultiplying them in the end was
causing artifacts on the sparkles.
Bug: 187824279
Test: visual
Change-Id: Icde12c3fa737f597f18f2705eefa687a49a19445
Missing ttf files under /product/fonts will cause NullPointerException.
This CL fixes it.
Bug: 187901462
Test: Flash Sabrina to Android S. Boot to check if there's still an error.
Change-Id: I9d39c2a6e4730563f35f43176f630ac0439767b3
We should not blend between the fill alpha and the sparkle alpha.
This would cause the sparkle pixel to have lower opacity than the fill,
when the fillAlpha > sparkleAlpha.
We do need to blend the fill and sparkle colors, but their alphas need
to be combined separately.
In the end we then premultiply the alpha into the color.
Test: manual
Bug: 186130682
Change-Id: I519f6c797839feda14e714c7375ee727aba2cf8b
Add force-dark support to RippleDrawable by modifying the ink color.
Test: manual
Test: atest CanvasOp
Fixes: 186130682
Change-Id: I89eaaf3afa5ec53a74d2d08de8cff6484e55a912
Icon is building its own resource object and not including the default flag that would allow for including of shared-lib resources
Bug: 187332041
Test: Manual
Change-Id: I121b5f75cbe7d125f8adddb30c84024e2b1a80c7
When a child drawable is updated, the invalidated mask
needs to reflect on the animation paint
Fixes: 187290156
Test: visual
Change-Id: I30065027f73f646c887933648d8e296ec651c299
--Updated HWUI holepunch logic for SurfaceView to
also apply the stretch to the hole punch
--Updated RenderNode callbacks to also include
an offset from the ancestor RenderNode that also
has a stretch configured on it
--Added new test activity to verify hole punch
logic
Bug: 179047472
Test: manual
Change-Id: Ibbaf8248a31839ba9dc352ecb9fef54e1276918e
Such that we only set the flag in case window visibility actually
changes. There are a lot of other cases where we need to do a
window relayout which can lead to visible jank.
Test: FrameMetricsListenerTest, manual
Bug: 185902609
Change-Id: Ia09ce640f3a89bf9dd4ff0f4e4469e88a513709a
onState() needs to be called to initialize the color to be drawn
with. ColorStateListDrawable(ColorStateList) does this as part
of the call to setColorStateList(), however this was missing from
ColorStateListDrawable(ColorStateListDrawableState) which is hit
when doing ColorStateListDrawableState#newDrawable() when
Resources has a cache-hit on a drawable to load.
Fixes: 186254988
Test: app in bug
Change-Id: Ifb3626f6f85b03dd66142a2f91ba06bc648bff16
This enforces stricter rules on the SkSL at effect creation time, and
ensures it's valid as an SkShader (vs. an SkColorFilter). Also updated
some SkSL that was already (or would become) illegal:
- Child shaders must be declared 'uniform', not 'in'
- sampling a child requires coordinates
Bug: skia:11813
Change-Id: I743b985b5012723186a43e58e9e3ccf29d809d2b
(cherry picked from commit 7556777511)
On the old version of the ripple, the alpha is limited to 50%, we should
also do the same on the latest designs.
Bug: 184165556
Test: manual
Change-Id: Iec14394e0a0bca00283a713a409dd0794eb6fb9a
This CL introduces a new attr: effectColor.
The attribute can be used on ripple tags to customize the color and
alpha of the ripple decoration.
It's also possible to change the effect color via code by invoking
RippleDrawable#setEffectColor.
Fixes: 185602477
Test: atest RippleDrawableTest
Change-Id: I9b50f330729a67ef4b529283a92c83c28387fa0b
The basic idea is to create a child surface control from the root surface control passed from ViewRootImpl to the render thread.
Transactions are sent back to the java layer to get merged.
In case of offscreen layers, SurfaceControl must be disabled.
This new feature is disabled for Vulkan at the moment, a new CL will be used to enable the support.
Bug: 173671170
Test: manual, webview apks
Change-Id: I119405d13eca3c59fd3ec78e50dc7739f78411d4
The sparkle loop animation was happening on the UI thread and is poses
some interesting challengers:
- Animations freezes when UI thread is busy, for example when
startActivity is called.
- onDraw calls add unnecessary work to the UI thread, leading to jank
in some cases, like PIP
Test: manual
Fixes: 184760248
Change-Id: Ie2840c767da61476678839eaac215dc3aff95b5c
- Use GPU finish time as well as actual deadline to determine jank
rate.
- Use dynamic interval to adjust for 60/90hz switching
- Move frame metrics reporting into JankTracker to adjust the
deadline communicated to the app when in stuffing scenario.
- Adjust double-stuffing detection to be a bit more readable.
Test: GraphicsStatsValidationTest.java
Test: adb shell dumpsys gfxinfo
Test: FrameMetricsListenerTest
Test: Log output of FrameMetricsObserver
Bug: 169858044
Change-Id: I3a6b8ed163e2cf9cf2b67667110340ebe35f98a1
PerformanceHintManager.Session is in java, so add JNI and a HintSessionWrapper
class in HardwareRenderer. Then pass the two calls as two std::functions
into DrawFrameTask.
Note Session is created per HardwareRenderer, not global (per
RenderThread).
Session includes UI thread, render thread, and the thread pool.
Desired duration is from the intended start duration to the frame
deadline. Add an actual frame start time to compute
Add system properties:
debug.hwui.use_hint_manager to enable PerformanceHintManager
debug.hwui.target_cpu_time_percent to control percentage of frame time
to be used for target cpu duration.
Test: Manual test that there are no crashes and values make sense.
Bug: 158791282
Change-Id: I83f25433c10daa20033803fb7c4ae45eab34f1d3
The ring that masks sparkles was suddenly appearing after a few frames,
causing the sparkles to show up, instead of fade in.
Fixes: 184594674
Test: visual
Change-Id: Id88c26352379e689663808fa8c70834b7ea840b5
Update RenderNodeDrawable to hole punch areas into
layers created for SurfaceView
Bug: 184297961
Test: Added CTS test to SurfaceViewTests
Change-Id: I1f03a4fe34c5a8b7411ebe728ea3d4195fcd1fac