8598 Commits

Author SHA1 Message Date
TreeHugger Robot
0c1563d3dd Merge "Prematurely optimizing a Path." 2017-03-09 21:43:01 +00:00
Derek Sollenberger
d7f13f84f8 Prematurely optimizing a Path.
If the path had an inverse fill type we were incorrectly
converting ovals and roundRects to their primitive form
without checking to ensure the path was not inverse fill.

This CL removes these optimizations as they happen internally
within Skia.

Bug: 34245907
Test: verified broken app is fixed and that skia has existing tests
Change-Id: I8c1ff6522ae19fc6c21520adc7e9bc2473a8a4ad
2017-03-09 13:59:23 -05:00
Mathias Agopian
2bd7d98fe8 fallout from getting rid of IGraphicBufferAlloc
Test: compiled & run
Bug: cleanup
Change-Id: I1590105d3abef985c2ae7c1a03cdf5fd2ec4bef9
2017-03-08 23:12:06 +00:00
TreeHugger Robot
07be4d6781 Merge "Revert "Modify SurfaceView to use SurfaceFlinger child surfaces."" 2017-03-08 06:28:11 +00:00
Wonsik Kim
5aec7b9031 Revert "Modify SurfaceView to use SurfaceFlinger child surfaces."
This reverts commit cd4aeef88052571365d4e193a2c41e2e6d145491.

Bug: 36027342
Bug: 36015884
Change-Id: Ifd5b69caf64d65a8cd6570b7fe1fb6abe90e30b8
2017-03-08 01:52:19 +00:00
TreeHugger Robot
f4f093c52c Merge "Reinstate codes to enable RRO on system server" 2017-03-08 00:43:00 +00:00
TreeHugger Robot
7ef25b7894 Merge "Add ColorSpace information on Bitmap" 2017-03-07 18:37:13 +00:00
Chris Craik
3cad2c33ee Merge "Workaround arc textures drawing outside of bounds" 2017-03-07 17:53:22 +00:00
Romain Guy
efb4b06493 Add ColorSpace information on Bitmap
This is the first step toward interpreting color spaces at render time.

Bug: 32984164
Test: BitmapColorSpaceTest in CtsGraphicsTestCases

Change-Id: I0164a18f1ed74a745874fe5229168042afe27a04
2017-03-06 19:33:25 -08:00
Chris Craik
49b403dc9c Workaround arc textures drawing outside of bounds
Fixes: 34077513
Test: hwui unit tests passing

This fixes an issue where drawArc operations would cause artifacts by
drawing outside of the clip / screen damage area. We now more
conservatively clip drawArc operations specifically, as they tend to
draw into the outer parts of their path textures more than other
operations.

