5400 Commits

Author SHA1 Message Date
John Reck
f6eebb21d5 Merge "Refactor HardwareLayer" 2014-02-11 17:30:53 +00:00
Narayan Kamath
3ff18faac2 am deefd1fd: am 5f7c0b1d: am 6d8b21a8: Merge "Fix TinyHashMap to use generic hash_type instead of hash_t"
* commit 'deefd1fdeaf0b538a13219517f8795fdde198e21':
  Fix TinyHashMap to use generic hash_type instead of hash_t
2014-02-11 14:05:35 +00:00
Narayan Kamath
deefd1fdea am 5f7c0b1d: am 6d8b21a8: Merge "Fix TinyHashMap to use generic hash_type instead of hash_t"
* commit '5f7c0b1d80f883fa15f88e0e4d508576a36a45de':
  Fix TinyHashMap to use generic hash_type instead of hash_t
2014-02-11 13:47:50 +00:00
John Reck
04fc583c3d Refactor HardwareLayer
Defer all the things!
 Groundwork to allow hardware layers to work in a renderthread world

Change-Id: Ib3aa47525f393083621254a743dbaa6352f933bd
2014-02-10 20:55:39 -08:00
Michael Wright
f52fd37826 Merge "Revert "Move inputservice over to frameworks/native"" 2014-02-10 23:09:45 +00:00
Michael Wright
453fa30ab2 Revert "Move inputservice over to frameworks/native"
This reverts commit 89e5c7ebb37fabc4368e87e17a502db62598bd61.
2014-02-10 15:08:26 -08:00
Michael Wright
740dfefcfc Merge "Move inputservice over to frameworks/native" 2014-02-10 22:42:01 +00:00
Michael Wright
943c05f327 Merge "Remove SkRegion dependency from libinput" 2014-02-10 22:41:25 +00:00
Michael Wright
89e5c7ebb3 Move inputservice over to frameworks/native
Remove all of the pieces except the PointerController and SpriteController over
to frameworks/native in preparation for inputflinger. Those two need to stay in
frameworks/base for now because they depend on Skia currently. In the long run
they should be merged into either the InputManager or the WindowManager rather
than as a part of the inputservice / inputflinger.

Change-Id: Iebef71f3030fb3d26a5f338eb66d75bb37c17734
2014-02-10 14:10:27 -08:00
Michael Wright
a407d6a003 Remove SkRegion dependency from libinput
This gets us one step closer to removing our dependency on Skia, which is at
least one of the things blocking us from moving the input system out of
f/b.

Change-Id: I755e6267996c93fe700f1056327386923287575a
2014-02-10 12:59:34 -08:00
Derek Sollenberger
eef1be1d83 Merge "Removing SkiaColorFilter and inspecting the native object directly." 2014-02-10 19:19:07 +00:00
Chris Craik
4292e36f02 Merge "Add shadow casting / global perspective APIs, hidden for now." 2014-02-10 18:58:54 +00:00
Narayan Kamath
91447d88f2 Extended locales in AAPT / AssetManager.
Support 3 letter language codes, script codes &
variants. The bulk of the changes are related to
the implementation of command line filtering of
locales etc. The previous code assumed that the
value of each "axis" (locale, density, size etc.)
could be represented by a 4 byte type. This is
no longer the case.

This change introduces a new class, AaptLocaleValue
which holds a (normalized) locale parsed from a
directory name or a filter string. This class takes
responsibility for parsing locales as well as
writing them to ResTable_config structures, which is
their representation in the resource table.

This includes minor changes at the java / JNI level
for AssetManager. We now call locale.toLanguageTag()
to give the native layer a well formed BCP-47 tag.
I've removed some duplicated parsing code in
AssetManager.cpp and replaced them with functions on
ResTable_config. The native getLocales function has
been changed to return well formed BCP-47 locales as
well, so that the corresponding java function can use
Locale.forLanguageTag to construct a Locale object
out of it.

Finally, this change introduces default and copy
constructors for ResTable_config to prevent having
to memset() the associated memory to 0 on every
stack allocation.

Change-Id: I899a56a9a182ee6be52b9389d1ae59266f5482e9
2014-02-10 15:50:16 +00:00
Narayan Kamath
378c6775a6 AssetManager support for 3 letter lang/country codes.
- 3 letter codes are packed into the existing 32 bit locale
  field in ResTable_config
