History log of /frameworks/base/libs/hwui/Android.mk
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
d4fe4d3b30aaefcaaae6a6d1b8dc4bf59e034768 10-Jun-2016 Chris Craik <ccraik@google.com> Fix framebuffer incomplete errors


Primarily fixes case where 0 dimensioned layers could be
created/updated. Additionally, adds more logging in incomplete
framebuffer cases, if they still occur.

Change-Id: Ib90dbbafd6905aca3c8f46e64064e13a308f713d
37413289478a965336239c731ebfea37ac4dde28 13-May-2016 Chris Craik <ccraik@google.com> Fix hw layer overdraw/update visualization

Fixes: 28748255

Change-Id: I83b531cdf5e4407fd17edd72d96e6189924926fa
f3754a84289680782b2c7caac30fda18207a5c23 20-Apr-2016 Chris Craik <ccraik@google.com> Fix shadow radius too large for RS


Change-Id: I3d962ace75be7bbf49f5a95320390d8f5a9bf951
756619da203bcdb9db19238ba6712c5bfb062009 15-Apr-2016 John Reck <jreck@google.com> Turn off HWUI_ENABLE_OPENGL_VALIDATION

Fixes: 28212865

Disable glGetError() checking after every gl call

Change-Id: I849934172a56150122a8d0114b0307515d988fe7
10dd0585c11dcedb5a271d54e645594f1d215d5c 01-Apr-2016 John Reck <jreck@google.com> Framework-side of SurfaceView#getBitmap

Bug: 27708453

Change-Id: Ie6fd7eca522d3e6549d8af587c975fd7e6053649
04d46eb69fb4f4c4c332c36c6ae845da3b2ae848 07-Apr-2016 Chris Craik <ccraik@google.com> Support replace op in new pipeline


Change-Id: Ie48d2da30f5e9d9abe88a5cd973dfb26e38abf63
44b49f070aafe8ad44efae87341121cce49ff11c 25-Mar-2016 John Reck <jreck@google.com> Add a callback for rendernode parentcount=0

Bug: 27709981
Fixes: 22565656

Change-Id: I1cb4461baf9069dc4e7ca6de10d5862578c107f4
2c0f93798b2c435307bfb1dfe194a6203e6e6ee5 28-Mar-2016 John Reck <jreck@google.com> Add a font microbench

Also remove a low-signal high-frequency trace mark

Fixes: 27894187

Change-Id: I090122a0db8e455eaa9dbce2b0f5b6778a218188
35934cccabf72879603ef37222da2195445f027e 23-Mar-2016 Derek Sollenberger <djsollen@google.com> Compute text bounds on a per glyph basis when drawing from an SkPicture.

bug: 27665826
Change-Id: I031c08a348b2488c85f74e708ee90019b24d707f
bad99183916ba2bac6659efc8a28273e344ba511 17-Mar-2016 sergeyv <sergeyv@google.com> Clean up and rename TypefaceImpl

Change-Id: I77e8a627163e040a5c25865054a8a936052af367
dccca44ffda4836b56a21da95a046c9708ffd49c 21-Mar-2016 sergeyv <sergeyv@google.com> Reland: Move text logic from jni to hwui level

Initial CL: https://googleplex-android-review.git.corp.google.com/#/c/886854/

Change-Id: I9dfd85fe1d2a2c44f4360c8a29fd58d80e6f31c8
afbd0f1fef46ef0ddf633dfde0de724db3da1405 21-Mar-2016 Sergei Vasilinetc <sergeyv@google.com> Revert "Move text logic from jni to hwui level"

This reverts commit a7f6bba1a3565c19715e878dfe7f0e01022944ff.

Change-Id: If4f36f87a85411b6128fd92d391313803ccaf9dd
a7f6bba1a3565c19715e878dfe7f0e01022944ff 16-Mar-2016 sergeyv <sergeyv@google.com> Move text logic from jni to hwui level

Change-Id: I2d8c9c9544afcb5ce1784f732aed3e54e0eda372
02806288d1c56475413888a934c796e6e4eb11c5 12-Mar-2016 Chris Craik <ccraik@google.com> Fix flickering when layers resize in-place

Change-Id: Ia11c93ebc1097f3735071204b6f14ca079bb9fc4
67bd3b52563335c1773ca2b8cadcd52137ef8ea9 12-Mar-2016 Sergei Vasilinetc <sergeyv@google.com> Merge "Add GlopBuilder test for snapping" into nyc-dev
f42bf3e2573bccb01babec448f925e9395bf224c 11-Mar-2016 sergeyv <sergeyv@google.com> Add GlopBuilder test for snapping

Change-Id: I7aa5cddef6f0a0e78f3ade67b0446c1f76cf3d13
c17232598b0455af288955a70fcbdb699954af4c 10-Mar-2016 Chris Craik <ccraik@google.com> Merge "Add initial BakedOpDispatcher tests" into nyc-dev
419a1e7ef53468e494d21c66ea7f63c0c522d208 09-Mar-2016 Chris Craik <ccraik@google.com> Add initial BakedOpDispatcher tests


Change-Id: If8ba33732d09b335171f87d5efc419641bafa126
77bf1bb928a448ca44a03026b2c8c1539691b70c 09-Mar-2016 John Reck <jreck@google.com> Merge "Switch hwui to google-benchmark" into nyc-dev
dc87c52cd5645dd87380114462211574b63e6353 29-Feb-2016 John Reck <jreck@google.com> Add leak-checking to unit tests

Initial pass at leak-detection on the unit
tests. Due to quirks in jemalloc we need
to run the leak check on both the main thread
and the RT thread to get decent leak coverage.

Change-Id: I0dce754aef5593f1ef5c3bed86e1168437a34b74
0418afa362630e69bd853121770b115750ee46a4 07-Mar-2016 John Reck <jreck@google.com> Switch hwui to google-benchmark

Change-Id: Ia2b24b8288cb8dc4f9176f4132a24ddcae9b6edd
485e41d51067f9cd1f7de245533f1288e3a3d822 04-Mar-2016 Chris Craik <ccraik@google.com> Merge "Revert "Disable HWUI_NEW_OPS"" into nyc-dev
f0a76088f8132ca3ea10241c55c5e81aebe072c2 03-Mar-2016 Chris Craik <ccraik@google.com> Revert "Disable HWUI_NEW_OPS"


This reverts commit 0bed032eb2d19c339ecaa89a6e3159c0e2ac98de.

Change-Id: I4d569a11bb2b8db73b9984c50941c78ec5c91fe9
b878a99f235b806b0558d8c141fe4a6984c42f25 29-Feb-2016 Chris Craik <ccraik@google.com> Merge "Fix matrix mapping of negative rects" into nyc-dev
261725fdb2962271c222a049fcdf57bbdc8363c7 29-Feb-2016 Chris Craik <ccraik@google.com> Fix matrix mapping of negative rects


Also rejects ops with empty clip at record time, and short circuits clip
intersection, when one is empty.

Change-Id: I842612da14ad8fd9f1ba5e9e4fd027ba4e08d365
0bed032eb2d19c339ecaa89a6e3159c0e2ac98de 26-Feb-2016 John Reck <jreck@google.com> Disable HWUI_NEW_OPS

Bug: 27365711

Change-Id: Ife7ecc7c688738df4028f30847a2ff914e433b99
91eff22b5d7f8fe551bae01331948858ce932a96 22-Feb-2016 Chris Craik <ccraik@google.com> Support op dumping in new pipeline


Change-Id: I266e420a2f18ba9ad62942b8a0de295dfa3a2a88
6cc3a25db5b5479f3896afa18615d2476fc3a569 19-Feb-2016 John Reck <jreck@google.com> Temporarily enable fine-grained error checking

Bug: 27186019

Quick testing shows negligable performance impact, so turn
this on temporarily to track down some GL errors

Change-Id: I5700075d5640af0951d832acfde3179ec7511912
11f02d7e522ec8742f7ef533c252e04e24b93f6b 13-Feb-2016 Andres Morales <anmorales@google.com> allow for slow FrameMetricsListeners

A slow listener could cause a race in the NotifyHandler
where the single reference to the buffer to send would get
updated when it shouldn't have been.

Switch to a queue of available buffers to prevent this race.

Also, stop setting and clearing the observer reference and instead
incStrong/decStrong to mark temporary strong ownership without
colliding with other owners in flight.

Bug: 27097094
Change-Id: Iee647bfae8b80019b6d8290179eed3973230901f
991da31d4073396768f215c5c3e77e54368da75f 11-Feb-2016 Derek Sollenberger <djsollen@google.com> Update HWUI makefiles to support use by other targets (e.g. Skia)

(1) Update both static and shared lib to export libhwui headers
(2) Work around problem in current make system where a static
libraries dependencies are not transitively included by moving
those dependencies into a file that can be included by targets
using libhwui_static.
(3) Do not expose protobuf headers to clients outside of HWUI

Change-Id: I08470c02a83ae64116081eff0c2050878990c6ed
b251a2f51e636d036598ad27473b9cc55fdac1d7 08-Feb-2016 Chris Craik <ccraik@google.com> Revert "Revert "TaskManager bench""

This reverts commit 9640477e3cc075b0f303e817a3ebcc72d7bc878b.

