History log of /frameworks/base/libs/hwui/SpotShadow.cpp
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
b7d34fa725814d83d9d3e95fd70fb22a7e685044 08-Oct-2016 Teng-Hui Zhu <ztenghui@google.com> Make umbra lighter when the blocker is too high and has no real umbra area. am: 9c555566bf am: 9ad599930d
am: 6ff1730df5

Change-Id: Ia7855238cfb893d591ff404a1f17ada76dd79ff0
9c555566bfef718464546dcab3640f64d2fdc55d 03-Oct-2016 Teng-Hui Zhu <ztenghui@google.com> Make umbra lighter when the blocker is too high and has no real umbra area.

b/31939390
Test: CTS testShadowLayout && Manual FrameworkShadow test

Change-Id: Ib0b6c4239ac8a521a827be246e912daf2ad3b885
/frameworks/base/libs/hwui/SpotShadow.cpp
fdb625a309755fb762c448dd8c2c4e3a7cc26021 28-Jul-2016 Stan Iliev <stani@google.com> Delete dead code function SpotShadow::makeClockwise

Delete SpotShadow::makeClockwise, which is unused and does
not link when compiler optimizations are disabled (for debugging).
SpotShadow::makeClockwise calls non-existent function
ShadowTessellator::isClockwise, which only works because the
optimizer deletes the function.

Change-Id: Ib8a014bf168782772faa1da7d75a079c1fd28ed9
/frameworks/base/libs/hwui/SpotShadow.cpp
138c21fbec12bead3c7ca1f181c3fd35542ccb00 29-Apr-2016 Chris Craik <ccraik@google.com> Use LUT for computing final shadow alpha

bug:27415250

Significantly reduces shadow fragment shader computation.

Change-Id: Ie9b3c712700754b3734d0ae9cda8751c298fc59e
/frameworks/base/libs/hwui/SpotShadow.cpp
7d9eb2aeb07957eaf407003c2235ee3ea881d8c1 11-Nov-2015 John Reck <jreck@google.com> Merge "Fix memory corruption in SpotShadow" am: 8c85c00b5e am: 8c8353a8c3
am: 5bb2fdb425

* commit '5bb2fdb425dab346fb83c7f2bf9afa03bdf79fd6':
Fix memory corruption in SpotShadow
5bb2fdb425dab346fb83c7f2bf9afa03bdf79fd6 11-Nov-2015 John Reck <jreck@google.com> Merge "Fix memory corruption in SpotShadow" am: 8c85c00b5e
am: 8c8353a8c3

* commit '8c8353a8c3152bc3ee4b74815d64c65c2c9d1991':
Fix memory corruption in SpotShadow
a1f563134065abb360096cc06f6bfe4a8cca7a48 11-Nov-2015 Keith Mok <ek9852@gmail.com> Fix memory corruption in SpotShadow

The array list is too small and causing stack corruption

Change-Id: I0e34dad39357fb63977d2ce6f183ced7b6a632be
/frameworks/base/libs/hwui/SpotShadow.cpp
cdce35a7e877ae51e194b03033bbd35b5c10ce06 02-Oct-2015 Teng-Hui Zhu <ztenghui@google.com> Early return when the scale is 0.

b/24534579

Change-Id: Ib3581ec99387ca70ca036026f64857a49657d94b
(cherry picked from commit 8d0ec389531d071529fb0a800f10733b057205d9)
/frameworks/base/libs/hwui/SpotShadow.cpp
8d0ec389531d071529fb0a800f10733b057205d9 02-Oct-2015 Teng-Hui Zhu <ztenghui@google.com> Early return when the scale is 0.

b/24534579

Change-Id: Ib3581ec99387ca70ca036026f64857a49657d94b
/frameworks/base/libs/hwui/SpotShadow.cpp
9db58c031f8ffa102a6d585cb585bed3bdb911a9 20-Aug-2015 Chris Craik <ccraik@google.com> Remove MathUtils::min/max

bug:22202895

Change-Id: Ia115d86871314e3819f684ea7307356aed13a28e
/frameworks/base/libs/hwui/SpotShadow.cpp
5a4690bf26932c0d6940e4af8516d920e09ae81a 14-Jul-2015 Chris Craik <ccraik@google.com> Clean up unncessary defines

LOG_TAG and TRACE_TAG are already defined in the makefile

Change-Id: I9e53e3dacbe018441edd74cb7c8c90846defee74
/frameworks/base/libs/hwui/SpotShadow.cpp
1e4209e3871493ccfb09e43634d4082f49c227be 01-Jul-2015 John Reck <jreck@google.com> Use std::sort instead of quickSortX

Bug: 22208220

Libcxx has a really good sort algorithm, use that
instead. This speeds up shadow tesellation by about 10%.

