summaryrefslogtreecommitdiffstats
path: root/libs/hwui/SpotShadow.h
Commit message (Collapse)AuthorAgeFilesLines
* am 86f289fb: am 0b70c09c: am 7ae6fc81: Merge "A better looking and faster ↵ztenghui2014-11-071-34/+0
|\ | | | | | | | | | | | | spot shadow." into lmp-mr1-dev * commit '86f289fb505a8fef9e5aae822631a738540c31df': A better looking and faster spot shadow.
| * A better looking and faster spot shadow.ztenghui2014-11-061-34/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* | Clean up physical couplingTom Hudson2014-10-151-1/+2
|/ | | | | | | | 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
* Use float instead of double to increase spot shadow perfztenghui2014-10-031-6/+1
| | | | | | | | | 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
* Re-triangulate the spot shadow.ztenghui2014-09-101-9/+37
| | | | | | | | | | | | | | | | 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
* Improve the spot shadow computation.ztenghui2014-08-221-5/+13
| | | | | | | | | | | | | | | | 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
* Tessellate on worker threadsChris Craik2014-06-101-1/+1
| | | | | | Tessellate and cache (where possible) shadow and round rect tessellation tasks. Change-Id: I2cfda8e11d83d51ea74af871235cf26e8f831d40
* Make sure the theta is correctly represented and incoming polygon is CW for ↵ztenghui2014-04-281-1/+0
| | | | | | | | | | | | | | | 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
* Create one hole inside the umbra area to avoid overdraw.ztenghui2014-03-171-11/+13
| | | | | | bug:13439450 Change-Id: I859575196bd5a3029f447883025a6ec3a1f1face
* Improve shadow tessellation performanceChris Craik2014-03-111-5/+1
| | | | | | | | - Tune and simplify shadow parameters - Remove additional inner rings - Improve polygon ray casting algorithm Change-Id: If0f28b2d66ae0480b675942bb65e8fcd2864425d
* Use pre-computed index to draw the shadow.ztenghui2014-02-251-7/+4
| | | | | | | | Also draw the umbra part as triangle fans instead of zig zag fashion. b/12840179 Change-Id: Iaa5d15e77351acdd71f076bd8f9bb2d4d2b92faf
* Merge close vertices in a better way.ztenghui2014-01-291-1/+12
| | | | | | And add more verification code for testing purpose. Change-Id: I5bc4f69e6582c02fd03106af9a98abd05a6755b7
* Calculate and show the shadow from a spot light.ztenghui2014-01-101-0/+77
Change-Id: Ia558852e8cde5d33866b22875eb501e4c6858819