summaryrefslogtreecommitdiffstats
path: root/libs/hwui/AmbientShadow.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Glop ColorFilter & VertexBuffer support, initial enableChris Craik2015-02-061-1/+1
| | | | | | | Enables Glop rendering for supported Rects and VertexBuffers Also removes unused Query object Change-Id: Ibe227bc362685a153159f75077664f0947764e06
* resolved conflicts for merge of 5369b769 to masterChris Craik2014-12-101-0/+1
|\ | | | | | | Change-Id: Iccb2ce948321534e05d67e64dc40a38332adb1a7
| * resolve merge conflicts of ed211b9 to lmp-mr1-dev-plus-aosp.Chris Craik2014-12-101-0/+1
| |\ | | | | | | | | | Change-Id: Ib9d6d301282bbaae6b23b9ce07b9e6a4e9075991
| | * Fix frame-allocated path lifecyclesChris Craik2014-12-101-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* | | am cb82b7f1: am a58336f6: Merge "Use fabsf() rather than abs()"Chih-hung Hsieh2014-11-171-1/+1
|\ \ \ | |/ / | | | | | | | | | * commit 'cb82b7f1824dc7f9fa73c2bada7107c48290af8b': Use fabsf() rather than abs()
| * | am a58336f6: Merge "Use fabsf() rather than abs()"Chih-hung Hsieh2014-11-171-1/+1
| |\ \ | | | | | | | | | | | | | | | | * commit 'a58336f6c8aa44373485e5a6d7ec32677387a935': Use fabsf() rather than abs()
| | * | Use fabsf() rather than abs()Bernhard Rosenkränzer2014-11-171-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | abs() operates on integers -- to check floats accurately, fabsf should be used. Change-Id: I1a4e85f8f5e0d08ff38d307c5c31e2b6783ab7af Signed-off-by: Bernhard Rosenkränzer <Bernhard.Rosenkranzer@linaro.org>
| * | | resolved conflicts for merge of 1d03b816 to lmp-mr1-dev-plus-aospAndreas Gampe2014-11-101-1/+1
| |\ \ \ | | |/ / | | | / | | |/ | |/| Change-Id: Ib673768fe5fc03615626ef4b10590e5317f22172
| | * Frameworks/base: Wall Werror in libs/hwuiAndreas Gampe2014-11-101-1/+1
| | | | | | | | | | | | | | | | | | Turn on -Wall -Werror in libs/hwui. Fix errors. Change-Id: I74962d08c889712dacbd0d86d6760fc10802b6bd
* | | resolved conflicts for merge of 1d03b816 to lmp-mr1-dev-plus-aospAndreas Gampe2014-11-101-1/+1
| | | | | | | | | | | | | | | | | | (cherry picked from commit 1272887050a269d6d506b42099c2857847ad100b) Change-Id: Ib673768fe5fc03615626ef4b10590e5317f22172
* | | am 86f289fb: am 0b70c09c: am 7ae6fc81: Merge "A better looking and faster ↵ztenghui2014-11-071-3/+3
|\ \ \ | |/ / | | | | | | | | | | | | | | | 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-3/+3
| |/ | | | | | | | | | | | | | | | | | | | | | | | | | | 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-0/+1
|/ | | | | | | | 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
* Re-triangulate the spot shadow.ztenghui2014-09-101-30/+7
| | | | | | | | | | | | | | | | 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
* Fix the (0,0) vector case for extra vertices computationztenghui2014-09-011-0/+4
| | | | | | | | TODO: Figure out why we have collided vertices from input polygon. b/17340792 Change-Id: I6636ff957ef17514bd11cf290ccc0a2c302aca0b
* Ambient shadow tessellation improvement.ztenghui2014-08-291-258/+289
| | | | | | | | | | | | | | 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
* Switch to cos interpolation of shadow alphaChris Craik2014-08-121-1/+4
| | | | | | | | | | bug:16852257 Updates default shadow opacities to compensate. Also, update variable/constant naming related to vertex alpha. Change-Id: I9055b4ac3c9ac305ca9d515f21b52d6aa6dc9c5c
* Fix ALL compile warningsJohn Reck2014-07-241-2/+2
| | | | | | All warnings/errors fixed for GCC & Clang Change-Id: I2ece3a136a5ae97a9acc3069537ed986238b5fd3
* Compute layer bounds over subset of VertexBuffer vertsChris Craik2014-07-241-7/+10
| | | | | bug:15538815 Change-Id: I0dbb54f656a6ae99a87c5734761107e1c2351b65
* Build layer damage bounds for shadowsChris Craik2014-07-231-0/+1
| | | | | | bug:15538815 Change-Id: I703afeb7e31c28002bd1aff9ce448ec8cdc4e70d
* Tessellate on worker threadsChris Craik2014-06-101-5/+5
| | | | | | 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-20/+23
| | | | | | | | | | | | | | | 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
* Shoot the rays to the vertices of the incoming polygon.ztenghui2014-04-241-5/+82
| | | | | | bug:13553955 Change-Id: I4825a49e8eaab969c40f2ee4086f7669c9c6fd29
* Create one hole inside the umbra area to avoid overdraw.ztenghui2014-03-171-16/+26
| | | | | | bug:13439450 Change-Id: I859575196bd5a3029f447883025a6ec3a1f1face
* Improve shadow tessellation performanceChris Craik2014-03-111-28/+26
| | | | | | | | - 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-105/+35
| | | | | | | | Also draw the umbra part as triangle fans instead of zig zag fashion. b/12840179 Change-Id: Iaa5d15e77351acdd71f076bd8f9bb2d4d2b92faf
* Fix Clang warnings/errorsChris Craik2014-01-021-3/+5
| | | | | | | Fix several build warnings (struct != class, int != size_t) and errors (variable leng non-POD arrays). Change-Id: I70b4e784365514303d8954bfcb1f39d7c22c1321
* Calculate and show Ambient shadow.ztenghui2013-12-131-0/+306
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