Change-Id: I3aa8f2830b43b9c7b211c5792a311d0bc698c51a
1697c3daed0be1390b2707110e7e8718d55f1afd 06-Feb-2016 Chris Craik <ccraik@google.com> Use clang to build microbench

Change-Id: I7ae8049fe05e99fadf905abd18553cb28596ba7f
0b69467d424dcc4e1dcf29bcd96b239a13393591 05-Feb-2016 John Reck <jreck@google.com> Merge "Add a debug assert to track down infinite loop"
83c9b5bf638d75a3395f57c2c57c31c959632f9d 05-Feb-2016 John Reck <jreck@google.com> Add a debug assert to track down infinite loop

Bug: 26980851
Change-Id: I326983ab367782048311b6cf06d800f72837e38e
9640477e3cc075b0f303e817a3ebcc72d7bc878b 05-Feb-2016 Daniel Chapin <chapin@google.com> Revert "TaskManager bench"

This reverts commit 02db03ca0584371504fd29ced77c00d601cb0971.

Change-Id: I86bdf5e6774e99f9add59a657bfc50d45ebfda1d
3ff6b15d47d89d92dcfa0d420ff730f70ac50f2a 05-Feb-2016 Chris Craik <ccraik@google.com> Merge "TaskManager bench"
766431aa57c16ece8842287a92b2e7208e3b8ac3 04-Feb-2016 Doris Liu <tianliu@google.com> Revert "Revert "VectorDrawable native rendering - Step 4 of MANY""

This reverts commit 5a11e8d0ba21624025b89ac63bbd18befa55be0e.

Change-Id: I7a48b59c4f930dad65ddc8590c25a12636244ea2
02db03ca0584371504fd29ced77c00d601cb0971 04-Feb-2016 Chris Craik <ccraik@google.com> TaskManager bench


Change-Id: Ibda0cd2e5e64331a4367d4985d6acfd6f3baeda1
5a11e8d0ba21624025b89ac63bbd18befa55be0e 04-Feb-2016 Doris Liu <tianliu@google.com> Revert "VectorDrawable native rendering - Step 4 of MANY"

b/26949340 and b/26975469, b/26975079 as well

This reverts commit f276acd98457bcaabc9e79a17a736b3b484f005e.

Change-Id: I4b55177daf0d289bc03604c71fd4bf579f65073a
3fd03b718d336ddb492125a07df62d3050d08bd4 04-Feb-2016 Chris Craik <ccraik@google.com> Merge "Add SkiaBehaviorTests"
07d8d59e21125fe7cba09b10e3dd7ecb9c49e8d8 04-Feb-2016 Chris Craik <ccraik@google.com> Add SkiaBehaviorTests

Change-Id: Ie2983f7a0c9e8bdd8c8de507d70ecf3aefdd9425
a72d52bbed043b5149c98a1697bf7022e00050b3 03-Feb-2016 Doris Liu <tianliu@google.com> Merge "VectorDrawable native rendering - Step 4 of MANY"
f276acd98457bcaabc9e79a17a736b3b484f005e 07-Jan-2016 Doris Liu <tianliu@google.com> VectorDrawable native rendering - Step 4 of MANY

This CL runs VectorDrawable animation on RenderThread. The changes in this CL
- Convert all the animators in AnimatorSet for AVD into a set of RenderNodeAnimators.
- Hook up the new animators with RenderThread
- Add drawOp in RecordingCanvas for drawing VD so that during the animation
on RenderThread, all the property changes on VD can be reflected on the screen.

- Implement reverse and reset for AVD.

Change-Id: I2df1d754f2db0ad098d9c15dde4bb2bdfafc2315
c3127a78b996a540cd002e5a87861e8a2adeb336 30-Jan-2016 John Reck <jreck@google.com> Fix TextDropShadowCache infinite loop

Bug: 26862239

Switch TextDropCacheShadow to use the tracked objectSize()
instead of the optional bitmapSize. A mismatch here
results in ::get() infinite looping trying to free space in
the cache since the LRU removal callback would always
decrement mSize by 0 since bitmapSize was not being set.

Also prevent the infinite loop in the future by crashing if
this scenario happens again.

Change-Id: Ib4e9fbe1c8327af2335ad650fd694a1627d9824f
c52ac0b9e2dc9d060f21498ac59404ec7fd1e846 26-Jan-2016 John Reck <jreck@google.com> Merge "Add fine-grained debug layer"
975591a7af883d866d86ab819e164c6004694744 23-Jan-2016 John Reck <jreck@google.com> Add fine-grained debug layer

Full GLES error checking layer via -include
trickery. Change DEBUG_OPENGL to a level system.

HIGH = every GL call is error checked
MODERATE = checkpointing at interesting spots
LOW = only asserts there are no errors at the end of a frame
or when the FBO changes

Change-Id: Ibe81aae93d942059c4ddf1cbb11c828b7ce4c10b
06f5bc70a667a02b14e31d3f53f91d3661e30666 16-Dec-2015 Andres Morales <anmorales@google.com> expose hwui frame stats through FrameStatsObserver

Change-Id: I88884bafc8e2f6d7f67a36d3609490e83cf8afd5
dcdbba7c95c8495cf5b25b020b33af186e127bf2 19-Jan-2016 John Reck <jreck@google.com> Re-enable new pipeline

Change-Id: I0d0b2a109a3756d404e4e244348a863a9afa3f9b
1b94f9b77cb1a241b42f894572d819cc1153932f 19-Jan-2016 John Reck <jreck@google.com> Revert "Switch to new rendering pipeline"

This reverts commit 3daf4d3272f2cc6ce3b5a572b9d4dcce1654086d.

Temporarily disable due to high rate of crashes from endLayer check

Bug: 26609444
Change-Id: I7583a77bf5cc1e722fa4042db0542f80cd978760
7db5ffb7dbd30202468459e2ef4426e91d4fcbb3 15-Jan-2016 John Reck <jreck@google.com> Revert "Revert "Fix leak in unclipped save layer""

This reverts commit a6fc36d4cd7f27147fd304960acdd1d2f47fc1c6.

Change-Id: I6b96afe4a32dc894d5b17cfb870b45063257aed2
a6fc36d4cd7f27147fd304960acdd1d2f47fc1c6 15-Jan-2016 Daniel Chapin <chapin@google.com> Revert "Fix leak in unclipped save layer"

This reverts commit 8e068d5fd38dd103a122215fb6d185135182edf3.

Change-Id: Icd8ad5a2450db34aacecf748d6103df9faaa4c81
8e068d5fd38dd103a122215fb6d185135182edf3 15-Jan-2016 John Reck <jreck@google.com> Fix leak in unclipped save layer

Change-Id: I31f146af2cb6f5cb8dd19bb0feff0ae35b864eba
cbc5bd57f0f528743fce5ec02b0739dc6368311f 14-Jan-2016 John Reck <jreck@google.com> Merge "Track texture memory globally"
e5da4ef971258193cd1e89737a12b95b6ac244bb 14-Jan-2016 John Reck <jreck@google.com> Trap SIGABRT in RenderThread for unit tests

Change-Id: Icc1039543d975497808a8062e9d909537c4a29c9
38e0c32852e3b9d8ca4a9d3791577f52536419cb 10-Nov-2015 John Reck <jreck@google.com> Track texture memory globally

Also mostly consolidates texture creation

Change-Id: Ifea01303afda531dcec99b8fe2a0f64cf2f24420
48cb62018c7d86f1c09935b511dfb8aa1c26ceab 13-Jan-2016 Chris Craik <ccraik@google.com> Fix the build

Change-Id: I11aaa6dabdc3998155ee7f1ee58083bb88f19aad
3daf4d3272f2cc6ce3b5a572b9d4dcce1654086d 13-Jan-2016 Chris Craik <ccraik@google.com> Switch to new rendering pipeline


Change-Id: I3ca94c4b6c556ba6d133e2314ac0307e874651fa
f158b49c888f722194afe5a80539a2b020c130bc 12-Jan-2016 Chris Craik <ccraik@google.com> Rename Reorderers to Builders

Change-Id: I9bb5a2e70055e2f6d14912fbd86ab72ac0d6e20c
5ea1724be4d3b6039818f91fc087e1216c1463d5 11-Jan-2016 Chris Craik <ccraik@google.com> Rename OpReorderer to FrameReorderer

Also separate LayerReorderer into its own files.

Change-Id: Iafb6a156f760f62f831f6288fd0dadf1db25da24
f5baedb000e25497ca6875204dbe559970268543 05-Jan-2016 Chris Craik <ccraik@google.com> Merge "Stencil support in new recorder/reorderer"
e4db79de127cfe961195f52907af8451026eaa20 23-Dec-2015 Chris Craik <ccraik@google.com> Stencil support in new recorder/reorderer


Adds complex (non-rectangular) clipping support, and overdraw
visualization. Doesn't support stencil clipping in layers.

Change-Id: I8d10c7f1d2769ab5756774ca672344cc09901f87
4bbc2931263b232fba61807fca00e127573eff42 02-Dec-2015 Doris Liu <tianliu@google.com> VectorDrawable native rendering - Step 3 of MANY

- Refactored VPathRenderer & VectorDrawableState
- Moved all the VD rendering into native
- Set up hooks for VD's property changes in JNI for animated VD