A more long term fix would involve alignment between draw operation
sizing (in terms of what's resolved in a BakedOpState), and
PathTexture sizing (which currently conservatively expands beyond
stroked op bounds).

Change-Id: I5aff39cc04382323b457b159974032f5f371251a
2017-03-06 13:51:44 -08:00
Tom Cherry
4d7094dc99 Merge "Check for spurious wake ups" am: 3a3cd0a27f am: c2dcebe6e6
am: 1344c034c5

Change-Id: I8ffc749ab6fbd825ce238fff4ba1d12609585c04
2017-03-06 20:14:37 +00:00
TreeHugger Robot
df2870df9a Merge "AAPT2: Fix parsing ResTable_type" 2017-03-06 20:01:17 +00:00
Tom Cherry
c2dcebe6e6 Merge "Check for spurious wake ups"
am: 3a3cd0a27f

Change-Id: Ia445070278f5a80c85b48e06ddf614d462db45af
2017-03-06 19:57:18 +00:00
Roozbeh Pournader
b85f02e9ad Merge "Frameworks support for hyphenation for various complex cases" 2017-03-06 19:19:11 +00:00
Roozbeh Pournader
46c6f4c5ea Frameworks support for hyphenation for various complex cases
This adds better support for Arabic script languages, Armenian,
Catalan, Hebrew, Kannada, Malayalam, Polish, Tamil, and Telugu by
adding various hyphenation types and edits appropriate for the
locales.

The actual implementations are in Minikin. This CL takes care of the
changes needed in frameworks, to support different end-of-line and
start-of-line hyphen edits.

Two bugs in TextLine.java are also fixed:

1. Where hyphen edits on non-spanned texts were not eliminated in
handleRun() when they should have. This had manifested itself in
double hyphenation in some bidi paragraphs.

2. Some no op assignments and comparions around the change for the
above bug are removed.

Test: thorough manual testing for various cases
Bug: 19756624
Bug: 19950445
Bug: 19955011
Bug: 25623243
Bug: 26154469
Bug: 26154471
Bug: 33387871
Bug: 33560754
Bug: 33752592
Bug: 33754204
Change-Id: I48c047d1f6a75c39a78a6ea38a0a3282f63326ec
2017-03-03 15:34:42 -08:00
TreeHugger Robot
f1e54c9a1c Merge "Modify SurfaceView to use SurfaceFlinger child surfaces." 2017-03-03 22:45:24 +00:00
Adam Lesinski
136fd0764f AAPT2: Fix parsing ResTable_type
ResTable_type's size changes due to it containing
ResTable_config. Make sure we check for the minimum size
required to read it.

Bug: 35861796
Test: Manual (don't have an integration test harness setup yet)
Change-Id: Ifb0cd1d732625f59835c8ed0449adb78129636de
2017-03-03 14:01:09 -08:00
Robert Carr
cd4aeef880 Modify SurfaceView to use SurfaceFlinger child surfaces.
Here we have SurfaceView bypass the WindowManager and speak
directly to SurfaceFlinger using child surfaces. We also
implement some logic in the WM to handle child surfaces
in various Surface replacement scenarios.

For those following along in the revert Saga, this
also includes the follow up CLs to the original CL.
- Surface inset calculation
- Animation fixes.

The error causing revert was a deferTransactionUntil(-1)...-1
cast to uint, defer transaction until MAX_UINT.

Bug: 28858420
Bug: 31518219
Bug: 34888808
Bug: 35588318
Bug: 35396882
Test: Existing tests still pass (except for the ones that don't and will be deleted).
Change-Id: Ib37236950a1dd3c4f9f4b58fd41ef9003c0557ef
2017-03-03 13:06:59 -08:00
Derek Sollenberger
792fb3252f Use SkPaint.nothingToDraw instead of PaintUtils helper.
The PaintUtils helper is now shared between all pipelines and was
missing a quick reject test for drawLoopers which are used in
view.setShadowLayer and supported in the Skia pipelines.

Bug: 35809097
Test: added hwui unit test and verified in DocumentsUI app
Change-Id: I3c4a988f1c42b7f421f78ac3659af1daee910ea2
2017-03-03 14:24:58 -05:00
Rob Carr
115d2dbf93 Merge "Revert "SurfaceView: Include surfaceInsets in position calculation"" 2017-03-03 01:16:28 +00:00
Rob Carr
8009012644 Revert "SurfaceView: Include surfaceInsets in position calculation"
This reverts commit 8c31e1db2a2cea4278503d6b9b27bca87946ef36.

Change-Id: Id25f493ca272878c2105f9cd302db1e05284998d
2017-03-03 01:15:36 +00:00
TreeHugger Robot
4f357c0812 Merge "Fix potential use-after-free in LayerUpdateQueue" 2017-03-02 23:16:27 +00:00
TreeHugger Robot
e1c54d53f1 Merge "Update SkiaDisplayList to use the modified SkLiteDL" 2017-03-02 22:45:35 +00:00
Jaekyun Seok
7de2f9c73f Reinstate codes to enable RRO on system server
Test: building succeeded and tested with sailfish
Bug: 35742444
Change-Id: I99d0f1d097525d3eb46255d6cf823f6ae2a02385
2017-03-03 07:23:23 +09:00
John Reck
fc29f7acd1 Fix potential use-after-free in LayerUpdateQueue
Change-Id: I090af2191576175b165a9db574a80123c16f0778
Fixes: 26548204
Test: Builds & hwui unit tests pass
2017-03-02 13:30:15 -08:00
Derek Sollenberger
ea1fe9b9d6 Update SkiaDisplayList to use the modified SkLiteDL
SkLiteDL is no longer refcounted or a subclass of SkDrawable.

Test: on device testing in SkiaGL mode
Change-Id: I9ad53d764a26ab382d80d54908325962f2075802
2017-03-02 15:28:19 -05:00
Robert Carr
8c31e1db2a SurfaceView: Include surfaceInsets in position calculation
Previously the WM was taking care of this.

Fixes: 35588318
Fixes: 34888808
Test: Manual
Change-Id: I8b48d89f830bbef43b0132d191b29552e9c35702
2017-03-02 10:38:40 -08:00
Tom Cherry
298a146754 Check for spurious wake ups
Condition::wait() can spuriously wake up, so we must guard it with
another check to ensure that a given wake was truly due to having
been signaled.

Bug: 34592766
Test: Boot bullhead
Change-Id: Iaa5a0ca6186aea50c51e2c402ef95d7ba861be92
2017-02-28 14:19:44 -08:00
Chris Craik
894b5b9998 Merge "Revert "deprecate replayClips"" 2017-02-28 19:01:11 +00:00
Derek Sollenberger
95c1a069f2 Revert "deprecate replayClips"
This reverts commit 82d3b17f6dff9372ec531d90b5d9180671e0ee2c.

Bug: 35831173
Change-Id: I467e7204a5e4bcbab1c12d3fcf52e52188830ed5
2017-02-28 17:49:07 +00:00
TreeHugger Robot
c33b943f25 Merge "deprecate replayClips" 2017-02-27 22:22:16 +00:00
Seigo Nonaka
194f375979 Merge "Follow Minikin's signature changes." 2017-02-27 04:30:31 +00:00
Seigo Nonaka
c7064146f9 Follow Minikin's signature changes.
Minikin now uses shared_ptr instead of MinikinRefCounted.

Bug: 28119474
Test: manually tested
Test: hwui_unit_tests passed.
Change-Id: Ie0564851a8a798af112679e15f7a07db000a977e
2017-02-27 11:15:19 +09:00
Mike Reed
82d3b17f6d deprecate replayClips
replayClips is deprecated, just get the rgn instead for setBitmap

Test: ran Canvas CTS
Change-Id: Id0f0da6602d1488bb4071885704fa6e3b449ab85
2017-02-24 18:23:05 -05:00
TreeHugger Robot
eda4756502 Merge "fallout of libandroid.so split" 2017-02-24 03:16:12 +00:00
TreeHugger Robot
0c6d24f736 Merge "Log rendering pipeline when initializing" 2017-02-24 01:28:17 +00:00
TreeHugger Robot
bd9e74cae0 Merge "OMS: integrate OverlayManagerService into framework" 2017-02-24 00:07:42 +00:00
Chris Craik
6e66b39e4a Log rendering pipeline when initializing
Test: manual, boots

Change-Id: I6e544510053ecf2b397ac998bcc7be9c00295a7d
2017-02-23 15:51:59 -08:00
Mathias Agopian
fee4a985fd fallout of libandroid.so split
Test: compiled & booted
Bug: 35164655
Change-Id: I786167a21453e17493969cdacfc9d31bdb781d98
2017-02-23 23:28:20 +00:00
Mårten Kongstad
2e0d0f3111 OMS: integrate OverlayManagerService into framework
Hand over ownership of overlays to OverlayManagerService.

Changes to a package's overlays are propagated using the activity life
cycle. Affected activities will be recreated as needed. This provides a
well-defined point to modify an application's assets while the
application is paused.

Consolidate how overlays targeting the system and overlays targeting
regular applications are handled. Previously, system overlays were
handled as a special case. Now, everything is handled identically. As a
side effect, the call to idmap --scan during Zygote boot has become
obsolete and is removed.

Information on what overlays to use is recorded in
ApplicationInfo.resourceDirs. The PackageManagerService is responsible
for the creation of ApplicationInfo objects. The OverlayManagerService
is responsible for informing the PackageManagerService in advance about
what resourceDirs to use.

When launching an application, the ApplicationInfo is already populated
with up-to-date information about overlays.

When enabling or disabling an overlay for a running application, the
OverlayManagerService first notifies the PackageManagerService about the
updated resourceDirs. It then tells the ActivityManagerService to push
the new ApplicationInfo object to the application's ActivityThread.
Finally the application requests its ResourcesManager to create new
ResourcesImpl objects based on the updated paths.

Change-Id: Ib8afa05ccab4e2db558f89ce4423983c086bb61a
Co-authored-by: Martin Wallgren <martin.wallgren@sonymobile.com>
Signed-off-by: Zoran Jovanovic <zoran.jovanovic@sonymobile.com>
Bug: 31052947
Test: run tests from 'OMS: tests for OverlayManagerService'
2017-02-23 14:01:38 -08:00
Derek Sollenberger
dfe0647f6c Fix unit test that failed due to incorrect refactor.
Test: hwui unit tests
Change-Id: I88b962718086ff1ca3df1999b2040fb1007b6f33
2017-02-23 14:30:18 -05:00
Derek Sollenberger
f77ca08721 Fix HWUI tests to use android-only SkPaint flags
Test: compile only
Change-Id: Ia3a5710d4ae13d68e5b2655a8b135dae8ffeb513
2017-02-23 10:03:04 -05:00
Derek Sollenberger
ab61fb8b5f Update framework to use new method for disabling DF path rendering.
Test: compile only
Change-Id: Ifa690a0af01cb6b07c4fd303302cb6a557e8dfde
2017-02-23 08:29:59 -05:00
Guang Zhu
df0824ad4c Merge "Revert "OMS: integrate OverlayManagerService into framework"" 2017-02-23 07:36:16 +00:00
Guang Zhu
9545980692 Revert "OMS: integrate OverlayManagerService into framework"
Bug: 31052947
Bug: 35697944

This reverts commit 21a3d1ad686dee97b9cf0ed80389ee2ab0d48013.

Change-Id: I2d86931020301524c26cf8c8e80d557c97fdd6c3
2017-02-23 07:35:39 +00:00
TreeHugger Robot
0f09817859 Merge "OMS: integrate OverlayManagerService into framework" 2017-02-23 03:59:01 +00:00
Mike Reed
b216c21acd underline is now only tracked by android
Change-Id: I189c57dd47ad413b8964d7e5805dfd6d4af11982
2017-02-22 10:49:51 -05:00
TreeHugger Robot
a231eb1410 Merge "Implement getAxes() method." 2017-02-22 09:35:13 +00:00
Mårten Kongstad
21a3d1ad68 OMS: integrate OverlayManagerService into framework
Hand over ownership of overlays to OverlayManagerService.

Changes to a package's overlays are propagated using the activity life
cycle. Affected activities will be recreated as needed. This provides a
well-defined point to modify an application's assets while the
application is paused.

Consolidate how overlays targeting the system and overlays targeting
regular applications are handled. Previously, system overlays were
handled as a special case. Now, everything is handled identically. As a
side effect, the call to idmap --scan during Zygote boot has become
obsolete and is removed.

Information on what overlays to use is recorded in
ApplicationInfo.resourceDirs. The PackageManagerService is responsible
for the creation of ApplicationInfo objects. The OverlayManagerService
is responsible for informing the PackageManagerService in advance about
what resourceDirs to use.

When launching an application, the ApplicationInfo is already populated
with up-to-date information about overlays.

When enabling or disabling an overlay for a running application, the
OverlayManagerService first notifies the PackageManagerService about the
updated resourceDirs. It then tells the ActivityManagerService to push
the new ApplicationInfo object to the application's ActivityThread.
Finally the application requests its ResourcesManager to create new
ResourcesImpl objects based on the updated paths.

Co-authored-by: Martin Wallgren <martin.wallgren@sonymobile.com>
Signed-off-by: Zoran Jovanovic <zoran.jovanovic@sonymobile.com>
Bug: 31052947
Test: run tests from 'OMS: tests for OverlayManagerService'
Change-Id: Idc96dae6fc075d5373aa055bbf50e919136d7353
2017-02-21 14:29:43 -08:00
Fyodor Kupolov
21edf1976c Merge "Check bounds in offsetToPtr" 2017-02-21 22:29:35 +00:00