- We introduce new fields for script / variant information.

Note that we define a "match" between two ResTable_config
structures to be purely on the basis of their language &
country (disregarding the script and the variant). However,
configs with scripts and variants are considered to be more
specific than those without.

Change-Id: I3c2e909ebbebdbbd0ab72a639d531b2b9fdbd9b9
2014-02-10 15:33:30 +00:00
Chris Craik
b67a7bf27b Add shadow casting / global perspective APIs, hidden for now.
Global perspective isn't yet hooked up in rendering.

Change-Id: I64ad272ea5dc523505260ce114f0a6bebdcfe9dc
2014-02-07 16:02:51 -08:00
Derek Sollenberger
76d3a1b8d0 Removing SkiaColorFilter and inspecting the native object directly.
bug: 10650594
Change-Id: I4fcf66d008765afa0e35d011f58bc792183cb74f
2014-02-07 17:06:14 -05:00
ztenghui
fad4593a3c Add the clipToOutline by just using the clipPathOp
Change-Id: I6ba23b589e579599d018600d0744be0efe2028c1
2014-02-07 13:36:57 -08:00
Derek Sollenberger
8852ab4357 Merge "Keep the SkPaint used when creating a layer." 2014-02-07 20:52:22 +00:00
Ashok Bhat
e9bea2a182 Fix TinyHashMap to use generic hash_type instead of hash_t
TinyHashMap used hash_t(key) to generate hashcode. This
would not work for 64-bit pointers as hash_t is declared as
an uint32_t.

Replaced the hash_t(key) call to more generic android::hash_type(key).
This function is a template function declared in TypeHelpers.h and
has a version available for all data types including pointers.

Change-Id: I612cf18b49ca7c30b63f9d6938df68fed7d80d08
Signed-off-by: Ashok Bhat <ashok.bhat@arm.com>
2014-02-07 19:10:04 +00:00
Chris Craik
27bfb24518 Merge "Rework and clean up DisplayList projection" 2014-02-07 18:47:57 +00:00
Derek Sollenberger
d44fbe55a9 Keep the SkPaint used when creating a layer.
This will allow us to inspect the paint for thing other than
color and xfermode, such as SkColorFilters and SkShaders.

bug: 10650594
Change-Id: I2c3ddd07a3966e1e77af34136307e2b59b2898c1
2014-02-07 13:33:29 -05:00
Chris Craik
1df26446b7 Rework and clean up DisplayList projection
Move the projection surface to be a property of a DisplayList,
set to true for every background drawable.

Additionally, handle a projecting view background such that it doesn't
try to project onto itself (which is undesirable).

Change-Id: Ic70b17474bd87340e80767f8518f73b233419c7a
2014-02-06 16:07:37 -08:00
Chris Craik
fdace4e238 Merge "Simplify DisplayList matrices" 2014-02-06 23:22:28 +00:00
Chris Craik
ba9a21561e am 2c764b20: am 0ec3ca6e: am 449273e2: Merge "Fix for positioning of glyphs within a bitmap"
* commit '2c764b20e4a35c509f49e3d9430e135b4f3a0984':
  Fix for positioning of glyphs within a bitmap
2014-02-05 21:52:23 +00:00
Chris Craik
2c764b20e4 am 0ec3ca6e: am 449273e2: Merge "Fix for positioning of glyphs within a bitmap"
* commit '0ec3ca6e08e5933016beda147ca9a82e96434b15':
  Fix for positioning of glyphs within a bitmap
2014-02-05 21:43:48 +00:00
Chris Craik
449273e2d5 Merge "Fix for positioning of glyphs within a bitmap" 2014-02-05 21:36:42 +00:00
Chris Craik
629f67709b Simplify DisplayList matrices
Somewhat unifies the ortho/perspecive paths - the property matrix
(translate/scale/rotate) is now always a Matrix4.

Change-Id: I36e4fe83d1150ee6e4be5f64f34d0fc8d6525cc6
2014-02-05 13:12:04 -08:00
ztenghui
a989cb29c3 Merge "Fixing a bad bug when there is no real umbra" 2014-02-03 22:18:54 +00:00
Mårten Kongstad
48d22323ce Runtime resource overlay, iteration 2
Support any number of overlay packages. Support any target package.