Also less code

Change-Id: Iaad424187121d7644076f94ba8a3cf4c110da2f2
/frameworks/base/libs/hwui/SpotShadow.cpp
ecf091e171012831cddea59f1f64a46e87ee8c4f 17-Feb-2015 ztenghui <ztenghui@google.com> Update the shadow fall off function from cosine to gaussian.

Also tune the parameters to match a better look designed by UX team.
For ambient part, the acos transformed alpha is not needed any more.

b/19370798

Change-Id: I20d2615d1be502eb900942ed756aecd1660dee48
/frameworks/base/libs/hwui/SpotShadow.cpp
117bdbcfa3e8306dad21e7e01fa71b00cdfa7265 05-Feb-2015 Chris Craik <ccraik@google.com> Glop ColorFilter & VertexBuffer support, initial enable

Enables Glop rendering for supported Rects and VertexBuffers
Also removes unused Query object

Change-Id: Ibe227bc362685a153159f75077664f0947764e06
/frameworks/base/libs/hwui/SpotShadow.cpp
d41c4d8c732095ae99c955b6b82f7306633004b1 06-Jan-2015 Chris Craik <ccraik@google.com> Add overrides and switch to nullptr keyword for all files

Adds remaining missing overrides and nullptr usages, missed due to
an extreme failure in tool usage.

Change-Id: I56abd72975a3999ad13330003c348db40f59aebf
/frameworks/base/libs/hwui/SpotShadow.cpp
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
/frameworks/base/libs/hwui/SpotShadow.cpp
8a902d9f24e83c87b054adb5836b4a5b8a257be9 22-Nov-2014 Andreas Gampe <agampe@google.com> resolved conflicts for merge of 220c3f4f to master

Change-Id: I37ecce8fddecdff82b0eace16f1ee75152f7171e
2ab8298dc37851aab4623ba3f98d71055d653a73 21-Nov-2014 Andreas Gampe <agampe@google.com> resolved conflicts for merge of 99377df1 to lmp-mr1-dev-plus-aosp

Change-Id: I3a98f55832ac447b1ed0dd129c7a93d088025943
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
/frameworks/base/libs/hwui/SpotShadow.cpp
952de42b454945c87f21a9612c7a3457afced171 13-Nov-2014 ztenghui <ztenghui@google.com> am 5679d937: am ab6515f6: am 4e50ee4f: Merge "Shadow: Fix the crash in spot shadow" into lmp-mr1-dev

* commit '5679d937ff033ff1fa86245d646b6e5dbf23d635':
Shadow: Fix the crash in spot shadow
5679d937ff033ff1fa86245d646b6e5dbf23d635 13-Nov-2014 ztenghui <ztenghui@google.com> am ab6515f6: am 4e50ee4f: Merge "Shadow: Fix the crash in spot shadow" into lmp-mr1-dev

* commit 'ab6515f6214a09e23deee4b432b41d1849ae403f':
Shadow: Fix the crash in spot shadow
3932063bc75dc1e4efc2c428ca208d2e2290164d 12-Nov-2014 ztenghui <ztenghui@google.com> Shadow: Fix the crash in spot shadow

Fix the crash from searching for closest umbra vertex by initialized the
starting index correctly.

Fix another potential crash related to ray intersection by introducing epsilon.

b/18315089

Change-Id: I9ac9a781a885701a8388714d44f79a1d905e5d33
/frameworks/base/libs/hwui/SpotShadow.cpp
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
/frameworks/base/libs/hwui/SpotShadow.cpp
1272887050a269d6d506b42099c2857847ad100b 11-Nov-2014 Andreas Gampe <agampe@google.com> resolved conflicts for merge of 1d03b816 to lmp-mr1-dev-plus-aosp

Change-Id: Ib673768fe5fc03615626ef4b10590e5317f22172
94745ccb3339f22307dec828bb5ff70f81d674dd 07-Nov-2014 ztenghui <ztenghui@google.com> am 86f289fb: am 0b70c09c: am 7ae6fc81: Merge "A better looking and faster spot shadow." into lmp-mr1-dev

* commit '86f289fb505a8fef9e5aae822631a738540c31df':
A better looking and faster spot shadow.
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/SpotShadow.cpp
2dc236b2bae13b9a0ed9b3f7320502aecd7983b3 15-Oct-2014 Tom Hudson <tomhudson@google.com> Clean up physical coupling

Narrow the use of #include directives in hwui, replacing with forward
declarations where straightforward. Speeds compiles; doesn't do any
restructuring of code.