TODO: JNI calls can be further reduced when we convert the animation
in AVD to use RenderNodeAnimator, in which case animation will be
driven from native and therefore most of the JNI hooks for changing
VD's properties during animation will no longer be needed.

Change-Id: I52021f4d7bea057b83ace54085d870dd45acae0f
e60a52a23686557174dc86b482a914dfd31addae 17-Dec-2015 Chris Craik <ccraik@google.com> Fix build

Change-Id: I1fc72636afc070257526ce1500e96e9b39089640
d2dfd8f128b632ed99418ab2b32949c939a9a369 16-Dec-2015 Chris Craik <ccraik@google.com> Add TextureView support to new renderer/reorderer


Change-Id: I2e4c0bc6b904706132f3f5087ededc9cac9b40fb
27e58b4f54d693ff1db7ab2edb5d47ca296c1278 07-Dec-2015 Chris Craik <ccraik@google.com> Build hwui test scenes as common test code

And start using them in other non-macrobench tests

Change-Id: If155b531f3c89f97491001c06d1996df527b9f85
8160f20b0aca8c6595d4b385d673f59b6bcd16a4 02-Dec-2015 Chris Craik <ccraik@google.com> Reorganize hwui test directories

Now test-only common files reside in tests/common, and each test
executable type (macrobench, microbench, and unit) has a subdir there.

This change means the shared lib no longer has test code in it, and
sets up a means for scenes to be shared between tests.

Change-Id: I37b081f6977300e03fdd961b8e6439fde730605e
9b9eca5cc597a4245bd814f81a993f39c1591c84 25-Nov-2015 Chris Craik <ccraik@google.com> Merge "Support projection in OpReorderer"
8d1f2120fe80b23ab03c7168e3b6b2d13bafe2e7 25-Nov-2015 Chris Craik <ccraik@google.com> Support projection in OpReorderer


Change-Id: Iceb71732dc50957cfb47fa1ba9b8e18e6fc51132
9e7fcfda28fde747ba4e026772007cea77374e16 25-Nov-2015 Chris Craik <ccraik@google.com> Move BakedOpDispatcher to separate file

Change-Id: If7aad6db6b7e54a33eac9b9eddbe8cd844207282
a1717271caac5e8ea3808c331d4141ac01a42134 19-Nov-2015 Chris Craik <ccraik@google.com> Initial text support in new reorderer/renderer

Removes obsolete drawPosText codepath, and unifies text decoration behavior.

Change-Id: I9c563249ab688a3394445a0e7fe1b9d0661f6f7c
16c9d6a92e1b86d448c00c52a1630f3e71e6df76 18-Nov-2015 John Reck <jreck@google.com> Refactor hwuitest

Yank animations out into their own files

Change-Id: Iea522ee032752019c07ff308c3a3993011054308
804618d0863a5d8ad1b08a846bd5319be864a1cb 17-Nov-2015 Doris Liu <tianliu@google.com> VectorDrawable native rendering - Step 2 of MANY

Introduced PathData in Java, which is effectively a thin layer around the
native instance. PathData holds the verbs and points which is being used
in path morphing/interpolation. The verbs and points can be interpreted
into skia path commands, which is now done in native and therefore saves
a handful of JNI calls during path creation.

Removed the old PathDataNode mechanism and changed the PathEvaluator
to use PathData instead.

Also added tests and a microbench. Also ran CTS tests for VectorDrawable
and AnimatedVectorDrawable, and passed all of the existing tests.

Change-Id: Ia166f5172ff031fe18b154327967f911a62caec1
98787e6c9b2c10b1ab7820bdac168686025b924a 13-Nov-2015 Chris Craik <ccraik@google.com> Finish shadow support in new reorderer/renderer

Now passes alphas and light radius, and correctly transforms light
center for layers.

Also fixes begin-frame/layer clears to be damage rect aware.

Change-Id: I3b1415cd7bf1518c510145ebebdb745f494a2542
9fded232a9548a304e0145011df8849fba0dcda7 12-Nov-2015 Chris Craik <ccraik@google.com> Recycle OffscreenBuffers

Change-Id: Ia2e219026f211a5308ecf8209c5f986bb888aadd
f59cb788ba6d06d13b440b2b7d3f9d4480052c2f 10-Nov-2015 Doris Liu <tianliu@google.com> Add microbench for PathParser

Change-Id: I95d6c3153480e3ea56032ffe73707110186fbb0f
30bcf69df9cfae40b621335958656cb0e4afd7d5 04-Nov-2015 Doris Liu <tianliu@google.com> VectorDrawable native rendering - Step 1 of MANY

Implement path parsing from string to skia path in native. The parsing
contains two main stages:
1) Parse string into a list of nodes that contains one operation (such
as move) and a vector of floats as params for that operation.
2) Interpret the operations defined in the nodes into SkPath operations,
and create a skia path

Also provided unit test for parsing a string path into a list of nodes,
and then to a skia path.

Change-Id: I0ce13df5e3bb90987dcdc80fe8b039af175ad2e2
704bed0da7cc75d0c517d425445de70ceb58060b 05-Nov-2015 John Reck <jreck@google.com> add DeviceInfo

This reverts commit 096895550b9d5430d7a001d491566decf4f9791b.

Change-Id: Ib2ed1e96d8f7f88302f5e27fe735687194553104
41925b1ccd4c189bb64ad225804fb639b8fa73e4 05-Nov-2015 John Reck <jreck@google.com> Merge "Revert "add DeviceInfo""
096895550b9d5430d7a001d491566decf4f9791b 05-Nov-2015 John Reck <jreck@google.com> Revert "add DeviceInfo"

This reverts commit b2442896e3a226c7ebe9d47fa80b257e98a6a34d.

Change-Id: I50f6555451f71067505245333c8e558b5e3b2b3b
5655c7cdd36a27674f5a286e545cceade54fef69 04-Nov-2015 John Reck <jreck@google.com> Merge "add DeviceInfo"
b2442896e3a226c7ebe9d47fa80b257e98a6a34d 04-Nov-2015 John Reck <jreck@google.com> add DeviceInfo

Change-Id: I4c122278a7e88b6f47c4dd3c5fc553df7d3c900d
967bb181c1ee4e4779e457a1f765b3bdc7f0a230 04-Nov-2015 John Reck <jreck@google.com> Merge "Fix GCC build"
c90ed759cf06072f2aecc57dc82d7be8cbfd6d73 04-Nov-2015 John Reck <jreck@google.com> Fix GCC build

Change-Id: I990993b8b751bdaf41ce4db1aa7e28823f296777
0b7e8245db728d127ada698be63d78b33fc6e4da 29-Oct-2015 Chris Craik <ccraik@google.com> Initial HW layer support in new reorderer/renderer

Shares vast majority of clipped savelayer code, with only minor
differences in lifecycle.

Doesn't yet handle fill region, resize, or window transform.

Change-Id: Iabdd71811590d2b937eb11e1b01ce556ade54a5a
76ace115f7870fed9899a9db7d3852e21b5fb258 29-Oct-2015 Chris Craik <ccraik@google.com> Add FatVector

FatVector uses an inlined allocation to avoid malloc costs for small
vectors, especially those which are constructed/destructed frequently.

Change-Id: I9809dfd1255cfe98b4ce2b1124ca0fd6ca33dfe0
550780745fa28ae9a87d02331841ca5ce4f9c763 31-Jul-2015 Leon Scroggins III <scroggo@google.com> Merge six commits from master-skia to master

Include external/skia/include/private
use SrcConstraint for drawBitmapRect
clean up to allow removal of flags for SCALAR_DIV and IMAGEINFO_FIELDS
don't call DEPRECATED getDevice()
update to newer API for drawBitmapRect
asABitmap is deprecated, used isABitmap

Change-Id: I519f54f97321a7a365ea81a3b78cb03b9bdca021
previous-Change-Id: I12208855a95948897077b1c1549eb35416cc801e
previous-Change-Id: I5044f0f61315fe48c60d7af5e261a7d0ed574f56
previous-Change-Id: Ic34a3ba77b3f9e091fa7aaba75018a307abacdab
previous-Change-Id: I79f8dd779920565d1204f7fe67b3286b1bbf4e9b
previous-Change-Id: Ic04d1f8274f6a862ea00f8d241363cf31f5ec1ec
previous-Change-Id: I9e4ae257a1976c74302b6a73f17405174ae58cec
7bd3721bc61a011310267a29acfae264a0a09bde 23-Oct-2015 John Reck <jreck@google.com> Merge "Add ShadowBench"
64bb63f0eeee73df64b22b9d1edd1962b8b9ba36 23-Oct-2015 Tom Hudson <tomhudson@google.com> Merge "Remove direct dependency of external/skia on frameworks/native"
b2f5bd2d6043132d8c1d0f3e2e7e454c2693f499 15-Oct-2015 Tom Hudson <tomhudson@google.com> Remove direct dependency of external/skia on frameworks/native

Moves all code that needs to link with libgui or libui into
frameworks/native/hwui/utils/TestWindowContext. This allows us to
run Skia automated tests against a HWUI backend to watch for
performance or correctness regressions on Android.

TEST=After this change, we can remove libui and frameworks/native/include
from external/skia/Android.mk