UPDATED PACKAGE MATCHING
------------------------
In Runtime resource overlay, iteration 1, only a single overlay package
was considered. Package matching was based on file paths:
/vendor/overlay/system/framework-res.apk corresponded to
/system/framework-res.apk. Introduce a more flexible matching scheme
where any package is an overlay package if its manifest includes

    <overlay targetPackage="com.target.package"/>

For security reasons, an overlay package must fulfill certain criteria
to take effect: see below.

THE IDMAP TOOL AND IDMAP FILES
------------------------------
Idmap files are created by the 'idmap' binary; idmap files must be
present when loading packages. For the Android system, Zygote calls
'idmap' as part of the resource pre-loading. For application packages,
'idmap' is invoked via 'installd' during package installation (similar
to 'dexopt').

UPDATED FLOW
------------
The following is an outline of the start-up sequences for the Android
system and Android apps. Steps marked with '+' are introduced by this
commit.

Zygote initialization
   Initial AssetManager object created
+    idmap --scan creates idmaps for overlays targeting 'android', \
           stores list of overlays in /data/resource-cache/overlays.list
   AssetManager caches framework-res.apk
+  AssetManager caches overlay packages listed in overlays.list

Android boot
   New AssetManager's ResTable acquired
     AssetManager re-uses cached framework-res.apk
+    AssetManager re-uses cached 'android' overlays (if any)

App boot
   ActivityThread prepares AssetManager to load app.apk
+  ActivityThread prepares AssetManager to load app overlays (if any)
   New AssetManager's ResTable acquired as per Android boot

SECURITY
--------
Overlay packages are required to be pre-loaded (in /vendor/overlay).
These packages are trusted by definition. A future iteration of runtime
resource overlay may add support for downloaded overlays, which would
likely require target and overlay signatures match for the overlay to
be trusted.

LOOKUP PRIORITY
---------------
During resource lookup, packages are sequentially queried to provide a
best match, given the constraints of the current configuration. If any
package provide a better match than what has been found so far, it
replaces the previous match. The target package is always queried last.

When loading a package with more than one overlay, the order in which
the overlays are added become significant if several packages overlay
the same resource.

Had downloaded overlays been supported, the install time could have been
used to determine the load order. Regardless, for pre-installed
overlays, the install time is randomly determined by the order in which
the Package Manager locates the packages during initial boot. To support
a well-defined order, pre-installed overlay packages are expected to
define an additional 'priority' attribute in their <overlay> tags:

    <overlay targetPackage="com.target.package" priority="1234"/>

Pre-installed overlays are loaded in order of their priority attributes,
sorted in ascending order.

Assigning the same priority to several overlays targeting the same base
package leads to undefined behaviour. It is the responsibility of the
vendor to avoid this.

The following example shows the ResTable and PackageGroups after loading
an application and two overlays. The resource lookup framework will
query the packages in the order C, B, A.

        +------+------+-     -+------+------+
        | 0x01 |      |  ...  |      | 0x7f |
        +------+------+-     -+------+------+
            |                           |
        "android"                Target package A
                                        |
                       Pre-installed overlay B (priority 1)
                                        |
                       Pre-installed overlay C (priority 2)

Change-Id: If49c963149369b1957f7d2303b3dd27f669ed24e
2014-02-03 11:20:30 +01:00
Mårten Kongstad
65a05fd56d New command line tool 'idmap'
Introduce a new tool 'idmap' to handle generation and verification of
idmap files. The tool is modelled on 'dexopt', and is intended to be
used similarly, notably by 'installd'.
See cmds/idmap/idmap.cpp for further documentation on 'idmap'.

Note: this commit is interdependent on a commit in project build/ to add
'idmap' to PRODUCT_PACKAGES.

Note: the changes to androidfw are only stubs. The actual implementation
will be provided in Runtime resource overlay, iteration 2.

Change-Id: I7131b74ece1e46c8a9c0a31d103e686aa07da2bb
2014-02-03 09:47:16 +01:00
ztenghui
5176c974f1 Fixing a bad bug when there is no real umbra
This fixed most of the issues when the light's Z postion is low.

