summaryrefslogtreecommitdiffstats
path: root/libs/hwui/DisplayListRenderer.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Fix parameter order evaluation issue.Romain Guy2011-06-281-4/+13
| | | | | | This problem was affecting Android builds with gcc/x86. Change-Id: Ibb7978413c89bd1ac09f0d1ea78f5cb4fe61f6ed
* Fix another memory leak in OpenGLRendererRomain Guy2011-06-221-6/+25
| | | | Change-Id: I23ed56891452a05cf3ca13f6919c4fef90d5ff4e
* Add support to OpenGLRendere to draw BiDi text.Romain Guy2011-06-011-0/+1
| | | | | | Bug #4350336 Change-Id: I1cf31693f7ca9653fa3a41b5b91c27ef288d680f
* Add ability for hierarchyviewer to output displaylist infoChet Haase2011-05-051-0/+325
| | | | | | | | | Clicking on a node in hierarchyviewer1 and hierarchyviewer2 and then clicking the new "Dump DisplayList" button will cause the display list for the selected node (including its children) to be output into logcat. Change-Id: Iad05f5f6cca0f8b465dccd962b501dc18fe6e053
* Revert "Add ability for hierarchyviewer to output displaylist info"Chet Haase2011-05-041-325/+0
| | | | This reverts commit b2a4b52e8d5e499d33e2765e8c47851bf0266299.
* Add ability for hierarchyviewer to output displaylist infoChet Haase2011-05-041-0/+325
| | | | | | | | | Clicking on a node in hierarchyviewer1 and hierarchyviewer2 and then clicking the new "Dump DisplayList" button will cause the display list for the selected node (including its children) to be output into logcat. Change-Id: Id32f62569ad1ab4d533bc62987f3a7390c1bb4e6
* Add logging of graphics acceleration info to bugreportsChet Haase2011-04-011-0/+21
| | | | Change-Id: I9fa4cda6ccf92df9d1c644ccdc0e7274a30106e0
* When deleting a path, remove it from the path cache.Romain Guy2011-03-241-1/+3
| | | | | | Bug #4170585 Change-Id: I6be4d251ceb908c89afe49c2ff85c05f36c73b70
* Add support for drawPoint() and drawPoints().Romain Guy2011-03-211-0/+14
| | | | Change-Id: I01bef50c08ec3160f8d40dc060b2cf6c2e4d7639
* Fix paths rendering issues.Romain Guy2011-03-181-17/+0
| | | | | | See ApiDemos, PathEffect and PathFillTypes. Change-Id: I9f9593c1da33d0d013b5b89c86bc5bd71128a192
* Fix rendering artifact in edge fades.Romain Guy2011-03-141-4/+9
| | | | | | | | | | | | | | | | | | Bug #4092053 The problem always existed but was made visible by partial invalidation. When saving a layer, the renderer would try to postpone glClear() operations until the next drawing command. This however does not work since the clip might have changed. The fix is rather simple and simply gets rid of this "optimization" (that turned out to be usless anyway given how View issues saveLayer() calls.) This change also fixes an issue with gradients (color stops where not properly computed when using a null stops array) and optimizes display lists rendering (quickly rejects larger portions of the tree to avoid executing unnecessary code.) Change-Id: I0f5b5f6e1220d41a09cc2fa84c212b0b4afd9c46
* Add support for partial invalidates in WebViewRomain Guy2011-03-071-5/+8
| | | | | | | | | | | | Bug #3461349 This change also fixes two bugs that prevented partial invalidates from working with other views. Both bugs were in our EGL implementation: they were preventing the caller from comparing the current context/surface with another context/surface. This was causing HardwareRenderer to always redraw the entire screen. Change-Id: I33e096b304d4a0b7e6c8f92930f71d2ece9bebf5
* Fix crash when Paths are GCd in hw accelerated appsChet Haase2011-02-041-0/+17
| | | | | | | | | | | | | | | | | | A recent change to optimize path rendering didn't account for the destruction of native objects by the VM finalizer. We may be done with the Java level version before we're done with the native structure that's used by the display list. For example, a drawing method on a View that creates a temporary path to render into the canvas will implicitly create a native structure that is put onto the GL display list. That temporary path may go away, but the native version should stick around as long as the display list does. The fix is to refcount the original native version of the path and only delete it when the refcoutn reaches zero (which means that it is no longer needed by any display list). This is a similar mechanism used for bitmaps and shaders. Change-Id: I4de1047415066d425d1c689aa60827f97729b470
* Fix leak in reused display listsChet Haase2011-02-031-2/+11
| | | | Change-Id: I32a9c41abf8f8cbcaaaa6fcc82d296800014a1b2
* Fixes cache misses and extra allocations.Romain Guy2011-02-031-87/+13
| | | | | | Bug #3421454 Change-Id: If4d5c960a7e4c581a9d213073e658284b4e1c497
* Remove unused APIRomain Guy2011-01-261-25/+1
| | | | Change-Id: I1714fd82a64b752f0350ef4ef9179ce19e089c6a
* Fix display list support for shapes.Romain Guy2011-01-241-1/+1
| | | | Change-Id: I8b4c9e9ec36266a83c0a53ba3fb6e45d61bbd6d9
* Enable partial invalidates when rendering with OpenGL.Romain Guy2011-01-241-1/+2
| | | | Change-Id: Ie8be06c4776b815e8737753eb8003b4fd8936130
* Use optimized display lists for all hwaccelerated renderingChet Haase2011-01-241-41/+205
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously, display lists were used only if hardware acceleration was enabled for an application (hardwareAccelerated=true) *and* if setDrawingCacheEnabled(true) was called. This change makes the framework use display lists for all views in an application if hardware acceleration is enabled. In addition, display list renderering has been optimized so that any view's recreation of its own display list (which is necessary whenever the visuals of that view change) will not cause any other display list in its parent hierarchy to change. Instead, when there are any visual changes in the hierarchy, only those views which need to have new display list content will recreate their display lists. This optimization works by caching display list references in each parent display list (so the container of some child will refer to its child's display list by a reference to the child's display list). Then when a view needs to recreate its display list, it will do so inside the same display list object. This will cause the content to get refreshed, but not the reference to that content. Then when the view hierarchy is redrawn, it will automatically pick up the new content from the old reference. This optimization will not necessarily improve performance when applications need to update the entire view hierarchy or redraw the entire screen, but it does show significant improvements when redrawing only a portion of the screen, especially when the regions that are not refreshed are complex and time- consuming to redraw. Change-Id: I68d21cac6a224a05703070ec85253220cb001eb4
* Fix bitmap meshes to work in display lists.Romain Guy2011-01-231-0/+1
| | | | Change-Id: Ie226d049840942d9ad9cf58e0c19132f49d62a75
* Add support for arcs.Romain Guy2011-01-231-0/+15
| | | | Change-Id: I96c057ff4eb1b464b03f132da0b85333777bee4f
* Add support for ovals and stroked rectangles.Romain Guy2011-01-231-0/+12
| | | | Change-Id: I1292e241386763c82e6622c8f7ed90b0f5b7bd4f
* Collapse sucessive calls to restoreToCount() in display lists.Romain Guy2011-01-231-2/+7
| | | | Change-Id: Icb3d3dc2c579436d375269a9cb0b821a931c5a79
* Fix potential crash in display lists.Romain Guy2011-01-231-0/+1
| | | | Change-Id: I868821cbe69f7e71d93701b9cdb528a2ef796cd4
* Add support for drawBitmapMesh().Romain Guy2011-01-201-0/+30
| | | | Change-Id: Ic77f9c534bb90dc7b9458299544bd50b8b6ae6a5
* Add rounded rects and circles support to OpenGLRenderer.Romain Guy2011-01-191-0/+26
| | | | Change-Id: I6cedf2b495d58de7c0437096809fa9e4518a1b8c
* Add support for skew()Romain Guy2011-01-181-0/+10
| | | | Change-Id: Ia3a9a867f74fd78b61f75179e3788fdc2f0cacd0
* Don't crash Launcher on config change.Romain Guy2011-01-141-4/+10
| | | | Change-Id: Ibbbd7146c5ff69e9639b433f39041053654d808c
* Copy shaders when recording them in display lists.Romain Guy2011-01-141-14/+8
| | | | Change-Id: I3f22dd35f1e31c9e5102955d76548098b7b0cd8d
* Add debug logs for display lists.Romain Guy2011-01-131-4/+50
| | | | Change-Id: I7bae8fd96e9eccb51f29f73e4069b4d3e6bdbdd7
* Cleanup implementation of hardware layers.Romain Guy2011-01-131-8/+4
| | | | | | | | | | The new implementation relies on OpenGLRenderer's existing layer code instead of duplicating it. The new code is much cleaner, with simpler and better APIs and allows tracking of drawn regions inside layers. Region tracking is not yet enabled but this will be done in a future CL. Change-Id: Ie826121a2227de8252c77b992a61218defea5143
* Better backend for hardware layers.Romain Guy2011-01-111-0/+15
| | | | | | | | With this new backend, a hardware layer is only recreated when its associated view is udpated. This offers fast composition in GL and fast update of the layer in GL as well. Change-Id: I97c43a612f5955c6bf1c192c8ca4af10fdf1d076
* Reuse of native display list objectsChet Haase2011-01-061-33/+47
| | | | Change-Id: Ia4553e23930ad20e56c11faa7809be788a1ad4bb
* Free resources only from the GL context thread.Romain Guy2010-11-111-2/+2
| | | | | | | | | | 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
* Correctly remove unused paths from the cache.Romain Guy2010-11-091-2/+9
| | | | Change-Id: I41d9334dcd9871634037344ab49bf69383498161
* Support nested display lists.Romain Guy2010-11-081-0/+9
| | | | Change-Id: I3815a2832fc0f722c668ba8f51c5f177edb77c94
* Optimize FBO drawing with regions.Romain Guy2010-11-021-1/+16
| | | | | | | | | 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
* Optimizing ColorFilter in display listsChet Haase2010-10-261-7/+3
| | | | Change-Id: Ie4d5e5b0bc45e0ce47bba144049303c270762e54
* DisplayList optimizations and fixes.Chet Haase2010-10-261-36/+30
| | | | | | | | We now use a copy of SkPaint objects to avoid having it changed from under us. We reuse copies that have not changed. We also copy the SkMatrix every time to avoid the same problem. Change-Id: If3fd80698f2d43ea16d23302063e0fd8d0549027
* Optimizing display lists by referencing pointers to resources instead of ↵Chet Haase2010-10-211-111/+76
| | | | | | copying them Change-Id: I81ad3551d74aa1e5bb64d69e33d2eb29a6c1eb6a
* Optimize 9patch rendering.Romain Guy2010-10-121-4/+8
| | | | | | | This change detects empty quads in 9patches and removes them from the mesh to avoid unnecessary blending. Change-Id: I4500566fb4cb6845d64dcb59b522c0be7a0ec704
* Don't clear the framebuffer when not needed.Romain Guy2010-10-061-1/+1
|
* Apply bilinear filtering to text.Romain Guy2010-10-011-0/+56
| | | | Change-Id: I2c81ad657ee2a11a2139e0b11ae3749db54c0749
* Add display lists caching.Romain Guy2010-09-291-37/+263
| | | | Change-Id: Iac3a248a81ed8cb076a83ef9d186b8ebba685b4c
* Adding display lists to the GL renderer (checkpoint.)Romain Guy2010-09-261-0/+302
Change-Id: Iaa49757600a53b39369dbb23f8c3feab282518e6