Change-Id: I6f02a5ff98101e448606a1e892686e2c648b6c8a
82f5e0c5cd0fcbacd8094b7963a50a2e30e0846f 23-Oct-2015 John Reck <jreck@google.com> Add ShadowBench

Drop -O3 & -ffast-math as they don't
help on clang and just hit SIGBUS issues

Change-Id: I8e9a8f4cd9ddf136103a6b7f69902e9f3a730c57
0a24b146cd3dacf372ce98424044423a5b2fbf2a 20-Oct-2015 Chris Craik <ccraik@google.com> Add initial OpReorderer benchmarks

Change-Id: I6ca8ea89be2159331b2ad7031769c65f54161918
5fbd9db67a8b2f11f472358fd70e2e6f0cc236e8 19-Oct-2015 Chris Craik <ccraik@google.com> Use null GL for unit tests/microbench

Change-Id: Ie6234f03d8561b71fc2ebd149ddd7334f275d7c5
81a1d2a15927b06b84359f839ab03ac8a20970bd 16-Oct-2015 Chris Craik <ccraik@google.com> Add LinearStdAllocator

Also fixes microbench DisplayListData leak.

Change-Id: I1c46f6d0d38650327f3df90e7b278fa7765083dc
b565df13a9e5c7b1d7d93bdfa4a793752d66d3cc 05-Oct-2015 Chris Craik <ccraik@google.com> Initial commit of new Canvas operation recording / replay

- drawRect, drawBitmap, drawColor, drawPaint, drawRenderNode, drawRegion
- Recording with new DisplayList format
- batching & reordering
- Stateless op reorder
- Stateless op rendering
- Frame lifecycle (clear, geterror, cleanup)

Not done:
- SaveLayer (clipped and unclipped)
- HW layers
- Complex clipping
- Ripple projection
- Z reordering
- Z shadows
- onDefer prefetching (text + task kickoff)
- round rect clip
- linear allocation for std collections
- AssetAtlas support

Change-Id: Iaf98c1a3aeab5fa47cc8f9c6d964420abc0e7691
4a4bc892e826849bd58606d99408f1bfbceddc3b 12-Oct-2015 John Reck <jreck@google.com> Microbench hackery

Change-Id: I35428350e16982824bb4e8a0015a4cb98b1c0799
e702c9cd6a2b9b1378f740a79b0e349a9b02660f 07-Oct-2015 John Reck <jreck@google.com> Shove the tests into a different file

Also add descriptions because those are nice

Change-Id: I2d0480acf17af2700c8b7fb7228203e16a068f6b
6e6646c03788f198a9878763680c05342d7622f3 15-Sep-2015 Chris Craik <ccraik@google.com> Unify extensions parsing behavior

Removes remnants of EGL extension support, and persistence of
GL extension list.

Change-Id: I35aec12d900bdb33549ea47654bb8146f350ef48
9557106c6f84640382a068997b1fc125099d6019 02-Sep-2015 Chris Craik <ccraik@google.com> Add CanvasState tests

Change-Id: Idcd022f6e4015e074d8e73b4c116e0788fd4f045
e248bd1b2c3fcf8088429507e73b31f45ee2544b 05-Aug-2015 John Reck <jreck@google.com> Serializing display lists

This is a WIP prototype

Change-Id: Id4bfcf2b7bf905221c3734b7b6887c9b2efd37e6
4c5efe9290543b723b76a8bd48518da1ae1dcb26 10-Jul-2015 Derek Sollenberger <djsollen@google.com> Add ninePatch support to Canvas.h

Change-Id: Ic095291fe55911c6501c1bdefa4b8da973c77319
773bbe0357b17a16d095ce57c30980992a9c977f 18-Aug-2015 John Reck <jreck@google.com> Revert "Add ninePatch support to Canvas.h"

This reverts commit edca320a2b42011f98c308fdf25fc0494c6a5454.

Change-Id: I30ee93cfc1cac391ce152f03e9e13a1ad24dc91b
d2e72141797e92ced2f076f6b3899a6b450966b4 17-Aug-2015 John Reck <jreck@google.com> Makefile re-jiggering

Change-Id: I6a8d7c9ecbc4f1af8bc4a6e1409787f215d6fc5b
849911a9c4315fc552faa38516c842b2541b1909 20-Jan-2015 John Reck <jreck@google.com> Move Canvas

Change-Id: I83d557af30fc2d5c69d06eedc0f4d52ac41c4210
a2732a2bf98f7dbd063f4e5679f5b8bfcbec2698 18-Dec-2014 John Reck <jreck@google.com> Stop pretending USE_OPENGL_RENDERER is a thing

Change-Id: I732b490431fe90eafa00a00f3b5429f0d3a067e6
35cf58ab283a784b0dbdeeb8fa5a620a34030b35 18-Dec-2014 John Reck <jreck@google.com> Split hwui's makefile

Change-Id: I7ad1a692e708cad052e8ca5b412c17e25992862c
64bb413a664001c95c8439cf097dc3033f4ed733 22-Nov-2014 Andreas Gampe <agampe@google.com> Revert "resolved conflicts for merge of 220c3f4f to master"

Reverted as hwui doesn't agree.

This reverts commit 8a902d9f24e83c87b054adb5836b4a5b8a257be9.

Change-Id: I109e7b02bee2921e2155ded6df36f52e6f574b5a
8a902d9f24e83c87b054adb5836b4a5b8a257be9 22-Nov-2014 Andreas Gampe <agampe@google.com> resolved conflicts for merge of 220c3f4f to master

Change-Id: I37ecce8fddecdff82b0eace16f1ee75152f7171e
42ddc18d108f789705ad4eb697ce9599ad322507 21-Nov-2014 Andreas Gampe <agampe@google.com> Frameworks/base: Unused parameters in hwui

Remove Clang cutout for unused parameters. Fix warnings.

Remove Clang cutout for deprecated Skia function usage. Has been
fixed in the L push.

Change-Id: I7ea073ff67127cc1e14e798b655e2c50615fe8e7
45670c1dc55c3d853c03a252623428aeffa731e7 12-Nov-2014 Dan Albert <danalbert@google.com> am b28ff487: resolved conflicts for merge of 5e6cf242 to lmp-mr1-dev-plus-aosp

* commit 'b28ff487fb6db4a44e4d18aa17d8253f00a63bb6':
Move frameworks/base over to libc++.
ff1d8a6635fb6441615778a47e2881129574a5b1 12-Nov-2014 Dan Albert <danalbert@google.com> Move frameworks/base over to libc++.

Bug: 15193147
Change-Id: I96109d2d383f0c8a4aaa611f29fcf887afb3c69e
edaecc1db0584fa017822dfc2da0c968b53967e6 11-Nov-2014 Andreas Gampe <agampe@google.com> resolved conflicts for merge of 1d03b816 to lmp-mr1-dev-plus-aosp

(cherry picked from commit 1272887050a269d6d506b42099c2857847ad100b)

Change-Id: Ib673768fe5fc03615626ef4b10590e5317f22172
1e19674107e1aa2224c2b8c7d12bfa057efe80ea 11-Nov-2014 Andreas Gampe <agampe@google.com> Frameworks/base: Wall Werror in libs/hwui

Turn on -Wall -Werror in libs/hwui. Fix errors.

Change-Id: I74962d08c889712dacbd0d86d6760fc10802b6bd
984162fb7e4010b6e2908352dbff17ed47eecf06 10-Oct-2014 Tom Hudson <tomhudson@google.com> Replace StatefulBaseRenderer inheritance with CanvasState member

Incrementally disentangles DisplayListRenderer and OpenGLRenderer.
Introduces abstract CanvasStateClient class to share three functions
between the two.

Design doc at https://docs.google.com/a/google.com/document/d/1PY1JF7AfPEF2UOUAnETS5j_4_tnJShTAMExvpCJfP8o/edit?usp=sharing.


Change-Id: Ic9fdffe18808e7d921ad06d01ea1ca25b2ad6f23
4ed472ab33e78391c0b084ed3908019e06b7dfe5 29-Oct-2014 Narayan Kamath <narayan@google.com> resolved conflicts for merge of 3028394c to stage-aosp-master

Change-Id: I980e4c95cdc6a4778cef3298338692656d23e7c6
d3448e437ac247e96455014e95f15a3ddd5cb328 15-Sep-2014 Chih-Hung Hsieh <chh@google.com> Suppress Clang compilation warnings.

Ignore warnings about unused parameters and initialization of static
constant float data members.

Change one potential error of allocating variable length
array of non-POD element type on stack.

Fix mismatch of class and struct declaration tags.

BUG: 17512760
Change-Id: I3a09c945fb1c17f27aff74a7e439dd4c35d1fb32
c04d92cac93fdbbdc6d104f15f6496d197753e92 20-Sep-2014 Dan Albert <danalbert@google.com> resolved conflicts for merge of 1a4527ce to lmp-dev-plus-aosp

Change-Id: Iee4e93e3a2b049ec5f13166dbbffdd77b301fe5c
88ba339aefd74ffe0ea978ebb659a430f82940f0 12-Sep-2014 Dan Albert <danalbert@google.com> Clean up makefile cruft.

The build system already takes care of all these things.

