summaryrefslogtreecommitdiffstats
path: root/cc/layers/render_surface_impl.h
Commit message (Collapse)AuthorAgeFilesLines
* Make RenderPass::Id an isolated classweiliangc@chromium.org2014-08-221-2/+3
| | | | | | | | | | | | | Move RenderPass::Id out of RenderPass and make it an isolated class called RenderPassId, so RenderPassDrawQuad and AppendQuadsData will not need to depend on entire RenderPass class. BUG=344962 Review URL: https://codereview.chromium.org/404563005 Cr-Commit-Position: refs/heads/master@{#291403} git-svn-id: svn://svn.chromium.org/chrome/trunk/src@291403 0039d316-1c4b-4281-b951-d872f2087c98
* Remove unused RenderPassDrawQuad fieldsdanakj@chromium.org2014-08-121-2/+0
| | | | | | | | | | | | | | | | | | | | | The contents_changed_since_last_frame and is_replica fields are not used. Also removes RenderSurfaceImpl's ContentsChanged() as this method was only used in determining the value of contents_changed_since_last_frame. Unfortunately now RenderPassDrawQuad is only the largest quad type on 64-bit builds. So, adds kLargestQuadType to cc/quads/ and moves the largest-quad-type unit test there verifying that kLargestQuadType is the largest now, instead of RenderPassDrawQuad. R=enne BUG=401481 NOTRY=true Review URL: https://codereview.chromium.org/448133002 Cr-Commit-Position: refs/heads/master@{#289091} git-svn-id: svn://svn.chromium.org/chrome/trunk/src@289091 0039d316-1c4b-4281-b951-d872f2087c98
* Removed QuadSink and MockQuadCullerweiliangc@chromium.org2014-06-231-2/+4
| | | | | | | | | | | | | | | Since QuadSink does not provide more functionatility than passing through to RenderPass and OcclusionTracker, it can be torn down and removed. Same is for MockQuadCuller. This CL follows 302603006, 306683002, 309493002. BUG=344962 TEST=cc_unittests Review URL: https://codereview.chromium.org/308193003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@279050 0039d316-1c4b-4281-b951-d872f2087c98
* cc: Clean up iterator template to only take 1 parameter.danakj@chromium.org2014-02-281-1/+3
| | | | | | | | | | | | | | | | | LayerIterator takes 4 parameters. One is the FrontToBack ordering but that is now the only option. The other 3 are for the type of layers, render surfaces, and the render surface layer list. The latter two are now already available as typedefs off of Layer and LayerImpl, so we only need Layer/LayerImpl in the template arguments. R=enne@chromium.org, enne BUG=YAK Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=251238 Review URL: https://codereview.chromium.org/156603005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@254156 0039d316-1c4b-4281-b951-d872f2087c98
* Revert "Revert 253606 "Revert 251238 "cc: Clean up iterator template to ...""danakj@chromium.org2014-02-261-3/+1
| | | | | | | | | | Speculative revert to see if this affects memory stomping behaviours. BUG=345757 Review URL: https://codereview.chromium.org/180243014 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@253612 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 253606 "Revert 251238 "cc: Clean up iterator template to ..."danakj@chromium.org2014-02-261-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | > Revert 251238 "cc: Clean up iterator template to only take 1 par..." > > Speculative revert to see if this affects memory stomping behaviours. > > > cc: Clean up iterator template to only take 1 parameter. > > > > LayerIterator takes 4 parameters. One is the FrontToBack ordering > > but that is now the only option. The other 3 are for the type of layers, > > render surfaces, and the render surface layer list. The latter two are > > now already available as typedefs off of Layer and LayerImpl, so we > > only need Layer/LayerImpl in the template arguments. > > > > R=enne > > BUG=YAK > > > > Review URL: https://codereview.chromium.org/156603005 > > TBR=danakj@chromium.org > > Review URL: https://codereview.chromium.org/181783004 TBR=danakj@chromium.org Review URL: https://codereview.chromium.org/182343002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@253610 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 251238 "cc: Clean up iterator template to only take 1 par..."danakj@chromium.org2014-02-261-3/+1
| | | | | | | | | | | | | | | | | | | | | | | Speculative revert to see if this affects memory stomping behaviours. > cc: Clean up iterator template to only take 1 parameter. > > LayerIterator takes 4 parameters. One is the FrontToBack ordering > but that is now the only option. The other 3 are for the type of layers, > render surfaces, and the render surface layer list. The latter two are > now already available as typedefs off of Layer and LayerImpl, so we > only need Layer/LayerImpl in the template arguments. > > R=enne > BUG=YAK > > Review URL: https://codereview.chromium.org/156603005 TBR=danakj@chromium.org Review URL: https://codereview.chromium.org/181783004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@253606 0039d316-1c4b-4281-b951-d872f2087c98
* cc: Clean up iterator template to only take 1 parameter.danakj@chromium.org2014-02-141-1/+3
| | | | | | | | | | | | | | | LayerIterator takes 4 parameters. One is the FrontToBack ordering but that is now the only option. The other 3 are for the type of layers, render surfaces, and the render surface layer list. The latter two are now already available as typedefs off of Layer and LayerImpl, so we only need Layer/LayerImpl in the template arguments. R=enne BUG=YAK Review URL: https://codereview.chromium.org/156603005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@251238 0039d316-1c4b-4281-b951-d872f2087c98
* Plumb debug name via debug infovollick@chromium.org2014-01-151-2/+0
| | | | | | | | | | | | | There used to be a separate channel for plumbing back a layer's debug name. The debug info object is more general, and we can just send the debug name through it. This patch depends on https://codereview.chromium.org/135473002/ R=jamesr@chromium.org BUG=None Review URL: https://codereview.chromium.org/135493002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@244948 0039d316-1c4b-4281-b951-d872f2087c98
* Pass gfx::Rect and gfx::RectF by const ref.prashant.n@samsung.com2014-01-101-2/+2
| | | | | | | | | | | | | | | | | Avoid unneccessary copy of structures gfx::Rect & gfx::RectF by passing them by const ref rather than value. Any struct of size > 4 bytes should be passed by const ref. Passing by ref for these structs is faster than passing by value, especially when invoking function has multiple parameters. Pass by value creates unneccessary overhead which should be avoided. BUG=159273 Review URL: https://codereview.chromium.org/93663004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@244224 0039d316-1c4b-4281-b951-d872f2087c98
* Use bit fields inside cc to reduce memory usage.vivek.vg@samsung.com2013-12-101-7/+7
| | | | | | | | | | | | | | | | | | | | Using bitfields we get the memory usage as follows +-----+---------------------------+------------------------+---------+ |.No..|.Class/Structure/File......|.Size.of.object.(bytes).|.Memory..| |.....|...........................+------------------------+.Reduced.| |.....|...........................|...Before..|...After....|.........| +-----+---------------------------+-----------+------------+---------+ |..1..|.cc::Layer.................|......840..|.....824....|......16.| +-----+---------------------------+-----------+------------+---------+ |..2..|.cc::LayerImpl.............|......880..|.....864....|......16.| +-----+---------------------------+-----------+------------+---------+ |..3..|.cc::RenderSurfaceImpl.....|......408..|.....400....|.......8.| +-----+---------------------------+-----------+------------+---------+ Review URL: https://codereview.chromium.org/102733006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@239682 0039d316-1c4b-4281-b951-d872f2087c98
* cc: Mark render surfaces that ignore outside occlusion.alokp@chromium.org2013-11-171-7/+6
| | | | | | | | | | | | | Generalized RenderSurface::nearest_ancestor_that_moves_pixels to nearest_occlusion_immune_ancestor. Used this flag to mark render surfaces that have replica, copy-request, or filters that move pixels. BUG=307612 Review URL: https://codereview.chromium.org/40613004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@235522 0039d316-1c4b-4281-b951-d872f2087c98
* cc: Allow readbacks from hidden layers.danakj@chromium.org2013-07-041-0/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If a layer or any of its ancestors has hide_layer_and_subtree() set to true, the layer will not be part of the compositor's output. But if we want to service a CopyOutputRequest on a layer in the hidden subtree, we need to draw it. This CL tracks visibility recursively in CalcDropProperties, so that when an output request exists in the subtree, we can avoid skipping the subtree, but make note that the layers in it are not visible (at least, until we recurse into the copy output requested layer). If a layer with an output request can not be drawn (it is clipped away/empty), then we abort the copy request and send an empty result. This is done for any remaining copy requests in the layer tree after we have taken requests that will be used and moved them onto RenderPasses. Tests: LayerTreeHostCommonTest.SubtreeHiddenWithCopyRequest LayerTreeHostCommonTest.ClippedOutCopyRequest LayerTreeHostTestAsyncReadbackInHiddenSubtree.RunSingleThread_DirectRenderer LayerTreeHostTestAsyncReadbackInHiddenSubtree.RunMultiThread_DirectRenderer_MainThreadPaint LayerTreeHostTestAsyncReadbackInHiddenSubtree.RunMultiThread_DirectRenderer_ImplSidePaint LayerTreeHostTestAsyncReadbackClippedOut.RunSingleThread_DirectRenderer LayerTreeHostTestAsyncReadbackClippedOut.RunMultiThread_DirectRenderer_MainThreadPaint LayerTreeHostTestAsyncReadbackClippedOut.RunMultiThread_DirectRenderer_ImplSidePaint LayerTreeHostTestHiddenSurfaceNotAllocatedForSubtreeCopyRequest.RunSingleThread_DirectRenderer LayerTreeHostTestHiddenSurfaceNotAllocatedForSubtreeCopyRequest.RunMultiThread_DirectRenderer_MainThreadPaint LayerTreeHostTestHiddenSurfaceNotAllocatedForSubtreeCopyRequest.RunMultiThread_DirectRenderer_ImplSidePaint R=enne BUG=242572 Review URL: https://chromiumcodereview.appspot.com/17619004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@210090 0039d316-1c4b-4281-b951-d872f2087c98
* cc: Delete LayerTreeAsText / ShowPlatformLayerTreeenne@chromium.org2013-06-201-1/+0
| | | | | | | | | | | | | | | | | CC currently has three (3) ways to dump layers: LayerTreeAsText, LayerTreeAsJSON, and AsValue. LayerTreeAsText is the least useful due to the fact that if you have more than a few layers it falls off the bottom of the screen. Its layer printing abilities have been entirely replaced (in my opinion) with TraceViewer's ability to capture frames. R=nduca@chromium.org BUG=none Review URL: https://chromiumcodereview.appspot.com/17351009 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@207596 0039d316-1c4b-4281-b951-d872f2087c98
* cc: Consolidate LayerList types.danakj@chromium.org2013-03-291-2/+3
| | | | | | | | | | | | | | | | | | | | We currently have Layer::LayerList, LayerImpl::LayerList, LayerTreeHost::LayerList and LayerTreeHostImpl::LayerList, as well as LayerTreeImpl::LayerList, LayerSorter::LayerList, and I think some more. This patch consolidates the list typedefs into three types: LayerList, LayerImplList, and OwnedLayerImplList. LayerList and LayerImplList are the output of CalculateDrawProperties. While OwnedLayerImplList is a list that owns the layer pointers in it, ie ScopedPtrVector. R=jamesr Review URL: https://codereview.chromium.org/13285002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@191442 0039d316-1c4b-4281-b951-d872f2087c98
* Fix cpplint errors in cc/(animation|input|layers|trees|test)/jamesr@chromium.org2013-03-261-1/+4
| | | | | | | | | | | This fixes lint errors in everything except for the few stragglers (occlusion unit test, etc) that haven't been chromified. BUG=144577 Review URL: https://chromiumcodereview.appspot.com/12965007 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@190767 0039d316-1c4b-4281-b951-d872f2087c98
* Part 10 of cc/ directory shuffles: layersjamesr@chromium.org2013-03-181-0/+171
Continuation of https://src.chromium.org/viewvc/chrome?view=rev&revision=188681 BUG=190824 TBR=enne@chromium.org, piman@chromium.org, jschuh@chromium.org, joth@chromium.org Review URL: https://codereview.chromium.org/12916002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@188703 0039d316-1c4b-4281-b951-d872f2087c98