summaryrefslogtreecommitdiffstats
path: root/libs/hwui/OpenGLRenderer.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Skip eglSwapBuffers() call when we do not draw to GLChet Haase2012-05-311-60/+92
| | | | | | | | | | The fix is to track when we issue GL drawing commands, and to skip the call to eglSwapBuffers() when a DisplayList does not result in any actual rendering calls to GL. Issue #6364143 QuickMuni list items and buttons flicker instead of fade Change-Id: I60a02c61a58c32d92481a1e814b4c8a49c6a37a3
* Merge "Avoid crash if onDetachedFromWindow called after destroy" into jb-devChris Craik2012-05-221-2/+1
|\
| * Avoid crash if onDetachedFromWindow called after destroyChris Craik2012-05-221-2/+1
| | | | | | | | | | | | | | | | This also removes the temporary logging from commit f8dafa14e058cdc2f408b59be7911abaceb73c47. bug:6535911 Change-Id: Icf1d0438b349a0e92e7d9cefed57a252eed2b9b0
* | Merge "Add temporary functor lifetime logging" into jb-devChris Craik2012-05-221-1/+2
|\ \ | |/
| * Add temporary functor lifetime loggingChris Craik2012-05-221-1/+2
| | | | | | | | | | | | bug:6535911 Change-Id: Ida5cc1def7fe1fc314317bbc5df50e1465753deb
* | Merge "Ensure we always set the proper blending mode Bug #6527305" into jb-devRomain Guy2012-05-221-9/+16
|\ \ | |/ |/|
| * Ensure we always set the proper blending modeRomain Guy2012-05-221-9/+16
| | | | | | | | | | | | | | | | | | | | Bug #6527305 At the beginning of a frame, always set the blending mode that we think GL is using just in case it was modified by another entity (for instance a WebView functor.) Change-Id: I0e1d0abee8a2abb2b8e7622aed28346e89562c06
* | Don't clear the functor at every drawChris Craik2012-05-221-1/+2
|/ | | | | | | instead clear functors at invoke time, and let them detach themselves as needed. bug:6511995 Change-Id: I9115fcadffb27eb850c1d1773c098d3d2e22788b
* Avoid unnecessary copy when invoking drawBitmap(int[])Romain Guy2012-05-151-0/+4
| | | | | | Bug #6483390 Change-Id: I4d2d725ef50c9401b4bd998b6160128102b40745
* Remove all Dalvik allocations from Cavnas.drawBitmap(int[], ...)Romain Guy2012-05-141-0/+15
| | | | Change-Id: Ie28538a2104d21154fdc78a56525e7403f08287d
* Revert "Add temporary functor lifetime logging"Chris Craik2012-05-081-1/+0
| | | | | bug:6445573 This reverts commit 2fe99801e81bb7c0ff846b536cbb7a12707410ed
* Add temporary functor lifetime loggingChris Craik2012-05-021-0/+1
| | | | | | | | bug:6405861 Note: revert once the above bug is verified fixed Change-Id: Iae04ec6ffa73a2711f96e128d60011bcb5864b5c
* Merge "Decode common GL error codes when logging frame error status" into jb-devRomain Guy2012-04-261-1/+10
|\
| * Decode common GL error codes when logging frame error statusRomain Guy2012-04-261-1/+10
| | | | | | | | Change-Id: I38b333eea53aef20340ce48dfcb0dd30a223f7a8
* | Merge "On new content, attach functor directly" into jb-devJohn Reck2012-04-261-4/+4
|\ \ | |/ |/|
| * On new content, attach functor directlyChris Craik2012-04-251-4/+4
| | | | | | | | | | | | | | | | bug:6323847 depends on external/webkit change: https://android-git.corp.google.com/g/#/c/184314/ Change-Id: Ibdf997f3ee4f5c5c1ea5a320556813f175fea93f
* | Ensure we start every frame in the proper GL stateRomain Guy2012-04-251-0/+8
|/ | | | | | Bug #6345013, #6314960 Change-Id: I6985f7f233eb6a5f9223e9f4be3f323154b5dbf0
* Fix the build before the bot yells at me.Romain Guy2012-04-231-1/+1
| | | | Change-Id: Ice7fe02b684ad662262aae3cac7a48a835ebcad5
* Prevent WebView from crashing when detached from the windowRomain Guy2012-04-231-21/+31
| | | | | | | | | | | | | Bug #6365056 WebView enqueues a functor in the hardware renderer to handle animations and this functor is called at a later time by the hardware renderer. However, the functor was not removed from the queue when WebView was removed from the window. This could cause the hardware renderer to attempt to execute an invalid functor and lead to a crash. Change-Id: I9d38e80f3fdc5e29d4d0cdfa1e893c251a954508
* Remove USE_DISPLAY_LIST_PROPERTIES flagChet Haase2012-04-231-8/+3
| | | | | | | | | | | | | | | | This flag was still hanging around pending any need to disable DisplayList properties. But things seem stable, so it's time to clean up and simplify the code. At the same time, I reduced redundance in DisplayList dimensions. We used to call drawDisplayList() with width/height parameters that were used to do a clip reject. This is redundant with the DisplayList properties that set the bounds of the DisplayList; the left/right and top/bottom properties represent the same width/height properties formerly used in drawDisplayList(). The new approach is to not pass dimensions to drawDisplayList(), but to instead pull those dimensions directly from the DisplayList when needed. Change-Id: I8871beff03b1d4be95f7c6e079c31a71d31e0c56
* Fix layer blending bugChet Haase2012-04-121-0/+5
| | | | | | | | | | Cached layers were sometimes retaining an obsolete blending value, causing artifacts where translucent objects were disappearing completely. Also, added extra tracing info for DisplayLists. Issue #6303668 Flickering views during SwipeHelper drag Change-Id: I66ce158652c4a3ed316040585b40b1744e1fad0c
* Pass width/height parameters to webviewChet Haase2012-04-111-0/+4
| | | | | | | | | When webview draws into an fbo layer, it needs to know the size of that surface to create the rendering transform appropriately. This change copies in the current viewport size to the structure that is passed to the webview. Change-Id: I7160b0836d00834134c799c95a439cdc045e2035
* fix functor flag parsing, tweak process delayChris Craik2012-04-051-2/+2
| | | | Change-Id: I0a679cc33f92ff6fd2e33db9ad58b52622def012
* Merge "Disable AA lines vertex attrib arrays after rendering"Romain Guy2012-04-041-7/+54
|\
| * Disable AA lines vertex attrib arrays after renderingRomain Guy2012-04-041-7/+54
| | | | | | | | Change-Id: I2f035e9d87f4f97bc1e37355c84570fd58df0374
* | Merge "Optimize FBOs composition"Romain Guy2012-04-031-5/+3
|\ \ | |/
| * Optimize FBOs compositionRomain Guy2012-04-031-5/+3
| | | | | | | | Change-Id: Ifc8eada8922509373c0e4c3b2ed75b6f08d098de
* | Optimization of alpha with DisplayList propertiesChet Haase2012-04-031-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | Some views (such as ImageView and TextView) handle non-opaque alpha values directly. This was originally an optimization, but we can handle it faster in many cases without this optimization when DisplayList properties are enabled. Basically, if a view has non-overlapping rendering, we set the alpha value directly on the renderer (the equivalent of setting it on the Paint object) and draw each primitive with that alpha value. Doing it this way avoids re-creating DisplayLists while getting the same speedup that onSetAlpha() used to get pre-DisplayList properties. Change-Id: I0f7827f075d3b35093a882d4adbb300a1063c288
* | Merge "Prevent crash when flushing the layers cache Bug #6258973"Romain Guy2012-04-021-0/+1
|\ \ | |/
| * Prevent crash when flushing the layers cacheRomain Guy2012-04-021-0/+1
| | | | | | | | | | | | | | | | | | | | Bug #6258973 When flushing the layer caches we would attempt to delete the FBOs associate with layers in the cache. The FBO property was however not always properly cleared when recycling layers. Change-Id: I7dedfe391d659a0849f1e1d84df17313b2c6e2b2
* | Allow fine-grained control over functors executionRomain Guy2012-04-021-3/+40
|/ | | | | | Adds non-drawing execution mode Change-Id: I82f92cf1b9a3b9ff2ca6d7427c4e02b73e04e6bf
* Re-enabling DisplayList propertiesChet Haase2012-03-271-13/+2
| | | | | | | | | | | | | | | | | | | | | Several issues came up after DisplayList properties were enabled, so they were disabled pending fixes. Those issues have been fixed, so DisplayList properties are once again being enabled by default. This CL both re-enables these properties (in View.java and DisplayListRenderer.h) and fixes the various issues that enabling them caused the first time around. Related issues (all currently marked as Fixed, though that was simply because DL properties were disabled - this CL provides the real fixes now that DL properties are enabled by default): Issue #6198276 Text input broken Issue #6198472 Native crash at pc 00076428 in many different apps in JRM80 Issue #6204173 Date/time picker isn't rendering all parts of UI Issue #6203941 All Apps overscroll effect is rendered weirdly/has flickering Issue #6200058 CAB rendering issue - not drawing items? Issue #6198578 Front camera shows black screen after taking picture. Issue #6232010 Layers not recreated when children change (DisplayList properties) Change-Id: I8b5f9ec342208ecb20d3e6a60d26cf7c6112ec8b
* Use a status_t return type for GL functorsRomain Guy2012-03-261-4/+4
| | | | | | | | | WebView needs more fine-grained control over the behavior of the framework upon execution of the display lists. The new status_t allows WebView to requests its functor to be re-executed directly without causing a redraw of the entire hierarchy. Change-Id: I97a8141dc5c6eeb6805b6024cc1e76fce07d24cc
* Handle view properties at the native levelChet Haase2012-03-121-5/+15
| | | | | | | | | | | Basic functionality of handling View properties (transforms, left/right/top/bottom, and alpha) at the native DisplayList level. This logic is disabled for now (via compile-time flags in View.java and DisplayListRenderer.h) as we continue work on it (there is no advantage to the new approach until we optimize invalidation and rendering paths to use the new code path). Change-Id: I370c8d21fbd291be415f55515ab8dced6f6d51a3
* Don't bind data to missing uniformsRomain Guy2012-03-091-1/+1
| | | | Change-Id: Ib9d1f14eb0bef04e0910baa4eaf3e49cce81c0ce
* Deferred layer updatesRomain Guy2012-03-021-0/+18
| | | | Change-Id: I83d9e564fe274db658dcee9e0cc5bbf9223ebb49
* Small tweak to Canvas.drawPath() GL implementationRomain Guy2012-03-011-1/+1
| | | | Change-Id: I1d668a912996e1267bcf2127058888e489a2d9b3
* Full implementation of Canvas.drawPath()Romain Guy2012-02-291-40/+20
| | | | Change-Id: I23223b89770a0cd2b4762365bead9bfddb094290
* More infrastructure for Canvas.drawTextOnPathRomain Guy2012-02-241-1/+67
| | | | Change-Id: Iff42b24e342650d06fa4e2fa9db6c28da820ff01
* Add hooks to implement Canvas.drawTextOnPath() in GLRomain Guy2012-02-241-0/+5
| | | | Change-Id: I165c9e05facf5365aa6850605688e538640c7fcc
* Record possible clip rejects when recording display listsRomain Guy2012-02-171-4/+4
| | | | | | | | | | | 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
* Add optional metadata to initiliaze the render threat.Romain Guy2012-02-011-30/+26
| | | | | | | | | | The render threat is likely to break your application if you initiate it. As such it must be explicitely requested using the following meta-data tag in your manifest's application tag: <meta-data android:name="android.graphics.renderThread" android:value="true" /> Change-Id: Ibf0a48af2a0d091562bf6907eac970e3d1d601c4
* Add debug markers to OpenGLRendererRomain Guy2012-01-301-0/+12
| | | | | | | | These markers will be used to group the GL commands by View in the OpenGL ES debugging tool. This will help correlate individual GL calls to higher level components like Views. Change-Id: I73607ba2e7224a80ac32527968261ee008f049c6
* Add stencil buffer to the EGL configRomain Guy2012-01-301-0/+4
| | | | Change-Id: If76c0cd6127534d90f9526b75c0f8e56259c6722
* Add full support for Canvas.setDrawFilter()Romain Guy2012-01-231-0/+26
| | | | Change-Id: I0ad35d0603c4eeda469014803be14c1dcdde918c
* Full support for Canvas.drawPosTextRomain Guy2012-01-181-12/+66
| | | | | | This also introduces a small optimization when rendering text. Change-Id: Iff620ac97bf878eaac406bccc6daa07052c93890
* First pass at implementing Canvas.drawPosText() in GLRomain Guy2012-01-171-1/+13
| | | | Change-Id: Ia3ac347e95d57eb86c63045156c8dbc0572b03cb
* Rename (IF_)LOGE(_IF) to (IF_)ALOGE(_IF) DO NOT MERGESteve Block2012-01-081-3/+3
| | | | | | | See https://android-git.corp.google.com/g/#/c/157220 Bug: 5449033 Change-Id: Ic9c19d30693bd56755f55906127cd6bd7126096c
* Rename (IF_)LOGD(_IF) to (IF_)ALOGD(_IF) DO NOT MERGESteve Block2012-01-031-2/+2
| | | | | | | See https://android-git.corp.google.com/g/156016 Bug: 5449033 Change-Id: I4c4e33bb9df3e39e11cd985e193e6fbab4635298
* Properly restore the GL scissor after a GL draw functorRomain Guy2012-01-031-21/+28
| | | | | | Bug #5781254 Change-Id: I1dc4809563a793b6b579814951d4d73b4c34bf32