Change-Id: Idef80b554e07cef5e5ed2adf1b5740a76f13ef6d
119907cd2575c56b1ebf66348b52e67aaf6a88d8 14-Aug-2014 John Reck <jreck@google.com> Animator stuff

Bug: 17228458

Change-Id: Id884a429a512f9cd2be0ed16dbd0f10e92b4440d
a7c2ea20c43ab797bef5801530687e22e83def8f 08-Aug-2014 John Reck <jreck@google.com> Fix damage for layers for projection receivers

Bug: 16880228

Change-Id: I59ab760a21f49cc2cac0d8936b173cff292e6114
68bfe0a37a0dcef52abd81688d8520c5d16e1a85 25-Jun-2014 John Reck <jreck@google.com> Animator refactoring & fixes

Tweaks animators to have less unnecessary refcounting

Pull animator management out into seperate class

More control to tweak animator lifecycle, such as doing
Java-side handling of start delay by attaching but not
starting the animator

Change-Id: I4ff8207580ca11fb38f45ef0007b406e0097281c
07126e12cc4409e31e64c47a8cf7eb620806ff29 23-Jun-2014 Derek Sollenberger <djsollen@google.com> Cleanup unused includes in the hwui library.

Change-Id: I94c188403f5fa541e47a03a3bd1c7cf00c29bf4e
3b20251a355c88193c439f928a84ae69483fb488 23-Jun-2014 John Reck <jreck@google.com> No-fail invokeFunctor

Bug: 15513308
Bug: 15449247

Change-Id: I13a29f9c8d4975cdda6dcb33b6332c2555ff0f7c
1e5cf9aced40e6e14262e542d0ed0e24cda877a0 10-Jun-2014 Chris Craik <ccraik@google.com> am b1c76a1a: Merge "Tessellate on worker threads" into lmp-preview-dev

* commit 'b1c76a1abcfb2f33e12fef37ec71d20724863b5e':
Tessellate on worker threads
05f3d6e5111fd08df5cd9aae2c3d28399dc0e7f5 03-Jun-2014 Chris Craik <ccraik@google.com> Tessellate on worker threads

Tessellate and cache (where possible) shadow and round rect
tessellation tasks.

Change-Id: I2cfda8e11d83d51ea74af871235cf26e8f831d40
e4267ea4f20740c37c01bfb6aefcf61fddc4566a 04-Jun-2014 John Reck <jreck@google.com> Even FASTER damage calculations!

* Now with more native!
* Less matrix math thanks to bulk-property-update support!
* Zero JNI on the View.damageInParent() path!
* Fully aware of RT-driven animators!
* Likely full of new and exciting bugs!
* But it also fixes at least 1 existing invalidate bug!

Change-Id: Ie0773f85a60850ff2668370c58defef2e8aa079f
ce444ca4006cfe0e2151d858da732fc413a716bd 03-Jun-2014 John Reck <jreck@google.com> Cleanup

Change-Id: Ie366390272724a2c1dfda99b0e85806b7a612744
fe5e7b7346a54537b980796ceeca66bfdbd05561 24-May-2014 John Reck <jreck@google.com> Enable debug stuffs

Bug: 14596762
* dumpsys gfxinfo implemented
* profile GPU visual_bars implemented

Change-Id: Icb948a9d5af5989b5615504d0d76ade64b93ef5b
e4aa95e3627226bcb0d8cc3e42dca6e4df8f421c 08-May-2014 Chris Craik <ccraik@google.com> Add logging utility methods

Change-Id: I0f316830dcc0bbf438292a6d0fbe9f8154368500
18f16e6fba74eda173e1e7c869e6e2e2acc073ff 03-May-2014 John Reck <jreck@google.com> TIME LORD!

Bug: 14444180

Change-Id: I68bec3807c4d1c88d5af1aec2fe6907d60b5f2f3
e45b1fd03b524d2b57cc6c222d89076a31a08bea 15-Apr-2014 John Reck <jreck@google.com> RenderThread animator support

Change-Id: Icf29098edfdaf7ed550bbe9d49e9eaefb4167084
668f0e38ef0277d55d3118af37e17b8c435df85c 26-Mar-2014 John Reck <jreck@google.com> Async drawing!

Change-Id: I7e728356f58af88174328a8c0b90d27b128bfe01
113e0824d6bddf4376240681f9cf6a2deded9498 18-Mar-2014 John Reck <jreck@google.com> Move RenderNode to own file

Change-Id: I9380d161fd3ddd7b569c262dd8e7aa0c96151b1e
acb6f07623b7df3d4179f70ae03ade574616ffa6 13-Mar-2014 John Reck <jreck@google.com> Split out RenderProperties

Change-Id: Ia9888b4fb2c849d95a8c395cafef2e2294a23aae
950fe8f8d4d654e645fa7205ca275b5a03feb214 27-Feb-2014 Derek Sollenberger <djsollen@google.com> Cleanup unnecessary includes for libskia.

The libskia target exports all of its public includes directories so
redefining them here is redundant. Also this cleans up and makes it
obvious where the framework is making using of private Skia headers.

Change-Id: Ie7ecc9ddd3df780bed6b9af54ba58ca58274e043
04fc583c3dd3144bc6b718fcac4b3e1afdfdb067 06-Feb-2014 John Reck <jreck@google.com> Refactor HardwareLayer

Defer all the things!
Groundwork to allow hardware layers to work in a renderthread world

Change-Id: Ib3aa47525f393083621254a743dbaa6352f933bd
76d3a1b8d035d27bc80b0f2fc480a903bd001514 10-Dec-2013 Derek Sollenberger <djsollen@google.com> Removing SkiaColorFilter and inspecting the native object directly.

bug: 10650594
Change-Id: I4fcf66d008765afa0e35d011f58bc792183cb74f
4f02bf4eef6af47f35c70c4dda5b7b9523d89ca0 04-Jan-2014 John Reck <jreck@google.com> Native-side proxy

Remove RemoteGLRenderer
Remove reflection-based control

Change-Id: If17c2bbb61c7141986d88c4763def77ed1074985
8a3452e7e1cc7b6edf719b155e9d95ec8fbf573a 13-Jan-2014 ztenghui <ztenghui@google.com> Merge "Calculate and show the shadow from a spot light."
7b4516e7ea552ad08d6e7277d311ef11bd8f12e8 07-Jan-2014 ztenghui <ztenghui@google.com> Calculate and show the shadow from a spot light.

Change-Id: Ia558852e8cde5d33866b22875eb501e4c6858819
23b797ab5151eb2474f3bdd679f2f07bfd723042 04-Jan-2014 John Reck <jreck@google.com> EGL migration to native

Move EGL state management to native side for RemoteGLRenderer

Change-Id: I12b0fed70246564d4caebf87374e8bbca655c572
564acf7c9bff822f608cda0d5df0a64a9f9aaefd 03-Jan-2014 Chris Craik <ccraik@google.com> Fix Clang warnings/errors

Fix several build warnings (struct != class, int != size_t) and errors
(variable leng non-POD arrays).

Change-Id: I70b4e784365514303d8954bfcb1f39d7c22c1321
14e513058ed4168c94e015638d16f5f87fd8063a 31-Dec-2013 Chris Craik <ccraik@google.com> Move Snapshot management to intermediate StatefulBaseRenderer class

The eventual goal is for the StatefulBaseRenderer to serve as the
common base class between the DisplayListRenderer and OpenGLRenderer.

This will separate DisplayList recording, Snapshot stack management,
and the GL in OpenGLRenderer.

Additionally, avoid sp<> parameters, and use const parameters in
several places, with the intent of greatly reducing the surface area
where renderer subclasses can modify snapshot stack.

Next steps:
-move bulk of clipping logic into StatefulBaseRenderer
-disable direct snapshot access

Change-Id: Ibc3c6747134ec7daf8ea535866239fa73b874390
55bfb4e728fe1db619af5d2c287f4abe711b3343 03-Dec-2013 ztenghui <ztenghui@google.com> Calculate and show Ambient shadow.

Basically we compute the shadow as a strip of triangles, whose alpha value
is the strength of the shadow.
We use the normal to extend the geometry.
And we use static function and try to avoid new/malloc in the computation.

Change-Id: I382286f1cad351bd5ff983f76f446c075819dcaf
cec24ae16e9a0a7c3075f1a8d9149bb7fb3813fc 05-Nov-2013 John Reck <jreck@google.com> RenderThread work

Hacky prototype needs a private API to enable

Change-Id: I21e0ddf3cdbd38a4036354b5d6012449e1a34849
e63f7c622a2086aefa80983c6f41b74fb166bb42 17-Oct-2013 Chris Craik <ccraik@google.com> Clean unused parameters, disable warnings

Change-Id: Iddb872f53075dd022eeef45265594d1c6a9e2bc0
250b1cfc831fd2a271c09cab547efcc5e3d5f828 01-Aug-2013 Tim Murray <timmurray@google.com> Handle updates to RS C++ API.

Change-Id: I73127fc7369643b94d4a49f31a516b50c74b54ac
8aa195d7081b889f3a7b1f426cbd8556377aae5e 05-Jun-2013 Romain Guy <romainguy@google.com> Introduce Caches::bindTexture() to reduce glBindTexture calls

Change-Id: Ic345422567c020c0a9035ff51dcf2ae2a1fc59f4
1212c9dafe932f70956651338568c5e1fdf21bcf 03-May-2013 Romain Guy <romainguy@google.com> Remove warning

