summaryrefslogtreecommitdiffstats
path: root/libs/hwui/utils
Commit message (Collapse)AuthorAgeFilesLines
* Glop drawBitmaps, drawPatchesChris Craik2015-03-031-0/+12
| | | | Change-Id: I3f1cd3f47f97d2e0c9b9d153732e26ee0b1c58c2
* Glop mesh reorg, support for drawBitmapMeshChris Craik2015-02-261-0/+6
| | | | Change-Id: Iaf5550bdd93da93e59a5b838234ab5612e067387
* C++11 style fixupsJohn Reck2015-02-201-7/+7
| | | | Change-Id: I356d02338820bfef41a9e278c88dafc17cfe1cf9
* Initial attempt at jank-tracking stat collectionJohn Reck2015-02-202-0/+79
| | | | | | Is a bit naive, perhaps overly aggressive, but sorta works Change-Id: I01a774e00dbe681439c02557d9728ae43c45ce50
* Glop SkiaShader supportChris Craik2015-02-171-0/+2
| | | | Change-Id: I894a0b62701bd02367ab970813e4c332147351a2
* Glop Bitmap and RoundRect clipping supportChris Craik2015-02-122-0/+11
| | | | Change-Id: I4577546a5d2e5f084cc03f39a89db9231b8111ee
* Glop ColorFilter & VertexBuffer support, initial enableChris Craik2015-02-061-0/+7
| | | | | | | Enables Glop rendering for supported Rects and VertexBuffers Also removes unused Query object Change-Id: Ibe227bc362685a153159f75077664f0947764e06
* GlopBuilder, and test app refactorChris Craik2015-02-041-0/+3
| | | | Change-Id: I2cd299ccf178007fd5f83bab6c3448f03aec7843
* Move scissor state to RenderStateChris Craik2015-01-271-2/+2
| | | | Change-Id: I1227a3886fb24e4d9fad79fca469794f06cfb15e
* Clipping performance improvementsRob Tsuk2015-01-141-0/+2
| | | | | | | | | | | | Create a ClipArea class to handle tracking clip regions. This class can select the most efficient implementation depending on the types of clipping presented. ClipArea re-used the rectangle and region-based clipping implementations as well as adding a "list of rotated rectangles" approach that is more efficient for rotated views with children. Change-Id: I2133761a2462ebc0852b394220e265974b3086f0
* Add overrides and switch to nullptr keyword for all filesChris Craik2015-01-052-4/+4
| | | | | | | Adds remaining missing overrides and nullptr usages, missed due to an extreme failure in tool usage. Change-Id: I56abd72975a3999ad13330003c348db40f59aebf
* Make DisplayListRenderer inherit from Canvas, merge JNITom Hudson2015-01-051-0/+64
| | | | | | | | | | | | | Incrementally unify the upper layers for Skia and HWUI. Remove redundant code from GLES20Canvas.java; instead use inherited mNativeCanvasWrapper and superclass method definitions. Moves some unrelated SkPaint utility functions from Renderer to new utils/PaintUtils. bug: 15672762 Change-Id: I4ddd4214b8e9eeb95289d054ef423f2542bb5fa5
* Add overrides and switch to nullptr keywordChris Craik2014-12-222-8/+8
| | | | | | | | Changes generated with clang-modernize. Additionally, fixed some struct-vs-class usage to make clang happy. Change-Id: Ic6ef2427401ff1e794d26f21f7b44868fc75fb72
* Improve logging around performance critical eventsChris Craik2014-11-191-0/+56
| | | | | | | | | | bug:17702227 Add details useful to developers (such as layer size/View name), and switch away from logging implementation names/details, since they are generally not relevant to developers. Change-Id: Iee605d182f241450f7e75a6d0c283d51fa1312f5
* Correctly detect the wrong Z value for the lightztenghui2014-08-261-0/+5
| | | | | | b/17221975 Change-Id: I2b46da95ad12ca5260d7fe9514a75558b6b6393b
* Improve the spot shadow computation.ztenghui2014-08-221-2/+4
| | | | | | | | | | | | | | | | 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
* Cap scales used for tessellation with minimum and maximumChris Craik2014-08-071-0/+17
| | | | | bug:15615144 Change-Id: I3e833864af3a7b34e444bd13db34b6c90496a8b6
* clamp & round alphaJohn Reck2014-08-061-0/+11
| | | | | | Bug: 16842521 Change-Id: Ifd93f40b5751746835c9d56bb3c2b5ba700bdccc
* Fix ALL compile warningsJohn Reck2014-07-241-4/+4
| | | | | | All warnings/errors fixed for GCC & Clang Change-Id: I2ece3a136a5ae97a9acc3069537ed986238b5fd3
* am b1c76a1a: Merge "Tessellate on worker threads" into lmp-preview-devChris Craik2014-06-102-0/+11
|\ | | | | | | | | * commit 'b1c76a1abcfb2f33e12fef37ec71d20724863b5e': Tessellate on worker threads
| * Tessellate on worker threadsChris Craik2014-06-102-0/+11
| | | | | | | | | | | | Tessellate and cache (where possible) shadow and round rect tessellation tasks. Change-Id: I2cfda8e11d83d51ea74af871235cf26e8f831d40
* | Pass the radius as a float deeper into HWUI allowing RS to generate more ↵Derek Sollenberger2014-05-212-1/+17
|/ | | | | | | | | accurate blurs. Also, when converting radius to an integer value snap to the appropriate integer boundaries. bug: 10650594 Change-Id: Icca4bc17d88162bbcbc6035d4f81bd1d98a4de2d
* Round rect outline clippingChris Craik2014-05-151-0/+4
| | | | Change-Id: Iee9cf4f719f6f1917507b69189ad114fa365917b
* Add TimeInterpolator support to RNAJohn Reck2014-05-121-0/+8
| | | | | | Bug: 14678626 Change-Id: I6554e7fcd42c49fac3618ca792083bb68e358f55
* Refactor VirtualLightRefBase & JNIJohn Reck2014-05-091-34/+0
| | | | Change-Id: I8e244e7109e59d5be96871b23bb9b1201c7f9eaa
* Add logging utility methodsChris Craik2014-05-083-1/+88
| | | | Change-Id: I0f316830dcc0bbf438292a6d0fbe9f8154368500
* Merge "Avoid caching shadow properties in Java & HWUI."Derek Sollenberger2014-05-082-7/+32
|\
| * Avoid caching shadow properties in Java & HWUI.Derek Sollenberger2014-05-072-7/+32
| | | | | | | | | | bug: 10650594 Change-Id: I6f57df002710bb0567ed7e53fc0bfe96cfd504b8
* | Add CanvasProperty for drawCircleJohn Reck2014-05-021-0/+25
|/ | | | Change-Id: Icbcc030f5033d2094e567d7c519b9d672f2aac1c
* Add elevation, Z properties to ViewChris Craik2014-04-281-0/+4
| | | | Change-Id: I3dd3b683a66e248a0fdf2ca69d1e962615b0daf9
* Fix translationZ matrix computationChris Craik2014-04-231-0/+37
| | | | | | | | | | | | | | bug:14259972 Ensure that translationZ is applied for true3dTransform property transformations, even if the node doesn't have any other transformation properties set. Additionally, use fuzzy compare for translationZ, similar to rotationX/Y, since they're expenive to leave set in rounding error cases. Change-Id: Idafa4423cc7751a8f433237b1f576aa7abb74f6e
* Refcount RenderNodeJohn Reck2014-04-071-0/+34
| | | | Change-Id: I7a86db8acc2b78ef33d987a43a119f5933d7d752
* Fix TinyHashMap to use generic hash_type instead of hash_tAshok Bhat2014-02-071-4/+2
| | | | | | | | | | | | | TinyHashMap used hash_t(key) to generate hashcode. This would not work for 64-bit pointers as hash_t is declared as an uint32_t. Replaced the hash_t(key) call to more generic android::hash_type(key). This function is a template function declared in TypeHelpers.h and has a version available for all data types including pointers. Change-Id: I612cf18b49ca7c30b63f9d6938df68fed7d80d08 Signed-off-by: Ashok Bhat <ashok.bhat@arm.com>
* Draw Operation mergingChris Craik2013-04-151-0/+72
| | | | | | | | | | | | | | | | | | Merge simple bitmap draw operations and text operations to avoid issuing individual gl draws for each operation. Merging other ops to be done eventually. The methods are different - the bitmap merging generates a single mesh for reused, unclipped images (esp. repeated images in a listview) The text approach queries just defers the normal font rendering until the last drawText in the sequence that can share the same shader. Patches are sorted and merged, but don't yet have a multiDraw implementation. For now, the pretending-to-merge gives better sorting behavior by keeping similar patches together. Change-Id: Ic300cdab0a53814cf7b09c58bf54b1bf0f58ccd6
* Stop worker threads on memory trim & fix bad pointer accessRomain Guy2013-03-201-0/+58
| | | | Change-Id: I6fe7e31aeb6dd41fa65ab952caed97bc2da510d7
* Move blur code from FontRenderer to utils/Blur.cppRomain Guy2013-03-082-0/+189
| | | | Change-Id: I2cebbfbcb722ed4b37e54ffbf8b53bb92ad0c964
* Remove obsolete header fileRomain Guy2013-02-151-36/+0
| | | | | | We now use the same mechanism to compare keys everywhere in libhwui. Change-Id: I8b3cb25b13f4f38eb6f12aed0356f796a773617c
* Revert "Revert "Use RenderScript for large text blurs""Chris Craik2013-02-131-0/+42
| | | | | | This reverts commit bf5703e52e3304246cbf0e73f6976f7d7312d238. Change-Id: Ic6f991277dec9e80a6fed93db91499726b30ab2a
* Revert "Use RenderScript for large text blurs"Chris Craik2013-02-131-42/+0
| | | | | | This reverts commit 3f76e65d251ead65fe8ff98e3bd4c7623fbaac07 Change-Id: Ia81cd485e5ca696bb284c419dc8a1d2f3247100e
* Use RenderScript for large text blursChris Craik2013-02-121-0/+42
| | | | | | Still fall back to simple path for small tasks Change-Id: I492f1b3f7d6fec1738f3e45cbfb15864bd23a392
* Sanitize display list propertiesRomain Guy2012-05-181-4/+0
| | | | | | | | | | | The comparisons used in the various properties setters could fail badly in some specific conditions. The scale properties in particular did not use the same comparisons. This change also clamps alpha to the 0..1 range which avoids overflow issues with lowp registers in GLSL computations. Change-Id: I3e73b584e907a14e2c33d0865ca0d2d4d5bff31d
* Make LTE_FLOAT a strict weak order.Jeff Brown2011-09-161-1/+1
| | | | | | | | | | | | | | | | | Bug: 5327776 Currently LTE_FLOAT isn't even a valid partial order, let alone a strict weak order as needed by binary search. Consequently, KeyedVectors with keys whose types have operator< using LTE_FLOAT sometimes find the wrong values! This problem affects several graphics caches including the TextLayoutCache. (This is still not a total order because NaNs are not comparable but hopefully we don't ever search for NaNs this way!) Change-Id: Ic447a34c7d87f681ee81538f22a0937a039072dd
* Add TextLayout CacheFabrice Di Meglio2011-03-021-245/+0
| | | | | | | | - use GenerationCache for caching - move GenerationCache.h from libs/hwui/utils to include/utils - add #define for cache activation / deactivation Change-Id: Ifaf519f0b5e33b087a453e4aa6430162d8438f20
* Free resources only from the GL context thread.Romain Guy2010-11-111-1/+1
| | | | | | | | | | Bug #3179882 Resources were freed following garbage collections on a worker thread. This worker thread had no EGL context, which would cause the renderer to incorrectly assume that the memory was liberated. Change-Id: Ifdb51f94ddf42641e8654522787bfac532976c7c
* Optimize FBO drawing with regions.Romain Guy2010-11-024-12/+12
| | | | | | | | | This optimization is currently disabled until Launcher is modified to take advantage of it. The optimization can be enabled by turning on RENDER_LAYERS_AS_REGIONS in the OpenGLRenderer.h file. Change-Id: I2fdf59d0f4dc690a3d7f712173ab8db3848b27b1
* Small cleanup.Romain Guy2010-10-181-2/+2
| | | | Change-Id: I0e5b9154a2d93af793d62f462d68cb7c6c3f6d75
* Use VBOs to render most geometries.Romain Guy2010-10-181-4/+4
| | | | Change-Id: I4360dc4fe5693ab425450c107282b2c22db4dca7
* Optimize 9patch rendering.Romain Guy2010-10-121-0/+40
| | | | | | | This change detects empty quads in 9patches and removes them from the mesh to avoid unnecessary blending. Change-Id: I4500566fb4cb6845d64dcb59b522c0be7a0ec704
* Move GenerationCache to the utils directory.Romain Guy2010-10-081-0/+245
| | | | Change-Id: I210ffa8f1d76a102bb7d971c649c20a74d03fbe6
* Better cache for layers, reduce memory usage and increase framerate.Romain Guy2010-10-083-0/+433
Change-Id: I5ff864a361db4791bd5ff6be716f7ce692ef572d