Bug #5435653
saveLayer() can be extremely expensive on some GPU architectures. Avoiding
this call greatly improve the rendering performance of drawables with
strok + fill.
Change-Id: Ib414174ba05d5bad56d942b8e67ab784e7d60b9e
This reverts commit 56c58f66b9
This CL was causing the browser to crash when adding bookmarks, visiting the bookmarks page, and sharing pages (see bug http://b/issue?id=5369231
Some progress bars use AnimatedRotateDrawable, which suffered
from the same bug as AnimationDrawable (until a recent fix). The
code would not account for the left/top offset of the drawable in its view,
so it would rotate the drawable around the wrong center, causing it to
wobble and not get erased properly.
Change-Id: I3f34f797e595973d9eb1d952d92026c769c7ec0a
The difference is not obvious when compared to no hinting, and turning
off hinting has undesirable side effects because of the lack of sub-
pixel positioning when rendering text.
Change-Id: If2162ba079f68f33b33aed444e80036fdbf015bb
Make ProgressBar maintain aspect ratio on indeterminate progress drawables.
Make RotateDrawable tolerate left/top bounds != 0.
Change-Id: Iee03030caa98f72a8745f1ae3fb0de108ff663d4
The animation that runs when the NotificationPanel appears
used to start, then pause for a long time as the window/surface/layer
was created, then by the time it started to be visible, the animation
was over. This new approach delays starting the animation until the
layer has been drawn, so the animation can actually run a few frames after
that before finishing.
Change-Id: I998f01fd48cb762178021ad99e2b919b58a1ef3f
This change removes the ability to create a SurfaceTexture that is
capable of operating in synchronous-mode from the public APIs.
Bug: 5167959
Change-Id: I09995832bb9a5f5063a67ddc3e0e1ab124d4e893
We now do the screenshot in a separate process.
Also change the recents panel to not use hardware acceleration
on lower-end devices. And improve how it gets shown to not
load all data up-front which results in a long delay when you have
lots of recents.
Change-Id: Ia309a90f9939e5405758621b3f7114597bd0c02a
This removes the ParcelSurfaceTexture class since that functionality has been
folded into Surface.java. The change also updates the MediaPlayer to get rid
of setParcelSurfaceTexture() and modifies setTexture() to use the new Surface
functionality in order to simplify the code.
Change-Id: Iafa75ea3188263928128325d8a726786971b4de4
- do not go to native if this is not needed (empty or null text)
- do expandMetricsFromPaint() in TextLine when needed instead of calling handleText()
with emty string just for doing expandMetricsFromPaint()
Change-Id: I1f566ccef66cbc990ebbb77ef149899119e37e84
- use correct 0 index for computing advance thru the char buffer (the buffer is created from TextUtils.getChars())
- udpate unit tests
Change-Id: Iaeb07658b79ecdf5e17395d55afb7c84965bb0fc
This change alters the conditions under which the onFrameAvailable
callback gets called by the C++ SurfaceTexture class. The new behavior
is to call the callback whenever a frame gets queued that will be
visible to the buffer consumer. This means that buffers queued in
synchronous mode always trigger the callback, as those buffers will
remain pending until they are consumed. Buffers queued in asynchronous
mode will only trigger the callback if there was not previously an
unconsumed buffer pending.
The new behavior means that a consumer should perform a draw operation
exactly once for every onFrameAvailable call that it recieves. This
change also modifies SurfaceFlinger and the SurfaceTexture JNI to
support of the new behavior.
Change-Id: I8b2c6e00961d3d58b11c6af50b555b6e4c5f5b40
When jumpDrawablesToCurrentState(), finish any alpha animation in
progress. Fixes bug where drawable with enter fade would remain
transparent until next state change.
Change-Id: Ia087f935566a8d78e0efdcb0a1a2f791db05c70e