Change-Id: Ia1523d02dc2b7f58ca26a142a5aef710792a5f3d
3b748a44c6bd2ea05fe16839caf73dbe50bd7ae9 18-Apr-2013 Romain Guy <romainguy@google.com> Pack preloaded framework assets in a texture atlas

When the Android runtime starts, the system preloads a series of assets
in the Zygote process. These assets are shared across all processes.
Unfortunately, each one of these assets is later uploaded in its own
OpenGL texture, once per process. This wastes memory and generates
unnecessary OpenGL state changes.

This CL introduces an asset server that provides an atlas to all processes.

Note: bitmaps used by skia shaders are *not* sampled from the atlas.
It's an uncommon use case and would require extra texture transforms
in the GL shaders.


The "assets atlas" is a single, shareable graphic buffer that contains
all the system's preloaded bitmap drawables (this includes 9-patches.)
The atlas is made of two distinct objects: the graphic buffer that
contains the actual pixels and the map which indicates where each
preloaded bitmap can be found in the atlas (essentially a pair of
x and y coordinates.)


Because we need to support a wide variety of devices and because it
is easy to change the list of preloaded drawables, the atlas is
generated at runtime, during the startup phase of the system process.

There are several steps that lead to the atlas generation:

1. If the device is booting for the first time, or if the device was
updated, we need to find the best atlas configuration. To do so,
the atlas service tries a number of width, height and algorithm
variations that allows us to pack as many assets as possible while
using as little memory as possible. Once a best configuration is found,
it gets written to disk in /data/system/framework_atlas

2. Given a best configuration (algorithm variant, dimensions and
number of bitmaps that can be packed in the atlas), the atlas service
packs all the preloaded bitmaps into a single graphic buffer object.

3. The packing is done using Skia in a temporary native bitmap. The
Skia bitmap is then copied into the graphic buffer using OpenGL ES
to benefit from texture swizzling.


Whenever a process' hardware renderer initializes its EGL context,
it queries the atlas service for the graphic buffer and the map.

It is important to remember that both the context and the map will
be valid for the lifetime of the hardware renderer (if the system
process goes down, all apps get killed as well.)

Every time the hardware renderer needs to render a bitmap, it first
checks whether the bitmap can be found in the assets atlas. When
the bitmap is part of the atlas, texture coordinates are remapped
appropriately before rendering.

Change-Id: I8eaecf53e7f6a33d90da3d0047c5ceec89ea3af0
09d3636485eb1601c5beaf0d8682bb3027d2271d 16-Apr-2013 Romain Guy <romainguy@google.com> Fix indentation

Change-Id: If54b7d7c016acb5e7300323d2eada57142a814c0
e48da96ab5837f305ef55d5ea9d3215930884f83 12-Apr-2013 Romain Guy <romainguy@google.com> resolved conflicts for merge of 886e1204 to master

Change-Id: Id002d2ae799c6946672335f122ecbfa07d9c0bc1
cf51a4199835e9604aa4c8b3854306f8fbabbf33 09-Apr-2013 Romain Guy <romainguy@google.com> Introduce PixelBuffer API to enable PBOs

PBOs (Pixel Buffer Objects) can be used on OpenGL ES 3.0 to perform
asynchronous texture uploads to free up the CPU. This change does not
enable the use of PBOs unless a specific property is set (Adreno drivers
have issues with PBOs at the moment, Mali drivers work just fine.)

This change also cleans up Font/FontRenderer a little bit and improves
performance of drop shadows generations by using memcpy() instead of
a manual byte-by-byte copy.

On GL ES 2.0 devices, or when PBOs are disabled, a PixelBuffer instance
behaves like a simple byte array. The extra APIs introduced for PBOs
(map/unmap and bind/unbind) are pretty much no-ops for CPU pixel
buffers and won't introduce any significant overhead.

This change also fixes a bug with text drop shadows: if the drop
shadow is larger than the max texture size, the renderer would leave
the GL context in a bad state and generate 0x501 errors. This change
simply skips drop shadows if they are too large.

Change-Id: I2700aadb0c6093431dc5dee3d587d689190c4e23
28af35e8cdc601c7ab9c7287d9e72fdc331e8a9d 10-Apr-2013 Ying Wang <wangying@google.com> resolved conflicts for merge of a976bddd to master

Change-Id: I64e1cbfb0eee891ce4d1eee40eefdcedcc501f7f
d685894212e6dbeac1fda4996903c1da115d49a6 10-Apr-2013 Ying Wang <wangying@google.com> Add liblog

Bug: 8580410
Change-Id: I746aa8258866508c3a725d0773faf4518096548f
e4d9a01bfc7451afff1ed399a5801c7aa2af2831 29-Mar-2013 Dan Morrill <morrildl@google.com> Phase 1 of refactoring SystemServer.

SystemServer is currently a monolithic class that brings up key system
services. This change is the first phase of refactoring it to be more
configurable. Specifically, it adds a set of on/off switches used to control
startup of individual services. Future plans include finer grained controls
and a more explicit and consistent startup sequence for these services.

Change-Id: I7299f5ce7d7b74a34eb56dffb788366fbc058532
c46d07a29e94807e768f8b162ce9f77a88ba6f46 16-Mar-2013 Romain Guy <romainguy@google.com> 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
5dc7fa709646799a5207a5d217f70aa02bf4a3aa 12-Mar-2013 Romain Guy <romainguy@google.com> 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:

Creates and manages the worker threads.

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.

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();

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

Change-Id: I1fe845ba4c49bb0e1b0627ab147f9a861c8e0749
6e2004089305cf2cd958b52b234459a49a4e5c83 08-Mar-2013 Romain Guy <romainguy@google.com> Move blur code from FontRenderer to utils/Blur.cpp

Change-Id: I2cebbfbcb722ed4b37e54ffbf8b53bb92ad0c964
620cff4006ee0b507f00ef8a242ecff4e60ba4e9 19-Feb-2013 Chris Craik <ccraik@google.com> am ad82f20d: Merge "DisplayList draw operation reordering"

* commit 'ad82f20d2382396f5ac75fdf6f7db5c4da1c4c23':
DisplayList draw operation reordering
c3566d06421c8acc0aafb18f7e307e5725ce87e1 05-Feb-2013 Chris Craik <ccraik@google.com> DisplayList draw operation reordering


The reordering enables similar operations to draw together, minimizing the
OpenGL state change operations that go inbetween draws. Eventually, multiple
complete canvas draw operations will be merged (into a single glDrawArrays call,
for example)

Reorders DisplayList draw operations when:

-They can move backwards in the command stream to be after similar
operations without violating draw ordering

-The OpenGLRenderer is in a simple, replayable state (no complex clip,
or filter/shadow etc)

Also adds two system properties to control the deferral/reordering:
which can be set to "true" to control the display list manipulation

Change-Id: I5e89f3cb0ea2d2afd3e15c64d7f32b8406777a32
41250b67fe6308570860f2435c6b305ed8270002 15-Feb-2013 Kristian Monsen <kristianm@google.com> resolved conflicts for merge of 101ae3bb to master-chromium

Only include file changes in conflict.

Change-Id: I1b6eb3343e7163827d8031ffea4b77f294980ccc
0776a6069365bdea83855db154fa2d37f9d1d808 15-Feb-2013 Chris Craik <ccraik@google.com> Move DisplayList to its own cpp file

Change-Id: Ic9c1bbf4673ad5c756f3908b2ab7e699edd6a119
0229d0818c8f08753a0df583798bbac19f67a4c4 14-Feb-2013 Chris Craik <ccraik@google.com> am 805a6fe7: Merge "Revert "Revert "Use RenderScript for large text blurs"""

# Via Android (Google) Code Review (1) and Chris Craik (1)
* commit '805a6fe7b1417640ccaf7914171cb65515b6ab39':
Revert "Revert "Use RenderScript for large text blurs""
f2d8ccc15d7272b3416f73605c1f31d1d346bd40 14-Feb-2013 Chris Craik <ccraik@google.com> Revert "Revert "Use RenderScript for large text blurs""

This reverts commit bf5703e52e3304246cbf0e73f6976f7d7312d238.

Change-Id: Ic6f991277dec9e80a6fed93db91499726b30ab2a
c932760f667cf56ca7a1aeffde505745dc3632e1 14-Feb-2013 Chris Craik <ccraik@google.com> Merge "Revert "Merge remote-tracking branch 'goog/master-chromium' into 'goog/master'" DO NOT MERGE"
68b600913b699da0fbfcd9d913e4c4fdb08e06b8 13-Feb-2013 Chris Craik <ccraik@google.com> Merge "Revert "Use RenderScript for large text blurs""
bf5703e52e3304246cbf0e73f6976f7d7312d238 13-Feb-2013 Chris Craik <ccraik@google.com> Revert "Use RenderScript for large text blurs"

This reverts commit 3f76e65d251ead65fe8ff98e3bd4c7623fbaac07

Change-Id: Ia81cd485e5ca696bb284c419dc8a1d2f3247100e
bce29d2a549c374e642ad7a41a1daf869b46f53c 13-Feb-2013 Chris Craik <ccraik@google.com> Merge "Use RenderScript for large text blurs"
8d4aeb7111afac0c3c7e56d4ad5d92f9cfce2ffd 13-Feb-2013 Romain Guy <romainguy@google.com> Add a render buffer cache to reuse stencil buffers
Bug #7146141