Change-Id: If49afbf8aa90b1ce32fd628a62ed982a1a473da2
2014-01-31 17:44:07 -08:00
Chris Craik
494db9e4bb Merge "Simplify umbra calculation" 2014-01-31 18:57:25 +00:00
Chris Craik
1d89563ff8 Merge "Add initial hidden outline APIs" 2014-01-31 18:56:41 +00:00
Chris Craik
12d9526dd2 Simplify umbra calculation
Reuse pre-computed values

Change-Id: Ia7725be0ec3ac58af477fcb8de375f5faa05abf4
2014-01-31 10:43:42 -08:00
Narayan Kamath
d49babe50d am 9af95574: am 1cadc07d: Merge "Change ResourceType cookies to int32_t."
* commit '9af955744d4e0d82b61fc99a932b9a5cf28b5df7':
  Change ResourceType cookies to int32_t.
2014-01-31 16:29:19 +00:00
Narayan Kamath
7c4887f66b Change ResourceType cookies to int32_t.
Also change the order of parameters in ResTable constructors
to avoid ambiguity.

(cherry picked from commit 00b314436f4fdfada4bbf1e79ec12e9fa38aeaf1)

Change-Id: I874c5d03c134dc3c331fba423b5280366296287c
2014-01-31 13:47:27 +00:00
Narayan Kamath
acda961446 Merge "Change ResourceType cookies to int32_t." 2014-01-31 13:46:08 +00:00
Chris Craik
a2fe7affd3 Add initial hidden outline APIs
Background drawable outline usage and drawable outline calculation
still to come.

Change-Id: I8c7539f1638f86e1f8eb11f4fe49f705f61d58ba
2014-01-30 16:04:16 -08:00
John Reck
3040f73541 Merge "Fix nano vs. millis" 2014-01-30 23:16:10 +00:00
John Reck
a6260b83da Fix nano vs. millis
Change-Id: I54f752bb7faab5fa66c36252c9f7cf8f5c9939c9
2014-01-29 19:59:16 -08:00
ztenghui
f3560a133e Merge "Merge close vertices in a better way." 2014-01-29 23:45:12 +00:00
Chris Craik
6657a6c539 Update reordering method names, and make 3d reordering API public
IsContainedVolume -> hasIsolatedZVolume conveys that this affects Z
ordering of views

ProjectToContainedBackground -> ProjectBackwards, since it ended up
using its own projection target, separate from the 3d volume bit

Change-Id: Ia2cde838cc4da134366fe6ff623290fbd65e50c3
2014-01-29 13:55:39 -08:00
Chris Craik
967c7fb2af Merge "Fix projection offset caching" 2014-01-29 21:20:36 +00:00
Chris Craik
d04a6b15f7 Fix projection offset caching
Because the caching of projection matrix didn't account for changes in
the offset flag, the flag could be ignored. Now we use both to verify
that the cached matrix can be used.

Change-Id: I193b94eaf0b98f046a6484f0866c3d25048653fd
2014-01-29 13:04:33 -08:00
ztenghui
f5ca8b4cb1 Merge close vertices in a better way.
And add more verification code for testing purpose.

Change-Id: I5bc4f69e6582c02fd03106af9a98abd05a6755b7
2014-01-29 09:04:04 -08:00
Chris Craik
5e1814e2eb Merge "Remove logging of DisplayList staleness" 2014-01-28 23:18:05 +00:00
Narayan Kamath
00b314436f Change ResourceType cookies to int32_t.
Also change the order of parameters in ResTable constructors
to avoid ambiguity.

Change-Id: If7bfa1f640dddca39b9f26a3ce84081fa7b6e6e3
2014-01-28 16:27:52 +00:00
John Reck
e742799cae Merge "Native-side proxy" 2014-01-28 00:45:44 +00:00
John Reck
4f02bf4eef Native-side proxy
Remove RemoteGLRenderer
 Remove reflection-based control

Change-Id: If17c2bbb61c7141986d88c4763def77ed1074985
2014-01-27 16:40:39 -08:00
Chris Craik
db7516e3bd Merge "Use path outlines to define shadow shapes" 2014-01-27 22:30:52 +00:00