summaryrefslogtreecommitdiffstats
path: root/libs/hwui/PathCache.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Work-around for a Skia rasterization bugRomain Guy2012-04-271-1/+6
| | | | | | | | | Bug #6411457 Skia does not generates the bottom right pixel of a rect when drawing a rect as an SkPath into an alpha8 bitmap. Change-Id: Ifb5286ae67745c9e44ee387b6d6ad607a9a2e6ce
* Only recreate path textures when necessaryRomain Guy2012-02-231-0/+5
| | | | | | | | | | | | | | When a drawPath command is recorded in a display list, a copy of the source path is made to preserve against possible modifications of the said source path. Copies are discarded when a display list is cleared, which usually happens on invalidate(). This means that even if a path is never modified, the texture generated to draw it on screen is destroyed every time an invalidate() is issued. This change fixes this problem by introducing a reference to the source path in the copy. If both the copy and the source path have the same genID, they are the same path and can share the same texture. Change-Id: I34849311c183e06336a1391d2d1568a087f973f6
* Record possible clip rejects when recording display listsRomain Guy2012-02-171-0/+20
| | | | | | | | | | | This optimization allows us to quickly skip operations that lie entirely outside of the known bounds of a display list. Because of ViewGroup.setClipChildren, we must keep the operations recorded in the display list. setClipChildren(false) is however a very uncommon operation and we will therefore often benefit from this new optimization. Change-Id: I0942c864e55298e6dccd9977d15adefbce3ba3ad
* Clean up GenerationCache.Jeff Brown2011-11-111-2/+2
| | | | | | | | | | | Use const references to keys and values where appropriate to avoid copying them unnecessarily. Deleted some dead code. Simplified a few pieces that were doing unnecessary redundant work. Change-Id: Ib2145b7094a40db2d679e05dafe050fe1e87b846
* Remove the right entries from the cache when a GC happens.Romain Guy2011-02-241-1/+3
| | | | Change-Id: I4649b18c4721a5511a404299e771e675c843407b
* Fixes cache misses and extra allocations.Romain Guy2011-02-031-1/+0
| | | | | | Bug #3421454 Change-Id: If4d5c960a7e4c581a9d213073e658284b4e1c497
* Remove unnecessary code.Romain Guy2011-01-201-182/+3
| | | | Change-Id: I83eba3406c26a4028af08b4d4c95ecd02803e75a
* Solve translucency issue when drawing paths.Romain Guy2011-01-111-4/+10
| | | | Change-Id: I68ae0e2ccddaca2f76b5b2dd3e3cf1277fddaad6
* Free resources only from the GL context thread.Romain Guy2010-11-111-19/+25
| | | | | | | | | | 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
* Add new runtime debug flags.Romain Guy2010-11-101-0/+8
| | | | Change-Id: I07955de166a89b5053c6c13f250bb3e2936ca86e
* Correctly remove unused paths from the cache.Romain Guy2010-11-091-4/+15
| | | | Change-Id: I41d9334dcd9871634037344ab49bf69383498161
* Fix possible rendering issue when drawing a path.Romain Guy2010-11-041-1/+7
| | | | Change-Id: I25f2e609589f0dd9294bcf7930de6398c0d7e377
* Make simple paths made of lines work.Romain Guy2010-09-301-2/+2
| | | | | | Bug #3041098 Change-Id: Ife9c3f01ded10e2bb35b1cdf1a54734d8347fee4
* A Path can exist in several cache entries.Romain Guy2010-09-091-1/+0
| | | | Change-Id: I742f7425d2b6bef753ed3e04fb39ebb103b2dc00
* Purge Skia objects from GL caches as needed.Romain Guy2010-09-081-0/+27
| | | | Change-Id: I754c671cf790ad5ae8bf047ad328034217da4ecc
* Use only one GL context per process, share chaches.Romain Guy2010-08-241-4/+22
| | | | Change-Id: Ieabaa25338d2f4b8d4fd90e7401ad6e7452eae11
* Add drop shadows.Romain Guy2010-08-131-1/+1
| | | | Change-Id: Ic6a72409d4785968d1fbdff229f17ee5c00b240b
* Fix tons of bugs and add new text rendering support.Romain Guy2010-08-101-1/+2
| | | | Change-Id: I326c66b10784006f6df2f12d38e120cef94cd0d7
* Enforce maximum texture size.Romain Guy2010-08-071-2/+15
| | | | | | | | | | | | When an app tries to render a bitmap or path larger than the GPU's maximum texture size, the drawing command is ignored and a warning is logged. This change also makes texture drawing more robust by catching potential errors during texture creation. This change also fixes a crash in the FontRenderer. The destructor would sometimes try to free an uninitialized array. Change-Id: I95ae0939c52192d97b340aa02417bf6d0c962c57
* Automatically cleanup textures that don't fit in the cache.Romain Guy2010-08-061-1/+2
| | | | Change-Id: I4f29ed96ea11118b391fb957e1e4d1b8fcef1537
* Add support for paths.Romain Guy2010-08-051-0/+165
Rendering is implementing by rasterizing the paths into A8 textures. This cna be extremely inefficient if the path changes often. Change-Id: I609343f304ae38e0d319359403ee73b9b5b3c93a