Logic in the hardware renderer optimizes path rendering for simple
paths that consist of only rectangles. Any operation on the path that
adds any other primitive sets the simplicity flag to false appropriately.
PathMeasure.getSegment(), however, avoids those code paths and never sets
the mIsSimple flag at all, so it returns its original value (true, if the
path was simply constructed with no operations before being used in the
getSegment() call).
The fix is to avoid the optimization for paths used in getSegment(), since
it's not clear what operations will end up in the path and it's likely not
going to be just simple rectangles in any case.
Issue #12533902 PathMeasure.getSegment is broken
Change-Id: I71e77207e4d5c649c326557d33eba31e9b0fd45e
setIsOpaque() has been removed from ToT Skia.
Update setters for mIsPremultiplied and hasAlpha to take the
other into consideration.
Change-Id: I1b36b0b0ce7126031eb7b769b563c17dcd4b306a
For storing pointers, long is used in BitmapRegionDecoder
class, as native pointers can be 64-bit.
In addition, some minor changes have been done
to conform with standard JNI practice (e.g. use
of jint instead of int in JNI function prototypes)
In addition, Graphics.cpp has been changed to work
with modified BitmapRegionDecoder.
Change-Id: Id54087dd3bfb29577e8b762e70946793369dc701
Signed-off-by: Ashok Bhat <ashok.bhat@arm.com>
Signed-off-by: Marcus Oakland <marcus.oakland@arm.com>
For storing pointers, long is used in Movie class,
as native pointers can be 64-bit.
In addition, some minor changes have been done
to conform with standard JNI practice (e.g. use
of jint instead of int in JNI function prototypes)
Change-Id: I946325e4af6cb9282012bebdaee89e1117d8797b
Signed-off-by: Ashok Bhat <ashok.bhat@arm.com>
Signed-off-by: Marcus Oakland <marcus.oakland@arm.com>
For storing pointers, long is used in
android/graphics/PathMeasure class, as native
pointers can be 64-bit.
In addition, some minor changes have been done
to conform with standard JNI practice (e.g. use
of jint instead of int in JNI function prototypes)
Change-Id: I4599a9d5f7dcf9c39838db96d9033059114d3a49
Signed-off-by: Ashok Bhat <ashok.bhat@arm.com>
Signed-off-by: Marcus Oakland <marcus.oakland@arm.com>
Only propagate DrawableContainer color filter, alpha when explicitly
modified. Invalidate LayerDrawable padding when child inset modified.
Change-Id: I27c6fe3c2d71b92bfbc54cc829e1efc7bc35e566
https://code.google.com/p/android/issues/detail?id=61547
This variable is shadowing the outer "ptr" declaration, resulting in a
potential NULL pointer being passed to the message API.
Change-Id: If96bfae8d5e874e12597182678a180ba137b78da
This change consolidates the copy paths to Object based.
The runtime now uses reflection to identify the type of
array present. This adds support for long/double and reduces
the amount of code present. We could also support arrays of vectors
or objects in the future with this mechanism.
Change-Id: I2297c1c01fbe6a64c375d6368f25d7db781ea788
This changes BaseObj to support 64-bit IDs. There are a few caveats:
1. Since it is deprecated, RSG will not support 64-bit.
2. Currently, methods that pass arrays of IDs to the driver are not supported in 64-bit. This will be fixed in a later CL.
bug 11332320
Change-Id: If0dbecc8b285e260f767e441e05088b6a1b749a2
1. View now checks both queues when unscheduling runnables,
fixing the case where work was scheduled pre-attach, and unscheduled
post-attach.
2. AnimationDrawable avoids posting duplicate runnables when rescheduling
itself.
3. Decouple is-animation-running state from current frame pointer in
AnimationDrawable. Some calls init to the first frame, but do not
kick off the animation.
4. Remove workaround in SystemUI's AnimatedImageView (status bar icon)
now that the underlying framework issues are fixed.
Bug:11694594
Change-Id: I77ca6bd80262f7edcf980b2d7efc2592f8051f29
With this patch, framework does at least some of its text rendering
using Minikin instead of TextLayoutCache. There's a lot of stuff broken
and not yet implemented, but the phone will boot.
Changes are hidden behind USE_MINIKIN, which should be set in
BoardConfig.mk for the brave. Without that, there are changes to
signatures in JNI methods and so on, but shouldn't be any visible
changes.
This commit also introduces a new abstraction for Typeface:
The new TypefaceImpl abstraction represents the functionality that
corresponds to a Java Typeface object. Currently it is backed by
SkTypeface, but in the migration to Minikin it is a FontCollection
combined with a FontStyle. This patch introduces a USE_MINIKIN
preprocessor switch, so there is no substantial change to existing
Skia-based code, but which lets us start replacing the implementation
with the Minikin version.
Change-Id: I532c4c2d32d4f4c1f349dc1db37caa112af587ea