948 Commits

Author SHA1 Message Date
Derek Sollenberger
0b8606266c Fix DrawFilter's usage in HWUI.
Also add additional compile time checks to ensure that the Java
and Skia APIs remain in sync.

bug:19890753
Change-Id: I8503cacf2859307e3f480a78603f9f05901b58cc
2015-03-25 10:08:30 -04:00
Mike Reed
2a1ce8a4e5 use SkFilterQuality instead of SkPaint::FilterLevel
Change-Id: I5d26869de746107b8a35a7a662236f993a824b0d
2015-03-16 11:31:38 -04:00
Raph Levien
210a189e22 Add HyphenEdit support to Paint
This adds HyphenEdit on the C++ and also to Java via JNI. HyphenEdit is
a Minikin feature for adding hyphens to text without having to edit the
string on the client side.

Change-Id: Icfb228407c1d11a716d055f813da7507acb38fbf
2015-03-14 06:00:23 +00:00
Derek Sollenberger
ee248599d4 Refactor DisplayList path caching.
This removes dependence on SkPath ptrs that HWUI does not control
the lifecycle of. This clears up some errors where the paths are
not generated from Java, but rather the Skia test suites.

Cherry-pick of a change that originally landed in master-skia and is
dependent on a skia merge (ag/655422).

Change-Id: I41b9797a2b0af5d6b4ea51891565469d4f1d832d
2015-03-13 08:05:55 -04:00
Leon Scroggins III
247dc6e125 Fix use of SkMutex.
Recent change to Skia moved SkMutex into its own header file. Include
it to use and SkMutex.

Use SK_DECLARE_STATIC_MUTEX to remove static initializer/finalizer.

Fixes master-skia build.

Change-Id: I2ab43c511587167b81310d5d55a65604d82761f5
2015-03-13 08:05:07 -04:00
Leon Scroggins III
3449789b9c SkStream is no longer a ref counted object.
With https://codereview.chromium.org/849103004/, SkStream is no longer
ref counted. Change callers that currently unref() SkStreams to one of
either:
- delete the stream
- pass ownership of the stream

screencap.cpp:
Call EncodeData directly, bypassing SkDynamicMemoryWStream and SkBitmap.

Utils.cpp:
Write directly to an SkData, and then use that to construct a new
SkStream.

Cherry-pick of a change that originally landed in master-skia and is
dependent on a skia merge (ag/655422).

Change-Id: Idc99ad7d5a70c893dc012d59915216f301ab3c9d
2015-03-12 19:51:57 +00:00
Leon Scroggins III
ec419e0b73 Make Bitmap_createFromParcel check the color count.
When reading from the parcel, if the number of colors is invalid, early
exit.

Add two more checks: setInfo must return true, and Parcel::readInplace
must return non-NULL. The former ensures that the previously read values
(width, height, etc) were valid, and the latter checks that the Parcel
had enough data even if the number of colors was reasonable.

Also use an auto-deleter to handle deletion of the SkBitmap.

BUG=19666945

Change-Id: Icbd562d6d1f131a723724883fd31822d337cf5a6
2015-03-11 17:34:51 +00:00
Chris Craik
2d08eaf034 Merge "Revert "Revert "Remove references to SkPorterDuff as it is deprecated.""" 2015-03-06 18:42:30 +00:00
Chris Craik
1526a458a3 Revert "Revert "Remove references to SkPorterDuff as it is deprecated.""
Fix build breakage.

This reverts commit 26b4f598c8b1e99b43261614a6861785638c8c00.

Change-Id: If39ce2a41d26a8520091f330234c3d35e413ee92
2015-03-06 18:42:15 +00:00
Chris Craik
fdbf68ff6c Merge "Revert "Remove references to SkPorterDuff as it is deprecated."" 2015-03-06 18:16:45 +00:00
Chris Craik
26b4f598c8 Revert "Remove references to SkPorterDuff as it is deprecated."
bug:19627342

This reverts commit a9aded1f6253afbea7906509992a8a3721f731ab.