This new cache is used in a similar way to LayerCache. It helps
reuse already allocated stencil buffers and thus avoid churning
memory on every frame.

Change-Id: I19551d72da52c40039e65904563600e492c8b193
7c1a49f5f5ed6613d736464bf5001b777e89ced2 13-Feb-2013 Chris Craik <ccraik@google.com> Revert "Merge remote-tracking branch 'goog/master-chromium' into 'goog/master'" DO NOT MERGE

This reverts commit 6c0307dd0aefe9a08794b155fc03ee60ebd14f25, reversing
changes made to a2cd828b749c444d55c2c41c7dbb85088ff94b9f.


Change-Id: Ia178efe8b14751583d47b2826bfe3d3d5463dd2e
3f76e65d251ead65fe8ff98e3bd4c7623fbaac07 15-Nov-2012 Chris Craik <ccraik@google.com> Use RenderScript for large text blurs

Still fall back to simple path for small tasks

Change-Id: I492f1b3f7d6fec1738f3e45cbfb15864bd23a392
da8d8b9699fe8e9557389465007e333d3f03dcc1 07-Feb-2013 Romain Guy <romainguy@google.com> Merge "Add a RenderBuffer object to store stencil buffers. Bug #7146141"
3bbacf27c0be1bae4e4483577fc89ae3113abe5d 07-Feb-2013 Romain Guy <romainguy@google.com> Add a RenderBuffer object to store stencil buffers.
Bug #7146141

This change is needed to add a render buffer cache to avoid
creating and destroying stencil buffers on every frame.

This change also allows the renderer to use a 1 bit or 4 bit
stencil buffer whenever possible.

Finally this change fixes a bug introduced by a previous CL
which causes the stencil buffer to not be updated in certain
conditions. The fix relies on a new optional parameter in
drawColorRects() that can be used to avoid performing a
quickReject on rectangles generated by the clip region.

Change-Id: I2f55a8e807009887b276a83cde9f53fd5c01199f
1ba0289d18f16e190a3bc7cf9226d061016dc355 07-Feb-2013 Chris Craik <ccraik@google.com> Merge "Add cap tessellation support"
65cd612face362d054a85d0f7e5881c59cd523be 11-Dec-2012 Chris Craik <ccraik@google.com> Add cap tessellation support


Currently used for lines (with and without AA) and arcs with useCenter=false

Also removes 0.375, 0.375 offset for AA lines

Change-Id: Ic8ace418739344db1e2814edf65253fe7448b0b0
ca79cf69d09efa0c327e9b1237d86a119aea5da7 14-Aug-2012 Derek Sollenberger <djsollen@google.com> Update framework to support r5967 of Skia.

bug: 6906025
Change-Id: Iefdb830ec3aa2ab3472c1c142484a7aa21788a15
710f46d9d6a5bf9ea1c1833384caf61e1934124f 18-Sep-2012 Chris Craik <ccraik@google.com> Polygonal rendering of simple fill shapes


Change-Id: If0428e1732139786cba15f54b285d880e4a56b89
d15ebf25c595b855f6978d0600218e3ea5f31e92 05-Sep-2012 Chet Haase <chet@google.com> Enable changing properties of layer paint

