2565 Commits

Author SHA1 Message Date
Romain Guy
c46d07a29e Merge all shapes/paths caches to PathCache
This change will greatly simplify the multi-threading of all
shape types.

This change also uses PathTessellator to render convex paths.

Change-Id: I4e65bc95c9d24ecae2183b72204de5c2dfb6ada4
2013-03-18 18:32:17 -07:00
Dianne Hackborn
468bb47d8f am 0964bb20: am 338b1884: Merge "Improve/flesh-out shared library version check." into jb-mr2-dev
* commit '0964bb20f4798c9b25334dccbf2c5a14b33e6564':
  Improve/flesh-out shared library version check.
2013-03-18 18:49:59 +00:00
Dianne Hackborn
338b188444 Merge "Improve/flesh-out shared library version check." into jb-mr2-dev 2013-03-18 18:44:52 +00:00
Fabrice Di Meglio
f72b5c920a am cf60cc9a: am 261f82ca: Merge "Revert "Clean Paint.mBidiFlags as it is no longer used"" into jb-mr2-dev
* commit 'cf60cc9adedf032c6c97cd2cbb9ff211deaaf3ae':
  Revert "Clean Paint.mBidiFlags as it is no longer used"
2013-03-15 20:39:31 +00:00
Dianne Hackborn
ce5abb0a55 Improve/flesh-out shared library version check.
Change-Id: I3d6eb19c8aeaae07a6d17de81ac707c7741608fb
2013-03-15 11:37:01 -07:00
Fabrice Di Meglio
da12f389eb Revert "Clean Paint.mBidiFlags as it is no longer used"
This reverts commit 6d9fe5bd22b531bfce69b146254a4791c76acddc.
2013-03-15 11:26:56 -07:00
Guang Zhu
6e79c824dd am 558030ee: am 555fddb0: Merge "change how app launch is tested" into jb-mr2-dev
* commit '558030ee12d1688b892079270a65dc1744040938':
  change how app launch is tested
2013-03-14 17:57:59 +00:00
Guang Zhu
32abd66ebd change how app launch is tested
new approach:
  * for each app
    * initial launch
    * sleep 7.5s
    * do 10 iterations: launch app with force stop + sleep in between
    * report average of 10 launches

Change-Id: I9e68975325aa83af35620d727823f5c072aac488
2013-03-13 23:24:31 -07:00
Dianne Hackborn
dc37c5f2e3 am 0c42b580: am 53149acf: Merge "Implement limited shared libraries in apks." into jb-mr2-dev
* commit '0c42b58041dc0ede9865335fa48637fb6b677cd3':
  Implement limited shared libraries in apks.
2013-03-12 23:10:38 +00:00
Dianne Hackborn
53149acf7b Merge "Implement limited shared libraries in apks." into jb-mr2-dev 2013-03-12 23:03:59 +00:00
Romain Guy
ed4750b3e7 am daafaff8: am baea5269: Merge "Add TaskManager API" into jb-mr2-dev
* commit 'daafaff83965acbda157669e7c48a2caa55d37bc':
  Add TaskManager API
2013-03-12 22:19:00 +00:00
Romain Guy
5dc7fa7096 Add TaskManager API
This API can be used to run arbitrary tasks on a pool of worker
threads. The number of threads is calculated based on the number
of CPU cores available.

The API is made of 3 classes:

TaskManager
      Creates and manages the worker threads.

Task
      Describes the work to be done and the type of the output.
      A task contains a future used to wait for the worker thread
      to be done computing the result of the task.

TaskProcessor
      The processor dispatches tasks to the TaskManager and is
      responsible for performing the computation required by
      each task. A processor will only be asked to process tasks
      sent to the manager through the processor.

A typical use case:

class MyTask: Task<MyType>

class MyProcessor: TaskProcessor<MyType>

TaskManager m = new TaskManager();
MyProcessor p = new MyProcessor(m);
MyTask t = new MyTask();
p.add(t);

// Waits until the result is available
MyType result = t->getResult();

Change-Id: I1fe845ba4c49bb0e1b0627ab147f9a861c8e0749
2013-03-12 15:06:42 -07:00
Dianne Hackborn
c895be7bc6 Implement limited shared libraries in apks.
You can now declare shared libraries in apks that are
on the system image.  This is like the existing mechanism
of using raw jar files as shared libraries, but since they
are contained in an apk the library can actually be updated
from the Play Store.  And this even (mostly) works.