Change-Id: Ic865edfbd31c9e24d18a1397a1d346633376e20a
2015-03-06 18:15:39 +00:00
John Reck
f4faeac352 Cleanup Bitmap JNI attempt #2
Original version missed a spot

This reverts commit c02977e3bbfaaedcb1b1d67e1692becc7dddd59b.

Change-Id: I56244ce10d709fcdef42a001fe4c6ba7b6bbb04d
2015-03-05 13:56:16 -08:00
Chad Jones
b9a468eb19 Merge "Revert "Cleanup Bitmap JNI"" 2015-03-05 19:35:15 +00:00
Chad Jones
c02977e3bb Revert "Cleanup Bitmap JNI"
This reverts commit b2915245b74b3b5541b123e38403f8e26426b4b7.

Change-Id: Idd7d7f33eec4ea5024c83de6b10d3d1a6ab2b17a
2015-03-05 19:34:26 +00:00
John Reck
35da7d904b Merge "Cleanup Bitmap JNI" 2015-03-05 18:12:35 +00:00
John Reck
b2915245b7 Cleanup Bitmap JNI
Fix a bunch of places where mNativeBitmap was being
poked at directly, switch them either to the NDK API
or to GraphicsJNI where it made sense

Change-Id: I6b3df3712d6497cba828c2d3012e725cb4ebb64d
2015-03-05 09:55:02 -08:00
Derek Sollenberger
a9aded1f62 Remove references to SkPorterDuff as it is deprecated.
Change-Id: Ic0722cfef4ed61aa546c495924397097a45cfe77
2015-03-05 09:37:34 -05:00
Derek Sollenberger
c4e4eef64a Merge "Rename Canvas::getSkCanvas to Canvas::asSkCanvas" 2015-01-30 14:25:24 +00:00
Leon Scroggins III
9a1eefe174 Merge "AvoidXferMode -> AvoidXfermode." 2015-01-30 14:12:27 +00:00
Leon Scroggins III
ed1ce37759 AvoidXferMode -> AvoidXfermode.
When I moved this code here from external/skia, I accidentally changed
the lowercase 'm' to uppercase 'M'. Change back, to keep consistent
with SkXfermode and Xfermode.cpp.

Change-Id: I9694d29a22aaed7fcc8708f5962e3d2032297d08
2015-01-30 09:05:11 -05:00
Leon Scroggins III
9bf106f156 Merge "Move SkAvoidXferMode into frameworks/base." 2015-01-30 13:55:23 +00:00
Leon Scroggins III
626647c3f6 Move SkAvoidXferMode into frameworks/base.
We are removing it from Skia, so we need it here to support Android.

Add some small cleanups (remove comment that doesn't apply, convert
SK_OVERRIDE to override, remove 'virtual' keyword from methods with
'override' on them).

BUG:skbug.com/3329
Change-Id: I1f883082d6fb9d49b9c9ba9e1f50bd713eabf915
2015-01-30 08:32:49 -05:00
Derek Sollenberger
c5ea9faef0 Merge "Fix bitmap allocation error that causes crash when calling Bitmap::extractAlpha" 2015-01-29 17:44:01 +00:00
Derek Sollenberger
d37095b74e Fix bitmap allocation error that causes crash when calling Bitmap::extractAlpha
bug: 19112656
Change-Id: Ib44ba4208449d5873402e9516abc8b6d8fa0b82a
2015-01-29 11:52:45 -05:00
Derek Sollenberger
b3d50e0075 Rename Canvas::getSkCanvas to Canvas::asSkCanvas
Change-Id: I967a45698d382e54eaa5ff64fa8909ff00908650
2015-01-29 11:25:55 -05:00
Leon Scroggins III
283ddb9d4f am 3523e4fc: am efe085ff: Merge "Handle bad ninepatch data." into lmp-mr1-dev
automerge: 8475144

* commit '847514499f5920d073f5cd402dd0d3bbd19ac2c1':
  Handle bad ninepatch data.
