summaryrefslogtreecommitdiffstats
path: root/libs/hwui/PathTessellator.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Tweak the threshold for conic path quads computation.ztenghui2015-05-291-25/+35
| | | | | | | | We still want it to be related to the threshold for bezier generation. b/19903239 Change-Id: Ifdce32f1c28ecea9eac98d02c73afa948341fc7d
* Merge "Fix round cap approximation to understand scale" into mnc-devChris Craik2015-05-281-5/+3
|\
| * Fix round cap approximation to understand scaleChris Craik2015-05-271-5/+3
| | | | | | | | | | bug:19772120 Change-Id: I7b944faed1d1e8d5f55453802da57679217d9d9a
* | Fix buildChris Craik2015-05-281-1/+2
| | | | | | | | Change-Id: I7ee28c474aa821eb598f719723d87416a41537b9
* | Use path intersection instead of saveLayer+mesh to mask projected ripplesChris Craik2015-05-261-2/+51
|/ | | | | | | | | | | | | | | | | | | | | 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
* Add conic support to HWUI path tessellator.Derek Sollenberger2015-03-161-0/+16
| | | | | bug: 19732872 Change-Id: Ic3ae46f746325468ab972c9daf829099165eb596
* Glop ColorFilter & VertexBuffer support, initial enableChris Craik2015-02-061-0/+3
| | | | | | | Enables Glop rendering for supported Rects and VertexBuffers Also removes unused Query object Change-Id: Ibe227bc362685a153159f75077664f0947764e06
* Cleanup various clang warnings, use unique_ptrs in several placesChris Craik2014-12-231-3/+0
| | | | Change-Id: I347904b25e51fcc7de14b1e72f1acd0f6ba26f3f
* resolved conflicts for merge of 5e6cf242 to lmp-mr1-dev-plus-aospDan Albert2014-11-121-3/+3
|\ | | | | | | Change-Id: If21bd328a5c8ea3474abfe624e910d4830c72dc9
| * Move frameworks/base over to libc++.Dan Albert2014-11-121-3/+3
| | | | | | | | | | Bug: 15193147 Change-Id: I96109d2d383f0c8a4aaa611f29fcf887afb3c69e
* | resolved conflicts for merge of 1d03b816 to lmp-mr1-dev-plus-aospAndreas Gampe2014-11-101-2/+0
|\ \ | |/ | | | | Change-Id: Ib673768fe5fc03615626ef4b10590e5317f22172
| * Frameworks/base: Wall Werror in libs/hwuiAndreas Gampe2014-11-101-2/+0
| | | | | | | | | | | | Turn on -Wall -Werror in libs/hwui. Fix errors. Change-Id: I74962d08c889712dacbd0d86d6760fc10802b6bd
* | Make points drawn with default paint visibleRob Tsuk2014-11-041-1/+1
|/ | | | | | | When no stroke width is set, use 0.5 instead of 0.25 to make sure the resulting rectangle spans at least one pixel. Bug: 15455111 Change-Id: Id0a4b6d014c542ffc98b13a032f88ae0ce69b3a1
* Fix tessellation bounds computationChris Craik2014-09-081-5/+12
| | | | | | | | | | bug:17401066 Now correctly accounts for scale, both in hairline case (where scale needs to be accounted for), and in standard case (where scale shouldn't be applied, since bounds are in local space) Change-Id: I597a20834dce42ddb741b46e4c1a4f3169a48ccc
* Cap scales used for tessellation with minimum and maximumChris Craik2014-08-071-23/+14
| | | | | bug:15615144 Change-Id: I3e833864af3a7b34e444bd13db34b6c90496a8b6
* Fix ALL compile warningsJohn Reck2014-07-241-53/+44
| | | | | | All warnings/errors fixed for GCC & Clang Change-Id: I2ece3a136a5ae97a9acc3069537ed986238b5fd3
* Build layer damage bounds for shadowsChris Craik2014-07-231-13/+3
| | | | | | bug:15538815 Change-Id: I703afeb7e31c28002bd1aff9ce448ec8cdc4e70d
* Add abort logging for huge scales and tessellation recursion depthChris Craik2014-06-171-11/+27
| | | | | bug:15615144 Change-Id: I275732eb97f9d5179beed23eecd2ee3cc7112e10
* Limit path approximation recursion depthChris Craik2014-06-111-8/+11
| | | | | bug:15369119 Change-Id: I6f009f5e8790129e1aa8a51e1fc6cdd1415dd617
* Tessellate on worker threadsChris Craik2014-06-101-29/+35
| | | | | | Tessellate and cache (where possible) shadow and round rect tessellation tasks. Change-Id: I2cfda8e11d83d51ea74af871235cf26e8f831d40
* Update tessellation tracingChris Craik2014-03-071-1/+1
| | | | Change-Id: I6c73f2467817412d9936dde217df9938a6884003
* Use path outlines to define shadow shapesChris Craik2014-01-261-14/+24
| | | | | | | | | 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
* Use const where possible for drawing parametersChris Craik2014-01-031-2/+2
| | | | | | They should never be modified by a Renderer, only read and copied. Change-Id: I9d8d55dca19115ee9dfeb2bb3f092ba2fb327cd4
* Fix Clang warnings/errorsChris Craik2014-01-021-2/+2
| | | | | | | Fix several build warnings (struct != class, int != size_t) and errors (variable leng non-POD arrays). Change-Id: I70b4e784365514303d8954bfcb1f39d7c22c1321
* Use const access to snapshot from OpenGLRendererChris Craik2014-01-021-9/+9
| | | | | | Additionally, move clipping methods to StatefulBaseRenderer Change-Id: Iff232bf16fc1ad3b7d89493da6d8915db7bc5e4f
* Use vertex assignment instead of manual copyChris Craik2013-12-161-36/+28
| | | | Change-Id: I36c806e3370abca61e5bf5064f0f1a776a9ce487
* Clean up quick rejection, especially surrounding points + lines.Chris Craik2013-11-221-10/+28
| | | | | | | | | | | | | | | | | | | | bug:4351353 quickReject and quickRejectNoScissor have been renamed and refactored: - to make the scissor side effect clear and explicit - dangerous methods no longer public - to make the simple quick reject check logic const - simple quick reject is now conservative This CL also fixes several issues with line and point quickRejection - sub-pixel and hairline lines are much less likely to be incorrectly rejected, especially at small canvas scale. Additionally, alpha modulation for AA points < 1px in size is now correct, dumplicating SW behavior (similar to lines and stroked shapes work). Change-Id: Ibb0710c721b9fb415d05acf54dd3d2b4d602156a
* Replace float arrays with readable namesRomain Guy2013-08-151-71/+71
| | | | Change-Id: I32a8be560b60a4ac5cbee2fec4574b2c5df9f825
* Add tessellation path for pointsChris Craik2013-05-141-44/+101
| | | | | | | | | | | | | | | | | | bug:4351353 bug:8185479 Point tessellation is similar to line special case, except that we only tessellate one point (as a circle or rect) and duplicate it across other instances. Additionally: Fixes square caps for AA=false lines Cleanup in CanvasCompare, disabling interpolation on zoomed-in comparison view Change-Id: I0756fcc4b20f77878fed0d8057297c80e82ed9dc
* Account for hairlines in quick rejection logicChris Craik2013-04-031-0/+1
| | | | | bug:8531373 Change-Id: I35444014f23fc61da687694fccc0d13bce718793
* Correct sub-hairline tessellation thresholdChris Craik2013-02-271-1/+1
| | | | Change-Id: Id868d41a36db5b4daa762d84b6329f9c31916bce
* Add cap tessellation supportChris Craik2013-02-061-0/+970
bug:7117155 bug:8114304 Currently used for lines (with and without AA) and arcs with useCenter=false Also removes 0.375, 0.375 offset for AA lines Change-Id: Ic8ace418739344db1e2814edf65253fe7448b0b0