Previously, to draw a layered view with a changed Paint object for the
drawLayer operation, you'd have to invalidate the parent view, to get the
native DisplayList to pick up the new Paint properties. This change adds
API and functionality so that the developer can call setLayerPaint(), which
does the proper invalidation (lightweight, doesn't cause redrawing the view).

Issue #6923810 Make it easy to efficiently animate a layer's Paint

Change-Id: I7fea79788d50f6d9c86dd5e5b2a4490cb95142bb
9f5dab3fc228fa11c32b483e6101ec086895a32b 04-Sep-2012 Romain Guy <romainguy@google.com> Refactor FontRenderer.cpp

FontRenderer.h defined several classes and structures that now live
in the font/ folder. This will make the code easier to read and

Change-Id: I3dc044e9bde1d6515f8704f5c72462877d279fe2
0baaac5e9adf3ee280ae1239e2e58754a9d2b099 01-Sep-2012 Romain Guy <romainguy@google.com> Revert "Revert "Add more support for transformed clip rects and paths""

This reverts commit a8557d2169e14997637f57bc897640c8882d4a46.

Change-Id: I36d4883d548fc47ba6c0b4a42012107d0d2f85a6
a8557d2169e14997637f57bc897640c8882d4a46 01-Sep-2012 Mathias Agopian <mathias@google.com> Revert "Add more support for transformed clip rects and paths"

this introduced a dead lock in GradientCache's ctor.

This reverts commit dfe082f63e94cde9aee271c94d13de5e7217e036.

Bug: 7096001
Change-Id: I57b8bbab11fb7cb502fa58e3bbf5d19864db874f
dfe082f63e94cde9aee271c94d13de5e7217e036 01-Sep-2012 Romain Guy <romainguy@google.com> Add more support for transformed clip rects and paths

Change-Id: I41791b1e1bffef77d503dc9e52428395d2309688
211efea7376371ee755edd2ad03e83ef6eea464e 01-Aug-2012 Romain Guy <romainguy@google.com> Add dithering to gradients

Change-Id: Ic1208855bde3a254eca2fd7cef43e0f1318ce419
8a4ac610e1aaf04931ac1af54b146a7fc8e66114 18-Jul-2012 Romain Guy <romainguy@google.com> Don't clear the dirty clip flag if it's not applied
Bug #6833979

Change-Id: I0ea78b7f31a557a335de10d910d03b0520029080
157bd5749f40b0330fccf3ef159d922742103ef2 17-Jul-2012 Romain Guy <romainguy@google.com> Add makefile flags for perf

Change-Id: Ibcb6e1c883551273c3392cdaa40cd0b71a3bfa70
ada4d53d50dc869b8278573ad640dc44118d3bcf 03-Feb-2012 Romain Guy <romainguy@google.com> Separate interface definition and implementation of Snapshot

The Snapshot class is getting complicated enough that its implementation
should now live in a separate .cpp file. This will become particularly
useful when support for clip regions and paths will be added later on.

Change-Id: I050fac5683a9f7a0ff2f7a6beec3dd28aa5eb0d8
9c4b79af221b53f602f946faa9ff317a596a0c39 11-Nov-2011 Romain Guy <romainguy@google.com> Discard framebuffer rendering queues when discarding layers
Bug #5581817

Change-Id: Ie30700a29059d2ea60eb7bd3f8bd20ac48a149ab
7077506f9945b87b02bdd47ffce75a5b813c821c 14-Nov-2011 Dave Burke <daveburke@google.com> Revert "Discard framebuffer rendering queues when discarding layers"

This reverts commit da96f8ac2c1c35a54f3f36e6d776cb386a251d03.
da96f8ac2c1c35a54f3f36e6d776cb386a251d03 11-Nov-2011 Romain Guy <romainguy@google.com> Discard framebuffer rendering queues when discarding layers
Bug #5581817

Change-Id: If612846ec5f7793710fc4df152791fb32c506551
7953745dd565167113f8cbfc461bc0521d32d870 12-Oct-2011 Romain Guy <romainguy@google.com> Reduce the size of libhwui by 50%

This change removes unnessary symbols. All symbols are hidden by
default, public APIs with exported symbols are explicitly marked

Change-Id: I692fde432a86c12108de1cfd1f6504919a7d5f3f
9c1e23baf5bfbebd1aebbd6d9a18c225325567ce 24-Mar-2011 Chet Haase <chet@google.com> Add logging of graphics acceleration info to bugreports

Change-Id: I9fa4cda6ccf92df9d1c644ccdc0e7274a30106e0
3070af08821ee86f06a9cc6b58dbb79c82946b94 14-Mar-2011 Iliyan Malchev <malchev@google.com> frameworks/base: remove LOCAL_PRELINK_MODULE

Change-Id: I54dd62ebef47e7690afa5a858f3cad941b135481
Signed-off-by: Iliyan Malchev <malchev@google.com>
cabfcc1364eb7e4de0b15b3574fba45027b45cfc 08-Mar-2011 Romain Guy <romainguy@google.com> Add support for partial invalidates in WebView
Bug #3461349

This change also fixes two bugs that prevented partial invalidates
from working with other views. Both bugs were in our EGL implementation:
they were preventing the caller from comparing the current context/surface
with another context/surface. This was causing HardwareRenderer to always
redraw the entire screen.

Change-Id: I33e096b304d4a0b7e6c8f92930f71d2ece9bebf5
01d58e43ede5ca98cbebdd166f9b0c545032c01b 20-Jan-2011 Romain Guy <romainguy@google.com> Add rounded rects and circles support to OpenGLRenderer.

Change-Id: I6cedf2b495d58de7c0437096809fa9e4518a1b8c
6c319ca1275c8db892c39b48fc54864c949f9171 11-Jan-2011 Romain Guy <romainguy@google.com> Better backend for hardware layers.

With this new backend, a hardware layer is only recreated when
its associated view is udpated. This offers fast composition
in GL and fast update of the layer in GL as well.

Change-Id: I97c43a612f5955c6bf1c192c8ca4af10fdf1d076
5b3b35296e8b2c8d3f07d32bb645d5414db41a1d 28-Oct-2010 Romain Guy <romainguy@google.com> Optimize FBO drawing with regions.
This optimization is currently disabled until Launcher is
modified to take advantage of it. The optimization can be
enabled by turning on RENDER_LAYERS_AS_REGIONS in the
OpenGLRenderer.h file.

Change-Id: I2fdf59d0f4dc690a3d7f712173ab8db3848b27b1
dd78ccacff83f0714ad90be98b58ad85f5d08c66 23-Oct-2010 Chet Haase <chet@google.com> Fix Caches singleton to avoid resource leaks

The declaration of Singleton objects must be in CPP files (not header
files) to avoid creating separate instances of what is supposedly a
single object.

Change-Id: Ie903384824a458b5572f3ce5b6cfb359c18a9c44
5c13d89c1332fcc499379b9064b891187b75ca32 08-Oct-2010 Chet Haase <chet@google.com> Optimizing display lists by referencing pointers to resources instead of copying them

Change-Id: I81ad3551d74aa1e5bb64d69e33d2eb29a6c1eb6a
03750a067e818ca7fbd0f590e2ff6a8fded21e6c 18-Oct-2010 Romain Guy <romainguy@google.com> Use VBOs to render most geometries.

Change-Id: I4360dc4fe5693ab425450c107282b2c22db4dca7
8550c4c7b5952b7a4e1e0ede95c9492d03099a13 09-Oct-2010 Romain Guy <romainguy@google.com> Better cache for layers, reduce memory usage and increase framerate.

Change-Id: I5ff864a361db4791bd5ff6be716f7ce692ef572d
4aa90573bbf86db0d33a3a790c5dbd0d93b95cfe 27-Sep-2010 Romain Guy <romainguy@google.com> Adding display lists to the GL renderer (checkpoint.)

Change-Id: Iaa49757600a53b39369dbb23f8c3feab282518e6
e2d345ea67e2960b37bfdc0fc8626d1bfa747404 25-Sep-2010 Romain Guy <romainguy@google.com> Add debug mode to measure performance.

Change-Id: I9d4c84034dc200b99c8266165942a7cdbcb5c0c5
b45c0c9774bd19a9dbe77d149abae4e124b08bf6 27-Aug-2010 Romain Guy <romainguy@google.com> Apply gamma correction to font rendering.

Change-Id: I1b05f40e356221b2a5eb9400e67d77ecd98ed6c4
1e45aae5de003657e5d18f74d34998f5de5db5b7 14-Aug-2010 Romain Guy <romainguy@google.com> Add drop shadows.

Change-Id: Ic6a72409d4785968d1fbdff229f17ee5c00b240b
163935113919a184122b8b3bd672ef08c8df65dc 08-Aug-2010 Romain Guy <romainguy@android.com> Make libhwui entirely optional.

The makefile variable USE_OPENGL_RENDERER must be set to true to compile
libhwui and the related code in the JNI layer.

This change also removes obsolete APIs from Canvas that must not be used
and would be confusing if left in. These APIs were remnants of our first
attempt at an OpenGL renderer for the view hierarchy and had not been
taken out before Android 1.0 was released.

Change-Id: I2475ff1307212bab26c926724f3c508681c7dae1
7fbcc0492fca03857e3c45064f4aa040af817d55 05-Aug-2010 Romain Guy <romainguy@google.com> Add support for paths.

Rendering is implementing by rasterizing the paths into A8 textures.
This cna be extremely inefficient if the path changes often.

Change-Id: I609343f304ae38e0d319359403ee73b9b5b3c93a
db1938e0e6ef816e228c815adccebd5cb05f2aa8 03-Aug-2010 Romain Guy <romainguy@google.com> Add support for ColorFilters.

Color filters are fully supported and can be used with shaders.

Change-Id: Id90ccf1c81cb462f2431f366f3f8f710d7971e04
06f96e2652e4855b6520ad9dd70583677605b79a 31-Jul-2010 Romain Guy <romainguy@google.com> Refactor Skia shaders handling.

With this change, Skia shaders can easily be applied to any mesh. This change also
supports ComposeShader. For instance, this can be used to blend a gradient and a
bitmap togehter and paint a string of text with the result.

Change-Id: I701c2f9cf7f89b2ff58005e8a1d0d80ccf4a4aea
ac670c0433d19397d4e36ced2110475b6f54fe26 28-Jul-2010 Romain Guy <romainguy@google.com> Generate shaders to cover all possible cases.

With this change, all the vertex and fragment shaders used by the GL
renderer are now generated based on a program description supplied
by the caller. This allows the renderer to generate a large number
of shaders without having to write all the possible combinations by
hand. The generated shaders are stored in a program cache.

Change-Id: If54d286e77ae021c724d42090da476df12a18ebb
694b519ac647fe998fd396fe0784cc8e179aadc4 22-Jul-2010 Romain Guy <romainguy@google.com> Add text rendering.

Change-Id: Ibe5a9fa844d531b31b55e43de403a98d49f659b9
c0ac193b9415680f0a69e20a3f5f22d16f8053be 20-Jul-2010 Romain Guy <romainguy@google.com> Add support for linear gradients.

Change-Id: Id15329da065045b3f06fdaed615f33cd57608496
fb5e23c327cd5f8f93d1eaa7c10f34d6fd3efb6c 09-Jul-2010 Romain Guy <romainguy@google.com> Refactoring to move vertex computing to the Patch class.

This change is mostly cleanup to keep less code in OpenGLRenderer.

Change-Id: I954375143b2943829457ab470423729b60b844f5
f7f93556c8fcc640ab5adef79d021a80a72a645a 09-Jul-2010 Romain Guy <romainguy@google.com> Draw n-patches using OpenGL.

Currently only tested with title bars and buttons.

Change-Id: I8263a9281898dc0e943b1b8412827fe55639b9d6
6c81893c626499e58c8eeb20d6c35ec4e1ce808b 08-Jul-2010 Romain Guy <romainguy@google.com> Simpler way to deal with the FBO multi-cache.

This change removes the need for the SortedList and instead just
add a generated id to each FBO stored in the cache. This is an
artificial way to store several FBOs with the same dimensions.

Change-Id: I9638364e9bdc0f2391261937a0c86096f20505bf
5f0c6a483900f3989f4d2a8f913cf5b6a9777d03 07-Jul-2010 Romain Guy <romainguy@google.com> Optimize FBO cache.

This change introduces a new generational cache called GenerationMultiCache
that can store several values with the same key. This can be used to use
multiple layers of the same size at the same time, without recreating them
over and over again.

Change-Id: I425466a20908b862c5f464a0f9e582ec18cbd7ac
dda570201ac851dd85af3861f7e575721d3345da 06-Jul-2010 Romain Guy <romainguy@android.com> Add a layer (FBO) cache.

The cache is used to draw layers so that a new
texture does not have to be recreated every time
a call to saveLayer() happens.

The FBO cache used a KeyedVector, which is a bad
idea. The cache should be able to store several
FBOs of the same size (this happens a lot during
scrolling with fading edges for instance.) This
will be changed in a future CL.

Change-Id: Ic316189e625f0dbcf0d273a71cc981a433d48726
ce0537b80087a6225273040a987414b1dd081aa0 30-Jun-2010 Romain Guy <romainguy@google.com> Add hooks for drawBitmap().

Change-Id: I58e962c3a8b2bc75c2605fe369ad3002579d86e0

Add texture cache.

Change-Id: I1c0e5581d228869e114438258a1014e33e024ad7
5cbbce535744b89df5ecea95de21ee3733298260 28-Jun-2010 Romain Guy <romainguy@android.com> Reduced the complexity of layers composition.

This change also refactors the code base a bit by moving classes out of
OpenGLRenderer into separate headers/implementations. This makes the code
more manageable.

This change also adds documentation for implementation methods. The
undocumented methods are simply Skia's Canvas methods.

Change-Id: I54c68b443580a0129251dddc1a7ac95813d5289e
3e168335b3422008908ac6973bb36078fd979f35 22-Jun-2010 Romain Guy <romainguy@google.com> Fix simulator build again.

Change-Id: Ifd204d64eaa4c356422e3363ec0a6e6aa61c52dc
85bf02fc16784d935fb9eebfa9cb20fe46ff7951 22-Jun-2010 Romain Guy <romainguy@google.com> Fix the simulator build.

Change-Id: Ie404f7c2c308f0657f273af19a56e8c039b61898
08ae317c21ec3086b5017672bba87420cc38a407 22-Jun-2010 Romain Guy <romainguy@google.com> Add glOrtho equivalent to the OpenGL ES 2.0 renderer.

Change-Id: I063dad3d81dab7833acb1e7a9c7121f8efd2a044
e4d011201cea40d46cb2b2eef401db8fddc5c9c6 17-Jun-2010 Romain Guy <romainguy@google.com> Add libhwui, to hardware accelerate the Canvas API using OpenGL ES 2.0.

This is the initial checkin to setup the library and turn on OEGL ES 2.0
in ViewRoot, not a functional renderer.

Change-Id: I6655c54166e2967da2e21e7d6dcfba78bf113b44