2015-01-27 23:34:35 +00:00
Leon Scroggins III
847514499f am 3523e4fc: am efe085ff: Merge "Handle bad ninepatch data." into lmp-mr1-dev
* commit '3523e4fcb3c74a5dee2f4497e2b8ec7b9e2b5e57':
  Handle bad ninepatch data.
2015-01-27 18:33:46 +00:00
Leon Scroggins III
a730ef3f77 Handle bad ninepatch data.
Changes proposed by Ben Hawkes of Google Project Zero.

NinePatchPeeker.cpp:
Instead of asserting, return false for bad data.

ResourceTypes.h:
Store ninepatch values as unsigned.

BUG:19151999
Change-Id: Ibe35e7569f632c6bb8a34a7701e26bb6ed547ec2
2015-01-27 16:41:16 +00:00
John Reck
849911a9c4 Move Canvas
Change-Id: I83d557af30fc2d5c69d06eedc0f4d52ac41c4210
2015-01-20 12:39:05 -08:00
Chris Craik
d5049e2f74 am 04b633c5: am 0de2eca5: am 112e35b4: Merge "Update generationId on bitmaps when decoded into by BitmapRegionDecoder" into lmp-mr1-dev
* commit '04b633c526b3ea72cb13f0c0472673f3baf07625':
  Update generationId on bitmaps when decoded into by BitmapRegionDecoder
2015-01-16 00:06:14 +00:00
Chris Craik
04b633c526 am 0de2eca5: am 112e35b4: Merge "Update generationId on bitmaps when decoded into by BitmapRegionDecoder" into lmp-mr1-dev
* commit '0de2eca5fc439e2622cc0cc5a54cd9a5938f67c6':
  Update generationId on bitmaps when decoded into by BitmapRegionDecoder
2015-01-15 23:15:56 +00:00
Chris Craik
112e35b464 Merge "Update generationId on bitmaps when decoded into by BitmapRegionDecoder" into lmp-mr1-dev 2015-01-15 23:04:15 +00:00
Ben Wagner
177612335a Remove last mention of SkFontHost.
SkFontHost is now almost removed from Skia, and nothing is left in it
which interests Android. Remove the last few references to it to aid
in final removal.

Change-Id: I7d59cf7e08bdd5b9c3923c9ffaf03b1cc2f9f7b4
2015-01-15 14:16:46 -05:00
Chris Craik
3b47713b26 Update generationId on bitmaps when decoded into by BitmapRegionDecoder
bug:18921087

This fixes issues where bitmaps are cached as textures, and not
reuploaded when reused by BitmapRegionDecoder, showing stale content.

Change-Id: I7626fd6acd36d8e38723689734855ce9154eb8c8
2015-01-14 16:55:34 -08:00
Derek Sollenberger
dbf22ccd92 Merge "Update HWUI to store its own SkBitmap objects" 2015-01-14 15:06:27 +00:00
Ben Wagner
c2d39573ca Remove dead code from AssetStreamAdapter.
After "Use at least SkStreamAsset for SkTypefaces." there is now dead
code in AssetStreamAdapter. Remove the code and update the users.

Change-Id: I17a9d82dd6ca4d87a951c1570dc91de7f2fc54f2
2015-01-12 18:13:27 -05:00
Ben Wagner
f462c2491b Use at least SkStreamAsset for SkTypefaces.
The existing AssetStreamAdapter is only SkStreamRewindable, and does not
support 'duplicate'. This is needed in order for SkTypeface to be used
properly. Also, SkTypeface is moving to require SkStreamAsset for
creating typefaces for performance and code reasons.

In the previous code, Asset::getBuffer is called on creation of the
typeface, so do so explicitly and manage the memory directly. This
also prevents additional copies being made of the asset data.

BUG: 18867034
Change-Id: I458a8ec024efefb761138178b87b88b48cb4a773
2015-01-12 15:19:18 -05:00
Derek Sollenberger
3d4eed7f1a Update HWUI to store its own SkBitmap objects
This enables us to...

1) simplify the lifecycle/ownership between Java and HWUI
2) remove DisplayListRenderer::drawBitmapData and associated logic
3) track pixel lifecycle using standard SkPixelRef refcounting
4) Remove uncessary calls to ref/unref the bitmap's pixels and colorTable

