1240752c44c21632adaf64f6768669ec6d0ebc8c |
|
23-Jun-2015 |
Lazar Trsic <Lazar.Trsic@imgtec.com> |
Limit dotProduct value to 1.0f, so acosf would not return NaN. Cherry pick of b561f39d01c211425bfefaaa7b31ebe097e7ba79 from AOSP master. Due to precision loss of float math, we sometimes get 1.000001f for dotProduct. This causes NaN result from acosf() and floor() funcs. At the moment, this does not cause any problems on ARM, as casting NaN to int results in 0. On mips however (possibly on x86), such cast gives INT_MAX, so crash occurs when trying to use the resulting value. Change-Id: I8e0285a0306a65b8469d9f4885c19665066fc4c8
/frameworks/base/libs/hwui/ShadowTessellator.cpp
|
fca52b7583d1e5f5ff8ed06554875d2a30ef56fa |
|
28-Apr-2015 |
Chris Craik <ccraik@google.com> |
Use path intersection instead of saveLayer+mesh to mask projected ripples bug:14297149 SaveLayer's performance cost is high, and proportional to the surface being projected onto. Since ripples (even unbounded ones) are now always projected to the arbitrary background content behind them, this cost is especially important to avoid. This removes the last semi-secret, saveLayer from the projected ripple implementation. Also fixes the HW test app to correctly demonstrate this projection masking behavior. Additionaly, alters PathTessellator to gracefully handle counter-clockwise paths, and simplifies the work done by ShadowTessellator to ensure all of its paths are counterclockwise. Change-Id: Ibe9e12812bd10a774e20b1d444a140c368cbba8c
/frameworks/base/libs/hwui/ShadowTessellator.cpp
|
2507c34d91bb0d722b6012e85cb47387b2aa6873 |
|
04-May-2015 |
Chris Craik <ccraik@google.com> |
Cleanup properties bug:19967854 Separate properties from Caches, into static, RenderThread-only class. Also rewrites the means for java to set properties to correctly handle threading, and adds an override for profile bars so that SysUi doesn't clutter the screen with them. Change-Id: I6e21a96065f52b9ecc49d1a126244804ba106fa9
/frameworks/base/libs/hwui/ShadowTessellator.cpp
|
289e1b871656b04c0a7edf6e578c9094f5fb3b81 |
|
25-Mar-2015 |
Derek Sollenberger <djsollen@google.com> |
Update ShadowTesslator to support conics bug:19732872 Change-Id: I8b539ab3677219fa5bb7de7caf0aad9fc47ef7e9
/frameworks/base/libs/hwui/ShadowTessellator.cpp
|
62aa44c5eef2b1e888f0eee8841dc87074eaa0e8 |
|
20-Feb-2015 |
ztenghui <ztenghui@google.com> |
Correctly name the lightRadius b/18282208 Change-Id: I5b6edcb37b710464c6ff0f5c05583bb7da720ff3
/frameworks/base/libs/hwui/ShadowTessellator.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/ShadowTessellator.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/ShadowTessellator.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/ShadowTessellator.cpp
|
8def74de33b197c0c5ec8774576b1d71c7ec4f1b |
|
02-Oct-2014 |
ztenghui <ztenghui@google.com> |
+ correcting shadow visual appearance (b/17610926) + adjusting spot and ambient shadow opacity constants to achieve desired appearance + reducing ambient scale ratio back to 1.0 to address over-lightening at higher elevations + partially revert ag/546290 Change-Id: I9d7f664f73a7b9b83df73b739103c97054bd4f6e
/frameworks/base/libs/hwui/ShadowTessellator.cpp
|
f7d76dffd86398a787f0d8bd092a571c019daf04 |
|
13-Sep-2014 |
ztenghui <ztenghui@google.com> |
Update the shadow strength b/17486691 Change-Id: I8e8f0b64e757772c18f038f6b329ef91a4e155a5
/frameworks/base/libs/hwui/ShadowTessellator.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/ShadowTessellator.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/ShadowTessellator.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/ShadowTessellator.cpp
|
83f7ee8d12df1e8f031a0d23a00084f4fcd0d2f3 |
|
10-Jul-2014 |
ztenghui <ztenghui@google.com> |
Remove the unnessary log We still need to investigate the underlying problem and fix it. bug:16015708 Change-Id: If38b550d5af990d5aaa6633ee129a61e927d66c1
/frameworks/base/libs/hwui/ShadowTessellator.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/ShadowTessellator.cpp
|
797b95b26bbb7557678af78b9a2a61830158920f |
|
21-May-2014 |
Chris Craik <ccraik@google.com> |
Define light position (using new lighting spec) in Java Also updates the relative shadow strengths. Change-Id: I6cac7275d38df98aea9f0dda463cd7207102986a
/frameworks/base/libs/hwui/ShadowTessellator.cpp
|
f11310f395a135ac7ef204ced5b3d3facf491422 |
|
14-May-2014 |
ztenghui <ztenghui@google.com> |
Check the array before accessing it TODO: Figure out why the path is generating empty polygon. bug: 14615368 Change-Id: If116e34388b7c6a71bf5ddd36e0c9716d7450732
/frameworks/base/libs/hwui/ShadowTessellator.cpp
|
64ab917e5eb3269c72c795781a512d4ee7d9d7a4 |
|
01-May-2014 |
Chris Craik <ccraik@google.com> |
Merge "Add more shadow control knobs"
|
f5be3ca5cc5b3a10747b577f60059a99862bb9a8 |
|
01-May-2014 |
Chris Craik <ccraik@google.com> |
Add more shadow control knobs Change-Id: I1ff500bf429029a97b681ced9df652f4ee9f1332
/frameworks/base/libs/hwui/ShadowTessellator.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/ShadowTessellator.cpp
|
af6f7ed8dd4288a41d0a07a1f0f0be7d6d035b33 |
|
19-Mar-2014 |
ztenghui <ztenghui@google.com> |
Early rejection on shadows which are outside of the clip bound. All the computations are estimated using bounding box. TODO: Spot shadow could have more accurate but also more expensive methods, we need more experiments to decide. Change-Id: I9c10c419576cee55daf0f9f278b0db78cb847447
/frameworks/base/libs/hwui/ShadowTessellator.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/ShadowTessellator.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/ShadowTessellator.cpp
|
87f9df880e4a5bfba65d2ed413b3ead649595129 |
|
07-Mar-2014 |
Chris Craik <ccraik@google.com> |
Update tessellation tracing Change-Id: I6c73f2467817412d9936dde217df9938a6884003
/frameworks/base/libs/hwui/ShadowTessellator.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/ShadowTessellator.cpp
|
15a07a21eb33e8ca1c7444944fe0541a53380c0c |
|
26-Jan-2014 |
Chris Craik <ccraik@google.com> |
Use path outlines to define shadow shapes Fixes the simplifying assumption that shadow casters were always rectangular. Java side APIs + plumbing to pass down correct shapes still need to be added. Change-Id: Ic4fee90af15679951a44bb5cc6ae454b98c4c194
/frameworks/base/libs/hwui/ShadowTessellator.cpp
|
cc3c25622c731d14a6f01bce684330eccba7db5a |
|
17-Jan-2014 |
ztenghui <ztenghui@google.com> |
Property support for light positioning. Tune up the light size to make it look better. Change-Id: I139a05f3dd53dacbe55759b91188f0e1cc2c7f80
/frameworks/base/libs/hwui/ShadowTessellator.cpp
|
8191effc83b3ec4cfc8647a6eb16ee641fa85a2f |
|
17-Jan-2014 |
Chris Craik <ccraik@google.com> |
Merge "Map shadow light position globally"
|
7b3dfa4d13ca79404f8b0be6e47002cf8daff0a2 |
|
17-Jan-2014 |
Chris Craik <ccraik@google.com> |
Transform shadow casters correctly in 3d Change-Id: I11067c5aa8c749089b6ee163ddafa91865cc0d9f
/frameworks/base/libs/hwui/ShadowTessellator.cpp
|
3197cded4e265bc99dc82d695bbb7163fe134ed4 |
|
16-Jan-2014 |
Chris Craik <ccraik@google.com> |
Map shadow light position globally Change-Id: Ic3201cecdf5d2a1dd628e7e40aee912ef516d3b2
/frameworks/base/libs/hwui/ShadowTessellator.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/ShadowTessellator.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/ShadowTessellator.cpp
|