There are some deliberate limitations on this feature.  A
new shared library *must* be declared by an apk on the system
image.  Installing an update to a system image apk does not
allow you to add new shared libraries; they must be defined
by everything on the base system image.  This allows us to
get rid of a lot of ugly edge cases (shared libraries that were
there disappearing after an update is uninstalled for example)
and give some brakes on apps that happen to be pre-installed
on devices from being able to throw in new shared libraries
after the fact.

In working on this, I ran into a recently introduced bug where
uninstalling updated to system apps would fail.  This was done
to allow for the new restricted users that don't have all
system apps, but conflicts with the existing semantics for
uninstalling system apps.  To fix this I added a new uninstall
flag that lets you switch on the new mode if desired.

Also to implement the desired logic for limitations on declaring
new shared libraries in app updates, I needed to slightly tweak
the initial boot to keep the Package object for hidden system
packages associated with their PackageSetting, so we can look at
it to determine which shared libraries are allowed.  I think
this is probably more right than it was before -- we already
need to parse the package anyway, so we have it, and when you
install an update to a system app we are in this same state
until you reboot anyway.

And having this fixed also allowed me to fix another bug where
we wouldn't grant a new permission to an updated app if its
system image version is updated to request the permission but
its version is still older than whatever is currently installed
as an update.  So that's good.

Also add new sample code showing the implementation of an apk
shared library and a client app using it.

Change-Id: I8ccca8f3c3bffd036c5968e22bd7f8a73e69be22
2013-03-12 12:51:38 -07:00
Stephen Hines
ddede5b1a1 am 968a63ea: am 9f6421a3: Merge "Update RSTest_v14 for stride changes." into jb-mr2-dev
* commit '968a63ea133982e3acd1ba79ecd61e9e245eaa43':
  Update RSTest_v14 for stride changes.
2013-03-12 03:34:42 +00:00
Stephen Hines
9f6421a365 Merge "Update RSTest_v14 for stride changes." into jb-mr2-dev 2013-03-12 03:27:42 +00:00
Romain Guy
c717bbe7a9 am 342afc2a: am 2a2ead93: Merge "Precache paths from a worker thread" into jb-mr2-dev
* commit '342afc2a4cc69bf8a54ac31482ef2cb08bafabcd':
  Precache paths from a worker thread
2013-03-12 01:50:52 +00:00
Romain Guy
2a2ead93a9 Merge "Precache paths from a worker thread" into jb-mr2-dev 2013-03-12 01:43:20 +00:00
Romain Guy
ca89e2a687 Precache paths from a worker thread
Change-Id: I3e7b53d67e0e03e403beaf55c39350ead7f1e309
2013-03-11 17:05:28 -07:00
Jason Sams
29234ab3ad am e06b7696: am b5afb837: Merge "Handle onPause in ImageProcessing." into jb-mr2-dev
* commit 'e06b7696ccf6f5bd8fb785637d2eb58db4d8ee8f':
  Handle onPause in ImageProcessing.
2013-03-09 01:14:34 +00:00
Jason Sams
990a08fcb4 Handle onPause in ImageProcessing.
Change-Id: I538ce0ac7b9da2f4ec6cd7bd35aa84fd710e063f
2013-03-08 16:35:29 -08:00
Jason Sams
7cdda146ac am 694f9ff4: am e3982a86: Merge "Update IP_JB to Mr1" into jb-mr2-dev
* commit '694f9ff404f1ae4a48e0edd02a5953550630b086':
  Update IP_JB to Mr1
2013-03-08 23:20:51 +00:00
Jason Sams
d9f7cc34e4 am 8240587f: am 2042cc40: Merge "Update IP and IP2" into jb-mr2-dev
* commit '8240587f7d7e561efbf905ceff8ec929cd6de500':
  Update IP and IP2
