summaryrefslogtreecommitdiffstats
path: root/libs/hwui/DisplayListRenderer.h
Commit message (Collapse)AuthorAgeFilesLines
* Add ability for hierarchyviewer to output displaylist infoChet Haase2011-05-051-0/+2
| | | | | | | | | 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-2/+0
| | | | This reverts commit b2a4b52e8d5e499d33e2765e8c47851bf0266299.
* Add ability for hierarchyviewer to output displaylist infoChet Haase2011-05-041-0/+2
| | | | | | | | | 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/+3
| | | | Change-Id: I9fa4cda6ccf92df9d1c644ccdc0e7274a30106e0
* Add support for drawPoint() and drawPoints().Romain Guy2011-03-211-0/+2
| | | | Change-Id: I01bef50c08ec3160f8d40dc060b2cf6c2e4d7639
* Fix paths rendering issues.Romain Guy2011-03-181-15/+2
| | | | | | See ApiDemos, PathEffect and PathFillTypes. Change-Id: I9f9593c1da33d0d013b5b89c86bc5bd71128a192
* Fix rendering artifact in edge fades.Romain Guy2011-03-141-1/+11
| | | | | | | | | | | | | | | | | | 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-3/+3
| | | | | | | | | | | | 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
* Skia Merge (revision 808)Derek Sollenberger2011-02-221-1/+0
| | | | | | This is a companion CL to the one found in /external/skia Change-Id: If81748545435cab20a5d8479329ab333cb973e16
* Fix crash when Paths are GCd in hw accelerated appsChet Haase2011-02-041-0/+9
| | | | | | | | | | | | | | | | | | 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-1/+3
| | | | Change-Id: I32a9c41abf8f8cbcaaaa6fcc82d296800014a1b2
* Fixes cache misses and extra allocations.Romain Guy2011-02-031-42/+26
| | | | | | Bug #3421454 Change-Id: If4d5c960a7e4c581a9d213073e658284b4e1c497
* Remove unused APIRomain Guy2011-01-261-5/+1
| | | | Change-Id: I1714fd82a64b752f0350ef4ef9179ce19e089c6a
* Enable partial invalidates when rendering with OpenGL.Romain Guy2011-01-241-2/+2
| | | | Change-Id: Ie8be06c4776b815e8737753eb8003b4fd8936130
* Use optimized display lists for all hwaccelerated renderingChet Haase2011-01-241-2/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* Add support for arcs.Romain Guy2011-01-231-0/+3
| | | | Change-Id: I96c057ff4eb1b464b03f132da0b85333777bee4f
* Add support for ovals and stroked rectangles.Romain Guy2011-01-231-0/+2
| | | | Change-Id: I1292e241386763c82e6622c8f7ed90b0f5b7bd4f
* Collapse sucessive calls to restoreToCount() in display lists.Romain Guy2011-01-231-0/+12
| | | | Change-Id: Icb3d3dc2c579436d375269a9cb0b821a931c5a79
* Add support for drawBitmapMesh().Romain Guy2011-01-201-0/+3
| | | | Change-Id: Ic77f9c534bb90dc7b9458299544bd50b8b6ae6a5
* Add rounded rects and circles support to OpenGLRenderer.Romain Guy2011-01-191-0/+5
| | | | Change-Id: I6cedf2b495d58de7c0437096809fa9e4518a1b8c
* Add support for skew()Romain Guy2011-01-181-0/+2
| | | | Change-Id: Ia3a9a867f74fd78b61f75179e3788fdc2f0cacd0
* Don't crash Launcher on config change.Romain Guy2011-01-141-0/+1
| | | | Change-Id: Ibbbd7146c5ff69e9639b433f39041053654d808c
* Don't delete objects twice...Romain Guy2011-01-141-2/+2
| | | | Change-Id: Ibc67aed098c9300cf45eb46abda1938c418808c3
* Copy shaders when recording them in display lists.Romain Guy2011-01-141-10/+23
| | | | Change-Id: I3f22dd35f1e31c9e5102955d76548098b7b0cd8d
* Add debug logs for display lists.Romain Guy2011-01-131-4/+15
| | | | Change-Id: I7bae8fd96e9eccb51f29f73e4069b4d3e6bdbdd7
* Cleanup implementation of hardware layers.Romain Guy2011-01-131-2/+1
| | | | | | | | | | 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/+3
| | | | | | | | 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-4/+6
| | | | Change-Id: Ia4553e23930ad20e56c11faa7809be788a1ad4bb
* Support nested display lists.Romain Guy2010-11-081-6/+21
| | | | Change-Id: I3815a2832fc0f722c668ba8f51c5f177edb77c94
* Optimize FBO drawing with regions.Romain Guy2010-11-021-3/+6
| | | | | | | | | 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-0/+17
| | | | Change-Id: Ie4d5e5b0bc45e0ce47bba144049303c270762e54
* DisplayList optimizations and fixes.Chet Haase2010-10-261-18/+31
| | | | | | | | 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-52/+53
| | | | | | copying them Change-Id: I81ad3551d74aa1e5bb64d69e33d2eb29a6c1eb6a
* Optimize 9patch rendering.Romain Guy2010-10-121-2/+14
| | | | | | | 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-43/+5
| | | | Change-Id: I2c81ad657ee2a11a2139e0b11ae3749db54c0749
* Add display lists caching.Romain Guy2010-09-291-8/+136
| | | | Change-Id: Iac3a248a81ed8cb076a83ef9d186b8ebba685b4c
* Adding display lists to the GL renderer (checkpoint.)Romain Guy2010-09-261-0/+281
Change-Id: Iaa49757600a53b39369dbb23f8c3feab282518e6