summaryrefslogtreecommitdiff
path: root/libs/hwui/RenderNode.cpp
AgeCommit message (Collapse)Author
2016-08-02Ensure layer update include the dirty rect from AVDDoris Liu
BUG: 30166063 Change-Id: Ia14a2fe3c653e0172a28b4ef22f5171ccf7390c1
2016-07-26Remove LayerRenderer.Derek Sollenberger
There is only one caller each for the static functions here so this CL moves the logic to the caller. Also by moving some of the code into the pipeline it makes it easier for future changes to configure how a pipeline handles a layer. Change-Id: Ib735b5154325cbb658fd151f7a19dbf434ab44b7
2016-07-12Merge \\"Avoid throwing when 0 size layer requested\\" into nyc-mr1-dev am: ↵Chris Craik
272b827925 am: ec83bd15c8 Change-Id: If585ade667c888d2f5f8e90a76125971178a7ba5
2016-07-11Avoid throwing when 0 size layer requestedChris Craik
bug:30032790 Change-Id: I8553af0d0b0d59fea6535d03479c4e7134a9f4f9
2016-07-07Delete old rendering pipelineChris Craik
fixes: 30002246 Change-Id: I45df0e924708526cee045b14c291bd23aa1a92db
2016-06-17Move SurfaceView offscreen if the app stops drawing itJohn Reck
Bug: 29360411 Change-Id: Iefb9d7a9dafb34a2b4f79130a2a8b5a7cf7de906
2016-06-13Chcek for valid render content before damaging RenderNode for dirty VDDoris Liu
BUG: 29320878 Change-Id: I847d76467bad92c956a4bb7617627983d64e90f9
2016-06-10Merge \"Fix framebuffer incomplete errors\" into nyc-devChris Craik
am: 4bcf66030d Change-Id: If578de7d7ea10cceb0e19eb68e305432e4177d04
2016-06-09Fix framebuffer incomplete errorsChris Craik
bug:29127615 Primarily fixes case where 0 dimensioned layers could be created/updated. Additionally, adds more logging in incomplete framebuffer cases, if they still occur. Change-Id: Ib90dbbafd6905aca3c8f46e64064e13a308f713d
2016-06-09Handle hidden RT VectorDrawable animatorsDoris Liu
This CL changes the target of VD specific animators to VectorDrawable, instead of RenderNode. The benefit of doing so is that animators can now detect whether the animation is meaningful by checking whether their VD target is in the display list. If not, that means the VD is not drawing for the current frame, in which case we can be smarter and more power efficient by removing the animator from the list and posting a delayed onFinished listener callback. By setting VD as the animation target, when an ImageView decides to update its drawable from one AVD to something else, we'll be able to detect that the previous AVD is no longer in the display list, and stop providing animation pulse to the stale AVD, which is something we couldn't do previously. This change also handles the case where one AVD instance could be drawn in two different views. Bug: 27441375 Change-Id: Iaad1ed09cfd526276b95db0dd695275c28e074e8
2016-04-15Add a callback for when a gl functor is releasedJohn Reck
Bug: 27709981 Change-Id: Id5be3e8f88d6d84a9c59c7ed23e7e8862feefbe8
2016-04-07Fix some edge casesJohn Reck
Bug: 27709981 This desperately needs a refactor, but to keep the current (really needed & nice) behavior of dispatching after sync finishes would be difficult to handle cleanly without lots of ripping so... #yolo Change-Id: I831a06c6ae7412a062720d68ecbe3085190f0258
2016-04-04Make AVD thread safeDoris Liu
This CL introduces staging properties to VectorDrawable, which holds properties coming from UI thread. When staging properties are changed, they are marked dirty, and the staging properties then get pushed to RenderThread at sync point. In cases where no staging property has been changed, at sync point we sync the render thread properties back to staging properties to reflect the latest render thread animation value change. Also, update Vector Drawable bitmap only when it's dirty Bug: 27343970 Bug: 27385912 Bug: 27263667 Bug: 27927674 Bug: 27774383 Change-Id: Ia864f5400a53a08dbfb284fae581fb1aac4fff87
2016-03-31Add a callback for rendernode parentcount=0John Reck
Bug: 27709981 Fixes: 22565656 Change-Id: I1cb4461baf9069dc4e7ca6de10d5862578c107f4
2016-02-23Support op dumping in new pipelineChris Craik
bug:26565102 Change-Id: I266e420a2f18ba9ad62942b8a0de295dfa3a2a88
2016-02-19Revert "Revert "Check RenderNode's owning view before attaching animators""Doris Liu
This reverts commit eb40178af3b7c8d925eaf6c1aa0bef739c8ea47e. Change-Id: I6838ecb35b50847746ee66ac204f14eb5f579b91
2016-02-18Revert "Check RenderNode's owning view before attaching animators"Doris Liu
This reverts commit 12abdeb3c7bffbc7c07b913595f6ea2cb66154d1. Change-Id: I938deddf5f294127f87a0e70f940fe5b9a85e0b2
2016-02-16Check RenderNode's owning view before attaching animatorsDoris Liu
-Only add animators to a RenderNode when its owning view is attached -When changing animator's target RenderNode, remove the animator from the old target RenderNode that it's currently running on, if any. Bug: 27141983 Bug: 27145149 Change-Id: I9c9592382d64ecc0390f7ec743a59ce1ad7d9798
2016-02-04Have RT drive window positioningJohn Reck
Bug: 22802885 Change-Id: I6beed5474d3a943b16e9097f7bd61ce3cbd37505
2016-01-25Add internal Canvas save flagsFlorin Malita
Skia's SkCanvas::SaveFlags are being deprecated. This CL introduces the equivalent android::SaveFlags, converts all internal clients to the new enum, and switches the saveLayer glue to the SaveLayerRec-based API. Change-Id: Icb1785f4e7c0f652b1f04b34a1e3ccb063c408f3
2015-11-25Support projection in OpReordererChris Craik
bug:22480459 Change-Id: Iceb71732dc50957cfb47fa1ba9b8e18e6fc51132
2015-11-18Fix layer create propertiesChris Craik
bug:25753159 Change-Id: Ifa64dbfd8057ae5b390ba0c177627a5325cdd769
2015-11-17Add temporary layer alpha fallback to OpReordererChris Craik
Also adds logic to clip temporary layers to viewport both for efficiency and to allow large ones (such as the fallback case) to fit in max texture size. Change-Id: Iee51495220f5ca1dc7e6f5fd3615db2e896efd74
2015-11-16Finish shadow support in new reorderer/rendererChris Craik
Now passes alphas and light radius, and correctly transforms light center for layers. Also fixes begin-frame/layer clears to be damage rect aware. Change-Id: I3b1415cd7bf1518c510145ebebdb745f494a2542
2015-11-12Recycle OffscreenBuffersChris Craik
Change-Id: Ia2e219026f211a5308ecf8209c5f986bb888aadd
2015-11-05Add more RenderNode property support in OpReorderer pathChris Craik
Change-Id: I0163fe91d8145e33019739c191bbab0432a5f9aa
2015-11-02Add region-tracking to OffscreenBuffersChris Craik
Change-Id: I024c7219c080b9a89888517f5a89d49dfe8065ba
2015-11-02Initial HW layer support in new reorderer/rendererChris Craik
Shares vast majority of clipped savelayer code, with only minor differences in lifecycle. Doesn't yet handle fill region, resize, or window transform. Change-Id: Iabdd71811590d2b937eb11e1b01ce556ade54a5a
2015-10-29Merge "Simplify TreeInfo"Chris Craik
2015-10-28Simplify TreeInfoChris Craik
Change-Id: I8f05e9046236d607016b6c2bb77a333cfb47ba47
2015-10-28Merge "Cleanups"John Reck
2015-10-28Free DisplayListData for Views with GONE parentsJohn Reck
Bug: 22565656 Change-Id: I06060e6ae473482ec79feb891f9123c85706237f
2015-10-27CleanupsJohn Reck
Change-Id: I10001711afb2530c5dc19aebf2d055ae41f58c6a
2015-10-21Work to support saveLayer in new pipelineChris Craik
clipped SaveLayers will now be pulled to the beginning of the frame, prior to drawing FBO 0. This will remove the need for switching FBOs mid-frame. Change-Id: I4d8dc1f845e84e9b49d5acdf4f4703eef4a9cb06
2015-10-19Use LinearStdAllocator in DisplayListChris Craik
bug:24300128 This removes most of the remaining calls to malloc when recording DisplayLists. Change-Id: If928bd53dac0f145aadc436a62759086b67da0ed
2015-10-16Rename DisplayListData to DisplayListChris Craik
Change-Id: I25f6bb88ffdf9baf7e8e4e2a294aa8c9d2a4605b
2015-10-15Use typedefs to differentiate between flavors of DisplayListsChris Craik
Change-Id: Id3b0a5aa045f2343fb046ca0889b375a7d00e03f
2015-10-14Initial commit of new Canvas operation recording / replayChris Craik
Done: - drawRect, drawBitmap, drawColor, drawPaint, drawRenderNode, drawRegion - Recording with new DisplayList format - batching & reordering - Stateless op reorder - Stateless op rendering - Frame lifecycle (clear, geterror, cleanup) Not done: - SaveLayer (clipped and unclipped) - HW layers - Complex clipping - Ripple projection - Z reordering - Z shadows - onDefer prefetching (text + task kickoff) - round rect clip - linear allocation for std collections - AssetAtlas support Change-Id: Iaf98c1a3aeab5fa47cc8f9c6d964420abc0e7691
2015-10-02Early return when the scale is 0.Teng-Hui Zhu
b/24534579 Change-Id: Ib3581ec99387ca70ca036026f64857a49657d94b
2015-08-26Serializing display listsJohn Reck
This is a WIP prototype Change-Id: Id4bfcf2b7bf905221c3734b7b6887c9b2efd37e6
2015-08-21Merge "Switch several enums to enum classes"Chris Craik
2015-08-21Switch several enums to enum classesChris Craik
Change-Id: I00ecd0b61657196b51704f70ca31a9d1c1ac254e
2015-08-21Revert "Revert "Simplify TextureView draw path""Chris Craik
Fixed build breakage This reverts commit d35dcb13115ca1dd8c07e397f43a186cd7fd1a01. Change-Id: Id3a103fbaac15a05f558bce2161ce17b6e8d2ea3
2015-08-20Merge "Revert "Simplify TextureView draw path""Bart Sears
2015-08-20Revert "Simplify TextureView draw path"Bart Sears
This reverts commit 20a248934c67b19c8734362dba76a5cc94254686. Change-Id: Iaa3ebb1d868acbe184080087aec312b43e87e3c7
2015-08-20Merge "Simplify TextureView draw path"Chris Craik
2015-08-19Simplify TextureView draw pathChris Craik
bug:20461288 Change-Id: I239fbd26ab2177481c84feb62a1da68faeb634ac
2015-08-19Merge "Change setMatrix behavior to only affect canvas-local matrix"Chris Craik
2015-08-19Remove Matrix4::load(Matrix4&)Chris Craik
bug:22320446 Change-Id: Id6d1cc9b4aea828b0cdf622ad672064d72671f8d
2015-08-19Change setMatrix behavior to only affect canvas-local matrixChris Craik
bug:22189925 This makes setMatrix(getMatrix()) work as expected, and makes setMatrix() much more useful without changing behavior relative to a View's parent hierarchy. Change-Id: I608613bd27c1b9052ae583f8fd2119cf37a2f6d7