Change-Id: Icac2baffb5896f55d8c6718e9bd9d4bfa02d3ca0
/frameworks/base/libs/hwui/SpotShadow.cpp
9122b1b168d2a74d51517ed7282f4d6a8adea367 03-Oct-2014 ztenghui <ztenghui@google.com> Use float instead of double to increase spot shadow perf

This is helping spot shadow for 15%-20% increase.
With the new algorithm, we are less sensitive to the floating point error.

b/16712006

Change-Id: Ie30a6ce01e73d56054a0cf65a84549454339a7fd
/frameworks/base/libs/hwui/SpotShadow.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/SpotShadow.cpp
3bd3fa1f1d437e22aee35381a559dcee15a437dd 25-Aug-2014 ztenghui <ztenghui@google.com> Correctly detect the wrong Z value for the light

b/17221975

Change-Id: I2b46da95ad12ca5260d7fe9514a75558b6b6393b
/frameworks/base/libs/hwui/SpotShadow.cpp
c50a03d78aaedd0003377e98710e7038bda330e9 21-Aug-2014 ztenghui <ztenghui@google.com> Improve the spot shadow computation.

Get rid of compuation of the intersection for penumbra and convex hull for umbra.
Use simple circle / normal to compute the penumbra and simple intersection for umbra.

The new way could be 2x to 4x faster from rectangle to round shape.
And this part is roughly half of the shadow computation, or 2/3 of spot shadow
computation.

This improve the spot shadow spikeness too.

b/16712006
b/14976551

Change-Id: I02911784868731369efa73f76fc915bc08248600
/frameworks/base/libs/hwui/SpotShadow.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/SpotShadow.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/SpotShadow.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/SpotShadow.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/SpotShadow.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/SpotShadow.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/SpotShadow.cpp
28c3ea018771562a9150f30c6a088e5bf7502972 18-Mar-2014 ztenghui <ztenghui@google.com> Get rid of useless code

Change-Id: I7fedd0df349e1d9408d58edcab25396e2ff2edd6
/frameworks/base/libs/hwui/SpotShadow.cpp
99af9429cda84ad0af1d7fcecb580295b0046882 14-Mar-2014 ztenghui <ztenghui@google.com> Fix the missing spot shadow when DEBUG_SHADOW is turned on

In the current design, this error should be tolerated since the delta should
be small enough. So we should not return here.

Change-Id: I251db2882b331d37ae7f0896e9aa95d69a5650da
/frameworks/base/libs/hwui/SpotShadow.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/SpotShadow.cpp
b98f2116f5896acb4b221015b22624a3c5d5a7fe 12-Mar-2014 Chris Craik <ccraik@google.com> Force shadow casters above the Z=0 plane

Change-Id: Ifee75414829d4bfb3c7aa6219f1f9bcfd50ff0c6
/frameworks/base/libs/hwui/SpotShadow.cpp
b79a3e301a8d89b9e1b1f6f3d7fd6aa56610a6f0 11-Mar-2014 Chris Craik <ccraik@google.com> Fix orthographic shadows projection, simplify shadow reordering

Separate matrix passed to shadow system into two parts, one for
transforming the polygon XY points (using the actual draw matrix) and
a separate one which respects correct 4x4 3d rotations and
translations for determining Z values.

Change-Id: I7e30a84774a8709df6b2241e8f51fc5583648fe8
/frameworks/base/libs/hwui/SpotShadow.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/SpotShadow.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/SpotShadow.cpp
a989cb29c35149b35bf8c332ba39d7167bd95d6b 03-Feb-2014 ztenghui <ztenghui@google.com> Merge "Fixing a bad bug when there is no real umbra"
5176c974f1d9af833b7584e895fcba61e6e7427a 01-Feb-2014 ztenghui <ztenghui@google.com> 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
/frameworks/base/libs/hwui/SpotShadow.cpp
12d9526dd25915f1957d1a251715e562d14459da 31-Jan-2014 Chris Craik <ccraik@google.com> Simplify umbra calculation

Reuse pre-computed values

Change-Id: Ia7725be0ec3ac58af477fcb8de375f5faa05abf4
/frameworks/base/libs/hwui/SpotShadow.cpp
f5ca8b4cb178008472e67fa0ae6a3e3fa75d7952 28-Jan-2014 ztenghui <ztenghui@google.com> Merge close vertices in a better way.

And add more verification code for testing purpose.

Change-Id: I5bc4f69e6582c02fd03106af9a98abd05a6755b7
/frameworks/base/libs/hwui/SpotShadow.cpp
7b4516e7ea552ad08d6e7277d311ef11bd8f12e8 07-Jan-2014 ztenghui <ztenghui@google.com> Calculate and show the shadow from a spot light.

Change-Id: Ia558852e8cde5d33866b22875eb501e4c6858819
/frameworks/base/libs/hwui/SpotShadow.cpp