2013-03-08 22:50:33 +00:00
Jason Sams
f73e7fdd6d Update IP_JB to Mr1
Change-Id: I007b5048a187c90bc19c38e7155d0d5adcc34144
2013-03-08 14:31:15 -08:00
Jason Sams
e699147122 Update IP and IP2
Change-Id: I5e81ae906a36fc1f6dc8de872398c6aa580238f1
2013-03-08 14:00:27 -08:00
Stephen Hines
8b571d8577 Update RSTest_v14 for stride changes.
Change-Id: I8c5d392ba62050781f27c3a1745dbd1a2321b556
2013-03-07 17:04:27 -08:00
Romain Guy
54fed868c8 am f2f3988e: am e7d32b19: Merge "Take text scale/skew into account only when rendering into a layer" into jb-mr2-dev
* commit 'f2f3988ecba293e88a661bfe0a5bbd76de79224a':
  Take text scale/skew into account only when rendering into a layer
2013-03-04 21:55:43 +00:00
Romain Guy
19d4dd8599 Take text scale/skew into account only when rendering into a layer
3D rotations can undo scale/skew transforms; since FreeType only accepts
2x2 matrices we can end up generating very large glyphs that are drawn
at a 1:1 scale on screen. For instance, if the current transform has a
scale of 2000 set on both X and Y axis and a perspective Z factor set to
Z, the actual scale factor on screen ends up being 1. We would however
generate glyphs with a scale factor of 2000 causing the font renderer
to blow up.

Change-Id: Ia5c3618d36644e817825cb9c89e2f53aece2074e
2013-03-04 13:48:43 -08:00
Romain Guy
d06cfccf84 am 1361dff5: Merge "Support 3D rotations when drawing text" into jb-mr2-dev
* commit '1361dff5eb54b9b02b4d1a2d3e2ed3afd216d79d':
  Support 3D rotations when drawing text
2013-03-01 00:11:19 +00:00
Romain Guy
1361dff5eb Merge "Support 3D rotations when drawing text" into jb-mr2-dev 2013-03-01 00:05:51 +00:00
Romain Guy
a4adcf0239 Support 3D rotations when drawing text
If a perspective transform is set on the Canvas, drawText() should
not attempt to rasterize glyphs in screen space. This change uses
the old behavior instead (i.e. rasterize the glyphs at the native
font size and apply the transform on the resulting mesh.)

This change also adds an optimization: empty glyphs (spaces) do
not generate vertices anymore. This saves a lot of vertices in text
heavy applications such as Gmail.

Change-Id: Ib531384163f5165b5785501612a7b1474f3ff599
2013-02-28 16:04:48 -08:00
Dianne Hackborn
1010a6ec67 am d6a3e485: Merge "Unify normal and overlay action bar layouts." into jb-mr2-dev
* commit 'd6a3e485b58e23808b44b8f2374e67e891cfae05':
  Unify normal and overlay action bar layouts.
2013-02-28 22:39:03 +00:00
Romain Guy
489bc9d353 am aaa46155: Merge "Reorganize OpenGL renderer tests" into jb-mr2-dev
* commit 'aaa46155ec80f02b37ec858408d7dabbf9bc289a':
  Reorganize OpenGL renderer tests
2013-02-28 22:38:53 +00:00
Romain Guy
861f4c3455 am 19886f8b: Merge "Properly scale text" into jb-mr2-dev
* commit '19886f8b5109218191908d2ce5faf0293f85cf31':
  Properly scale text
2013-02-28 22:37:40 +00:00
Dianne Hackborn
d6a3e485b5 Merge "Unify normal and overlay action bar layouts." into jb-mr2-dev 2013-02-28 22:14:48 +00:00
Romain Guy
29ce8c98ff Reorganize OpenGL renderer tests
The new UI works just like ApiDemos. The label of the activities
declared in the manifest defines where they go in the UI.

For instance Draw/Circles will create an entry called Draw in the
first screen of the test app. Click the "Draw" item will launch
a new activity containing an item called "Circles".

Change-Id: I98a4442ee3d992598af440b2078ae1925214da20
2013-02-28 13:08:34 -08:00
Dianne Hackborn
df7221ced3 Unify normal and overlay action bar layouts.
Switch the action bar to always use the overlay layout, and
make it smarter to do the right thing depending on whether the
action bar is in overlay mode or not.

This allows apps to use the system UI magic flags without
having to worry about whether the action bar is configured
in overlay mode or note -- just select a stable layout and it
will automatically go into overlay mode.

In the future this should also allow us to simplify the action
bar code, since it is all sitting on one common implementation.
For example, much of the logic in ActionBarImpl can be moved
to the root action bar layout, and that layout can be optimized
to do custom layout with all of the known elements it has.

