4ac36f80beb958c77a92a3e1a235f6ed9daaa510 |
|
10-Dec-2014 |
Chris Craik <ccraik@google.com> |
Fix frame-allocated path lifecycles bug:18667472 Previously, we were allocating per-frame temporary paths within the PlaybackStateStruct, but these are not safe as layers allocate these transiently. Instead, move these to the OpenGLRenderer, which has better define lifecycle. Additionally, don't store SkPath objects directly in vector, since they are then subject to relocation. Change-Id: I8187ef542fcd5b030502bb75eb123ee26c0daa96
/frameworks/base/libs/hwui/AmbientShadow.cpp
|
d2dcd6fded3a036f334a88bf9593398833f2919a |
|
30-Oct-2014 |
ztenghui <ztenghui@google.com> |
A better looking and faster spot shadow. 1. This improve the looking, the star shape (spike) on long action bar is gone. Shadow is more smooth now. 2. The performance is better, too. For averaging around rect, round rect and circle, the spot shadow itself is 3 times faster. On N7 v1, it could be less than 0.1 ms. b/14976551 b/16712006 Change-Id: I61ed546ee56e7c8dbe504dfcaef12d084904b4b8
/frameworks/base/libs/hwui/AmbientShadow.cpp
|
512e643ce83b1d48ad9630a3622276f795cf4fb2 |
|
10-Sep-2014 |
ztenghui <ztenghui@google.com> |
Re-triangulate the spot shadow. Fix the valid umbra detection. This looks better b/c every vertex will have one ray shooting at it, such that we don't miss the corner. This performs better too, due to the polygon intersection is removed and less ray intersection. 2x performance for rect and circle for spot shadow in test app. b/17288227 b/15598793 b/16712006 Change-Id: I4a5ee397b9e192e93c8e35e6260b499e3e38a6f4
/frameworks/base/libs/hwui/AmbientShadow.cpp
|
26131368ecc2e16dfb4965b9165632ee3ca4f1d9 |
|
02-Sep-2014 |
ztenghui <ztenghui@google.com> |
Fix the (0,0) vector case for extra vertices computation TODO: Figure out why we have collided vertices from input polygon. b/17340792 Change-Id: I6636ff957ef17514bd11cf290ccc0a2c302aca0b
/frameworks/base/libs/hwui/AmbientShadow.cpp
|
d5e8ade498b41b42874273cbfa375aed7b4d6a08 |
|
14-Aug-2014 |
ztenghui <ztenghui@google.com> |
Ambient shadow tessellation improvement. Using the vertices, instead of ray casting for the triangulation. This request a dynamic index buffer associated with vertex buffer, so we update the VertexBuffer to support it. The ambient shadow could be 3x-6x times faster for circle and rect now. b/16712006 b/14257173 Change-Id: I2f22a8fe19bc59acee5c18e4a3a395acd5042a66
/frameworks/base/libs/hwui/AmbientShadow.cpp
|
91a8c7c62913c2597e3bf5a6d59d2ed5fc7ba4e0 |
|
12-Aug-2014 |
Chris Craik <ccraik@google.com> |
Switch to cos interpolation of shadow alpha bug:16852257 Updates default shadow opacities to compensate. Also, update variable/constant naming related to vertex alpha. Change-Id: I9055b4ac3c9ac305ca9d515f21b52d6aa6dc9c5c
/frameworks/base/libs/hwui/AmbientShadow.cpp
|
1aa5d2d7068147ff781cfe911a93f01593a68c79 |
|
24-Jul-2014 |
John Reck <jreck@google.com> |
Fix ALL compile warnings All warnings/errors fixed for GCC & Clang Change-Id: I2ece3a136a5ae97a9acc3069537ed986238b5fd3
/frameworks/base/libs/hwui/AmbientShadow.cpp
|
9a89bc6524620c87c7a321433470c668e2b95d69 |
|
24-Jul-2014 |
Chris Craik <ccraik@google.com> |
Compute layer bounds over subset of VertexBuffer verts bug:15538815 Change-Id: I0dbb54f656a6ae99a87c5734761107e1c2351b65
/frameworks/base/libs/hwui/AmbientShadow.cpp
|
c93e45cf045f41aea95f856173e4043d988a5a5c |
|
16-Jul-2014 |
Chris Craik <ccraik@google.com> |
Build layer damage bounds for shadows bug:15538815 Change-Id: I703afeb7e31c28002bd1aff9ce448ec8cdc4e70d
/frameworks/base/libs/hwui/AmbientShadow.cpp
|
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
/frameworks/base/libs/hwui/AmbientShadow.cpp
|
2e023f3827dfc0dfc1ed7c3dd54d02b4a993f0b4 |
|
29-Apr-2014 |
ztenghui <ztenghui@google.com> |
Make sure the theta is correctly represented and incoming polygon is CW for shadow. Now the theta = 0 should be on +x axis. And cos(theta) should correctly represent x value. Without this fix, the poly theta (from atan2) can be wrongly rotated 90 degrees. Also, make sure the incoming polygon is CW for the shadow system. This fix visual artifacts in recent regression for spot shadows. bug:13553955 Change-Id: I9bbf54db094e7f133326da4dae4610962da849c1
/frameworks/base/libs/hwui/AmbientShadow.cpp
|
7940dc57e3ffcf9c4a33375215f3a42250fa896c |
|
22-Apr-2014 |
ztenghui <ztenghui@google.com> |
Shoot the rays to the vertices of the incoming polygon. bug:13553955 Change-Id: I4825a49e8eaab969c40f2ee4086f7669c9c6fd29
/frameworks/base/libs/hwui/AmbientShadow.cpp
|
50ecf849cb7ccc3482517b74d2214b347927791e |
|
12-Mar-2014 |
ztenghui <ztenghui@google.com> |
Create one hole inside the umbra area to avoid overdraw. bug:13439450 Change-Id: I859575196bd5a3029f447883025a6ec3a1f1face
/frameworks/base/libs/hwui/AmbientShadow.cpp
|
726118b35240957710d4d85fb5747e2ba8b934f7 |
|
08-Mar-2014 |
Chris Craik <ccraik@google.com> |
Improve shadow tessellation performance - Tune and simplify shadow parameters - Remove additional inner rings - Improve polygon ray casting algorithm Change-Id: If0f28b2d66ae0480b675942bb65e8fcd2864425d
/frameworks/base/libs/hwui/AmbientShadow.cpp
|
63d41abb40b3ce40d8b9bccb1cf186e8158a3687 |
|
14-Feb-2014 |
ztenghui <ztenghui@google.com> |
Use pre-computed index to draw the shadow. Also draw the umbra part as triangle fans instead of zig zag fashion. b/12840179 Change-Id: Iaa5d15e77351acdd71f076bd8f9bb2d4d2b92faf
/frameworks/base/libs/hwui/AmbientShadow.cpp
|
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
/frameworks/base/libs/hwui/AmbientShadow.cpp
|
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
/frameworks/base/libs/hwui/AmbientShadow.cpp
|