Change-Id: I3c95078da20995444f6388a029414280fd654318
2015-01-09 13:56:56 -05:00
Derek Sollenberger
304cc53874 Use the generic Canvas instead of SkCanvas
bug: 18642206
Change-Id: I0dc3f6b620083e5948c2d4be541ae7c6261b3482
2015-01-09 09:16:06 -05:00
Tom Hudson
40a0709a56 Merge "Merge frameworks/base changes from master-skia to master." 2015-01-07 16:13:42 +00:00
Vladimir Marko
152d7282a4 Check for OOM in BitmapFactory's getMimeTypeString().
Bug: 18909596

(cherry picked from commit 7ab249a18e08bfefb8c2d60af1fb668c67ba4368)

Change-Id: Ie7be228442876d47faf37e3f664e378253dab6e3
2015-01-07 11:50:04 +00:00
Vladimir Marko
2e61c04070 am bf31cb6b: am 8371f2e3: Merge "Check for OOM in BitmapFactory\'s getMimeTypeString()."
automerge: 4e29869

* commit '4e2986940b2ff456693a805026c6910e950c42e2':
  Check for OOM in BitmapFactory's getMimeTypeString().
2015-01-07 10:32:50 +00:00
Vladimir Marko
4e2986940b am bf31cb6b: am 8371f2e3: Merge "Check for OOM in BitmapFactory\'s getMimeTypeString()."
* commit 'bf31cb6be4290ce161d99a2a70c318f665a14a77':
  Check for OOM in BitmapFactory's getMimeTypeString().
2015-01-07 10:30:44 +00:00
Mike Reed
71487eb0ce Merge frameworks/base changes from master-skia to master.
Adaptations to changes in Skia upstream since Oct 2014.
(https://code.google.com/p/skia/issues/detail?id=2377)

cbb922d use new roundOut signature
77082de Call SkColorTable::readColors().
5456ab1 Handle the result of SkMatrix::asAffine.
25cfc78 Remove dependence on SK_LEGACY_PICTURE_SIZE_API.

BUG:18468293

Change-Id: I5a4d274e854298843891410b1ffd5e24f038b88a
2015-01-06 21:41:35 +00:00
Narayan Kamath
f70afa9b8f am 721d0994: am f60b2d40: am 024191b5: Merge "Fix comment. It should be \'or\' not \'of\'."
* commit '721d0994dc6ed370e359a33a6798f87389a428c8':
  Fix comment.  It should be 'or' not 'of'.
2015-01-06 20:09:06 +00:00
Vladimir Marko
7ab249a18e Check for OOM in BitmapFactory's getMimeTypeString().
Bug: 18909596
Change-Id: If65fe45f5fd569a99a0cae1d31117af262bca430
2015-01-06 18:40:08 +00:00
Narayan Kamath
721d0994dc am f60b2d40: am 024191b5: Merge "Fix comment. It should be \'or\' not \'of\'."
* commit 'f60b2d40b0b8dea2c83335c00fd7767008aa0abe':
  Fix comment.  It should be 'or' not 'of'.
2015-01-06 10:16:23 +00:00
Narayan Kamath
024191b57f Merge "Fix comment. It should be 'or' not 'of'." 2015-01-06 09:46:17 +00:00
Tom Hudson
8dfaa49042 Make DisplayListRenderer inherit from Canvas, merge JNI
Incrementally unify the upper layers for Skia and HWUI.
Remove redundant code from GLES20Canvas.java; instead
use inherited mNativeCanvasWrapper and superclass method
definitions.

Moves some unrelated SkPaint utility functions from Renderer
to new utils/PaintUtils.

bug: 15672762
Change-Id: I4ddd4214b8e9eeb95289d054ef423f2542bb5fa5
2015-01-05 15:25:41 -08:00
Leon Scroggins III
1e9547722f Merge "Make SkiaCanvas creation call ref() on SkCanvas." 2014-12-19 14:32:05 +00:00