Also fixed a little bug in the performance tests.

Change-Id: Iec0c0c0699754f0d1ce37402d786b4966e052a56
2013-02-27 18:27:42 -08:00
Romain Guy
c74f45a334 Properly scale text
This change does not apply to drawPosText() and drawTextOnPath() yet.

Prior to this change, glyphs were always rasterized based on the
font size specified in the paint. All transforms were then applied
on the resulting texture. This creates rather ugly results when
text is scaled and/or rotated.

With this change, the font renderer will apply the current transform
matrix to the glyph before they are rasterized. This generates much
better looking results.

Change-Id: I0141b6ff18db35e1213e7a3ab9db1ecaf03d7a9c
2013-02-27 15:49:57 -08:00
Craig Mautner
2ad920759b Revert ActivityManager changes for tasks. DO NOT MERGE
Keeping all activity=>task changes in master and removing them
from jb-mr2.

Revert "Update histories simultaneously."
Revert "Add null check to setAppGroupId."
Revert "Fix crashing bug in validator."
Revert "Switch topRunning* and moveTaskTo*"
Revert "Begin switch over to task based history."
Revert "Reset and reuse Iterators and don't new() one."
Revert "Remove AppWindowToken lists."
Revert "Fix build."
Revert "Remove unused App methods."
Revert "Stop using AppToken movement and start using Task."
Revert "Replace access to mAppTokens with AppTokenIterator"
Revert "Refactor setAppOpVisibility implementation."
Revert "Add AppWindowTokens to TaskList."
Revert "Make ActivityStack.mHistory private."
Revert "Migrate AppWindowToken lists into DisplayContent."

Change-Id: I5722c9a4956dccb52864207e2967690bc58e4ebb
2013-02-25 17:07:39 -08:00
Jason Sams
fc0fd4f52c Remove surfaceTextureOpaque test.
This test was for an API we decided not to
expose publically and have removed.

Change-Id: Ic2b8449b286c8d1fb1432ccc2db47f96ad43cc4b
2013-02-22 13:53:44 -08:00
Jason Sams
72226e0543 Implement USAGE_IO_INPUT
Change-Id: Id5b9e3d0a17e4df15eec36d542fde6dc626138b2
2013-02-22 12:45:54 -08:00
Jason Sams
840b506970 Merge "Support typed YUV allocations." 2013-02-16 02:54:22 +00:00
Jason Sams
dd6c8b34f1 Support typed YUV allocations.
Change-Id: I56e7a318dc979f0b7454fcfa5773ea6d95bbaeaa
2013-02-15 17:27:24 -08:00
Chris Craik
62a42c13a6 Adjust offset for non-AA line drawing
bug:8114304

The original .375 was chosen to make GL_LINES align with Skia drawing.
The new value of .065 is chosen to be as small as possible to make
triangle-based lines align with Skia, while keeping lines drawn on
integer coordinates unambiguous as to which column/row they draw on.

Also adds more lines in CanvasCompare test to highlight the difference

Change-Id: If578684f2db320682219c3caa625cf79bc62d88f
2013-02-15 14:53:12 -08:00
Romain Guy
10c0aa246d Merge "Implement support for drawBitmapMesh's colors array" 2013-02-14 18:51:28 +00:00
Craig Mautner
ee006a14b2 Fix build.
Change-Id: I6fb00530536e5203d89805141792289ed7c1d8e3
2013-02-14 10:35:32 -08:00
Romain Guy
ff316ec7a7 Implement support for drawBitmapMesh's colors array
Change-Id: I3d901f6267c2918771ac30ff55c8d80c3ab5b725
2013-02-13 18:39:43 -08:00
Jason Sams
23496bdbba Convert live preview demo to IO_OUTPUT
Change-Id: I01193932a6fcd572841434a59d34eda60d9b8b02

Fix aspect ratio
2013-02-13 16:07:50 -08:00
Jason Sams
0a4b65e079 Merge "Reuse context and allocations across test." 2013-02-13 23:49:10 +00:00
Stephen Hines
1f884ed206 Merge "Add tests for the new clipped kernel Java reflection." 2013-02-13 23:17:54 +00:00
Jason Sams
fb2f5c207a Reuse context and allocations across test.
Change-Id: I9a3498c9095db2c7876bf45d6bd5c75deded8dd8
2013-02-13 12:11:53 -08:00