summaryrefslogtreecommitdiffstats
path: root/cc/layer_tree_host.cc
Commit message (Collapse)AuthorAgeFilesLines
* cc: Avoid expensive RenderingStats collection.danakj@chromium.org2013-02-021-3/+8
| | | | | | | | | | | | | | | When --enable-gpu-benchmarking is not present, don't do expensive steps in the benchmark collection (meaning don't call base::TimeTicks::Now()). BUG=170735 NOTRY=true Depends on: https://bugs.webkit.org/show_bug.cgi?id=108358 Review URL: https://chromiumcodereview.appspot.com/12095053 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@180224 0039d316-1c4b-4281-b951-d872f2087c98
* cc: Don't do full tree sync unless needed with impl painting.danakj@chromium.org2013-02-011-6/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | When impl painting is enabled, we always did a full tree sync from the main thread to the pending tree because it was always recreated. Since we recycle the tree now, it maintains its structure from one commit to the next, so we don't need to do a full tree sync unless its structure changed, the same decision as for non-impl-painting mode. On the impl side, the pending tree maintains the same structure as the active tree unless the main thread commits a structure change. This is the case when the main thread does a full tree sync into the pending tree. So we propagate the flag to the LayerTreeHostImpl and use it when activating the pending tree. Causing a commit every layout() with the 10_10_layer_tree, the win is clear: Before: *RESULT 10_10_layer_tree: frames= 2657.12 runs/s After: *RESULT 10_10_layer_tree: frames= 3256.78 runs/s R=jamesr,enne BUG=173526 Review URL: https://chromiumcodereview.appspot.com/12094094 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@180085 0039d316-1c4b-4281-b951-d872f2087c98
* Move page scale ownership to LayerTreeImpl.aelias@chromium.org2013-01-301-1/+17
| | | | | | | | | | | | | | | | | | | | | Page scale is conceptually very similar to scroll offset, just multiplicative instead of additive. It has the exact same problems of state synchronization between WebKit and the CC impl thread, and the solution is also the same. In this patch I closely imitated the three-way sentScrollDelta logic. I also deleted PinchZoomViewport and moved everything to LayerTreeImpl because it turned out there was almost no logic that could be isolated there. This resolves many graphical glitches, including the white flashes and blurriness while pinching or double-tap zooming, and the jumping around during navigation. NOTRY=true BUG=171914 Review URL: https://chromiumcodereview.appspot.com/12093015 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@179607 0039d316-1c4b-4281-b951-d872f2087c98
* Delete zoomed_viewport_offset_ and its users.aelias@chromium.org2013-01-291-27/+0
| | | | | | | | | | | | | | After http://webk.it/107424 lands, there is no longer any need to conceal the true scroll offset from WebKit. We can use the normal root layer scroll offset for almost everything and avoid needing to apply this extra transformation. NOTRY=true BUG=171183 Review URL: https://chromiumcodereview.appspot.com/12045002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@179467 0039d316-1c4b-4281-b951-d872f2087c98
* Find root scroll layer at tree activationjamesr@chromium.org2013-01-191-1/+2
| | | | | | | | | | | | | | | | | | | | | | This finds the root scroll layer when a LayerTreeImpl is activated since we can only interact with the active tree. Doing this allows adding more checks for proper use and cuts down on the number of functions that have to be called in a specific order. I've also tightened up the TopControlsManagerClient interface, since previously the interface defined "virtual LayerTreeImpl* activeTree()" but LayerTreeHostImpl also defined a non-virtual "const LayerTreeImpl* activeTree() const" so depending on the constness of a pointer callers would get one or the other. Turns out the top controls system doesn't need the active tree, it just needs the root scroll layer. It actually doesn't even need the full layer, it just needs to know if there is a layer and if so what the y offset is. BUG=169143 Review URL: https://chromiumcodereview.appspot.com/12025031 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@177847 0039d316-1c4b-4281-b951-d872f2087c98
* cc: Fix resource eviction with impl-side painting.reveman@chromium.org2013-01-171-0/+9
| | | | | | | | | | | | | | | | | | | When evicting resources with impl-side painting we need wait until the active tree is without evicted resources before we can draw. This moves the ContentsTexturesPurged state from LTHI to the LTI and makes LTHI::canDraw() return false when the active LTI has ContentsTexturesPurged set. The result is no change in behavior when we only have one tree, while with impl-side painting when we have two trees, canDraw() will not return true until the new tree without ContentsTexturesPurged set has been activated. BUG=170157 Review URL: https://chromiumcodereview.appspot.com/11886091 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@177532 0039d316-1c4b-4281-b951-d872f2087c98
* Separate scrollbar animation controller from scrollbar positioningjamesr@chromium.org2013-01-171-0/+6
| | | | | | | | | | | | | | | | ScrollbarAnimationController only has one subclass that does anything (SACLinearFade) and that subclass only controls the scrollbar's opacity. This moves the scrollbar positioning logic out of ScrollbarAnimationController completely and makes the scrollable LayerImpl in charge of moving its scrollbars. This is needed since we only want the opacity animation behavior on the active tree, but we need to keep scroll positions up to date on the pending tree. BUG=169143 Review URL: https://chromiumcodereview.appspot.com/11931033 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@177505 0039d316-1c4b-4281-b951-d872f2087c98
* cc: add PaintTimeCounter to keep track of per frame paint timeegraether@chromium.org2013-01-171-0/+1
| | | | | | | | | | | | | This change adds the new PaintTimeCounter class to the LayerTreeHostImpl. It uses a RingBuffer to keep track of per frame paint times, which will be visualized in continuous painting mode. depends on: https://codereview.chromium.org/11817011 BUG= Review URL: https://chromiumcodereview.appspot.com/11827009 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@177332 0039d316-1c4b-4281-b951-d872f2087c98
* Remove top controls layer from cc/.tedchoc@chromium.org2013-01-161-21/+0
| | | | | | | | | | | | | | | | | | | After danakj@ comment on the CL that added the top controls manager, I looked into layer positioning in the browser compositor to keep it in sync with the top controls UI widgets. This removes the need for the top controls layer and also gets rid of the need to pass an increased clip size to the layer tree host. Now the renderer compositor will make the webkit size and the browser compositor will be in charge of moving it around. BUG=161303 Review URL: https://chromiumcodereview.appspot.com/11967021 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@177250 0039d316-1c4b-4281-b951-d872f2087c98
* cc: Block the main thread for texture layers during impl-side paintingenne@chromium.org2013-01-161-0/+7
| | | | | | | | | | | | This patch adds an additional completion event to thread proxy. Right now, it checks for the lack of a pending tree after drawing (which is currently where tree activation is triggered). R=nduca@chromium.org BUG=164993 Review URL: https://chromiumcodereview.appspot.com/11710004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@177218 0039d316-1c4b-4281-b951-d872f2087c98
* Add support for calculating the position of the top controls in the cc layer.tedchoc@chromium.org2013-01-161-0/+22
| | | | | | | | | | | | | Provides a means for keeping the top controls in sync with the currently renderered frame, which will allow us to move the top controls around the screen. BUG=161303 Review URL: https://chromiumcodereview.appspot.com/11552009 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@177081 0039d316-1c4b-4281-b951-d872f2087c98
* cc: remove continuous painting invalidations from LayerTreeHostegraether@chromium.org2013-01-151-17/+0
| | | | | | | | | | | This change removes the setNeedsDisplay invalidation on each layer in continuous painting mode from LayerTreeHost. The invalidations are done in WebKit instead, because it is easier to exclude overlay layers: http://trac.webkit.org/changeset/139531 BUG= Review URL: https://chromiumcodereview.appspot.com/11876024 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@176835 0039d316-1c4b-4281-b951-d872f2087c98
* Separate layer property pushes from tree structure syncs and clean up ↵jamesr@chromium.org2013-01-121-26/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | scrollbar layer pointers We need sync the cc::Layer tree structure and layer properties to cc::LayerImpls at commit time. We track when properties and tree structure change and use that to decide whether to do a full tree sync or just a property push. This patch separates the property push to always happen seperately from the tree sync. The scrollbar and scroll layer pointer code needed a bit of cleanup to make this work. Before this patch, the way that scrolling worked was during the scrollbar pointer sync inside TreeSynchronizer::synchronizeTrees() was what actually updated the scroll offsets as a side effect of setting the pointer values. This patch rejiggers things so the ScrollbarAnimationController maintains the scroll properties at all times and the scrollbar layers pull values from their controller. As a bonus, this means changes to the scroll offset no longer need a full tree sync - they just need a property push. The scrollable bounds are also now pulled from the layer directly instead of the first child of a layer to avoid depending on properties updating in a specific order and be overall less hacky. This depends on webkit.org/b/106518 BUG=169143 Review URL: https://chromiumcodereview.appspot.com/11821064 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@176540 0039d316-1c4b-4281-b951-d872f2087c98
* Implement a method to access the non-composited content root layer picture pile.leandrogracia@chromium.org2013-01-091-0/+5
| | | | | | | | | | | This method is required to implement the CapturePicture API in Android WebView. BUG=167908 Review URL: https://chromiumcodereview.appspot.com/11731002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@175618 0039d316-1c4b-4281-b951-d872f2087c98
* Avoid exposing gl bindings through cc public API headersjamesr@chromium.org2013-01-081-0/+1
| | | | | | | | | | | | | | | | | | The cc library uses chromium's gles2 bindings in third_party/khronos/... to bind to GL for rendering. However, users of cc may not be able to pull these headers in when including cc API - for instance, on mac any code that includes content/common/view_messages.h pulls in the Apple CGL api through npapi.h. On the 10.6 SDK these headers collide with chromium's gl headers. This avoids exposing gl2.h includes via layer_tree_host.h, mostly by not including prioritized_resource_manager.h directly in l_t_h.h. BUG=156175 Review URL: https://chromiumcodereview.appspot.com/11794019 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@175554 0039d316-1c4b-4281-b951-d872f2087c98
* Migrate from MathUtil::inverse() to gfx::Transform::GetInverse()shawnsingh@google.com2013-01-071-1/+6
| | | | | | | | BUG=159972, 163769 Review URL: https://codereview.chromium.org/11644008 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@175363 0039d316-1c4b-4281-b951-d872f2087c98
* cc: remove loseOutputSurface.danakj@chromium.org2013-01-071-15/+1
| | | | | | | | | | Depends on: https://bugs.webkit.org/show_bug.cgi?id=106089 NOTRY=true Review URL: https://chromiumcodereview.appspot.com/11748031 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@175336 0039d316-1c4b-4281-b951-d872f2087c98
* cc: Move more functionality from host to LayerTreeImplenne@chromium.org2013-01-051-3/+3
| | | | | | | | | | | | | | | | | | | | | | This cleans up some longstanding TODOs that were creating when splitting out logic into LayerTreeImpl. It's possible that some of the helpers to get at active tree layers (root, scrolling, etc) could be moved, but given that scrolling only happens on the active tree (with the pending tree being updated with the result), these accessors could arguably stay permanently. This also moves background color / has transparent background to the tree itself, so that these changes will synchronize with any content on that tree. Things like viewport, device scale, and debug state are considered host-specific and take effect immediately. R=nduca@chromium.org BUG=155209 Review URL: https://chromiumcodereview.appspot.com/11704003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@175252 0039d316-1c4b-4281-b951-d872f2087c98
* cc: Remove all uses of "using namespace std".tfarina@chromium.org2013-01-031-8/+6
| | | | | | | | | | BUG=82078,144576,144577 R=danakj@chromium.org Review URL: https://chromiumcodereview.appspot.com/11753004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@174966 0039d316-1c4b-4281-b951-d872f2087c98
* This change adds continuous painting mode to the compositor, which makes it ↵egraether@chromium.org2012-12-201-0/+22
| | | | | | | | | | | easier to detect how certain DOMNodes and CSSStyles affect painting performance. If active it calls setNeedsDisplay() on every Layer in every frame. BUG= Review URL: https://chromiumcodereview.appspot.com/11450022 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@174105 0039d316-1c4b-4281-b951-d872f2087c98
* cc: Add pending tree for impl-side paintingenne@chromium.org2012-12-201-6/+25
| | | | | | | | | | | | Do tree synchronization to pending tree. Inform scheduler when there is a pending tree so that vsync can continue to be scheduled. Right now everything is hooked through redraw, so canDraw is true when there is a pending tree, prepareToDraw is the one that checks for tree swap, and TileManager::DidFinishTileInitialization ends up calling setNeedsRedraw. I'm not sure this is ideal, but it's a start. BUG=155209 Review URL: https://chromiumcodereview.appspot.com/11569040 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@174089 0039d316-1c4b-4281-b951-d872f2087c98
* Ref count layer animation controllers.vollick@chromium.org2012-12-201-33/+14
| | | | | | | | | | | | | | | | | With this patch we accomplish the following: 1. layer animation controllers are ref counted (so they can be shared by the two impl trees) 2. the layer tree hosts now own a list of active animation controllers. This allows for a couple of nice things __a. Ticking the animation controllers no longer requires a tree walk __b. We will be able to support ticking of animation controllers for layers that are not yet added to the layer tree. (Support coming in a future patch). 3. animation controllers register and unregister themselves from their respective layer tree host's list when they have an animation to tick. R=nduca@chromium.org,enne@chromium.org BUG=162111 Review URL: https://chromiumcodereview.appspot.com/11598005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@174043 0039d316-1c4b-4281-b951-d872f2087c98
* Add API to route end of fling messages from WebLayerTreeView to InputHandleryusufo@chromium.org2012-12-171-0/+5
| | | | | | | | | | | | | | This API will be used by WebViewImpl to send end of fling messages to the compositor. Then the compositor will only send flingCancels if there is a main thread fling. This flingCancels when unnecessarily sent are causing a lot of input lag when main thread is blocked. BUG=162767 Review URL: https://chromiumcodereview.appspot.com/11565022 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@173492 0039d316-1c4b-4281-b951-d872f2087c98
* Remove the pools from the ResourceProvider.ccameron@chromium.org2012-12-141-1/+1
| | | | | | | | | | | | | | Pools were used in the past and were planned to be used to call deleteOwnedResources. We have moved the responsibility of deleting resources to the structure that created them (for example, the PrioritizedResourceManager now deletes contents textures, instead of calling deleteOwnedResources). BUG=164947 Review URL: https://codereview.chromium.org/11578019 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@173212 0039d316-1c4b-4281-b951-d872f2087c98
* Mark layers that can use LCD text based on layer transform and opacity.alokp@chromium.org2012-12-131-1/+1
| | | | | | | | | | | | | - Text AA settings are not adjusted during animation to avoid repaints. - Renamed Layer::useLCDText to Layer::canUseLCDText. BUG=100666 Review URL: https://chromiumcodereview.appspot.com/11360093 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@172842 0039d316-1c4b-4281-b951-d872f2087c98
* [cc] Route LayerImpl::layerTreeHostImpl() calls through LayerTreeImplnduca@chromium.org2012-12-121-108/+0
| | | | | | | | | | | | | Pulled settings & debugstate to their own files to reduce header coupling, which bit me a few times on this patch [lthi needs lth, lti needs lthi for settings, etc]. NOTRY=true BUG=155209 R=enne Review URL: https://chromiumcodereview.appspot.com/11529003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@172635 0039d316-1c4b-4281-b951-d872f2087c98
* [cc] Make LayerImpls point at LayerTreeImpl instead of LTHInduca@chromium.org2012-12-111-1/+2
| | | | | | | | | | BUG=155209 R=enne@chromium.org NOTRY=True Review URL: https://chromiumcodereview.appspot.com/11519018 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@172411 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 171714 - Use an auxiliary list of animation controllers.vollick@chromium.org2012-12-081-34/+33
| | | | | | | | | | | | | | | | | | | > With this patch we accomplish the following: > 1. layer animation controllers are ref counted (so they can be shared by the two impl trees) > 2. the layer tree hosts now own a list of active animation controllers. This allows for a couple of nice things > __a. Ticking the animation controllers no longer requires a tree walk > __b. We will be able to support ticking of animation controllers for layers that are not yet added to the layer tree. (Support coming in a future patch). > 3. animation controllers register and unregister themselves from their respective layer tree host's list when they have an animation to tick. > > BUG=162111 > Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=171714 TBR=vollick@chromium.org BUG= Review URL: https://codereview.chromium.org/11491003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@171981 0039d316-1c4b-4281-b951-d872f2087c98
* Rename discardFramebufferEXT to discardBackbufferCHROMIUM to avoid collision ↵jamesr@chromium.org2012-12-081-1/+1
| | | | | | | | | | | | | | | | | | with real discardFramebufferEXT Calling the (real) discardFramebufferEXT in the compositor is a performance win, at least on tilers. However currently it can't be called because we alias the name for a different API that controls backbuffer allocation, which I don't want to change. This renames the code to make backbuffer control a completely separate API so I can pipe GL_EXT_discard_framebuffer in fully as a follow-up. Depends on https://bugs.webkit.org/show_bug.cgi?id=104316 BUG= Review URL: https://chromiumcodereview.appspot.com/11474014 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@171908 0039d316-1c4b-4281-b951-d872f2087c98
* With this patch we accomplish the following:vollick@chromium.org2012-12-071-33/+34
| | | | | | | | | | | | | | | 1. layer animation controllers are ref counted (so they can be shared by the two impl trees) 2. the layer tree hosts now own a list of active animation controllers. This allows for a couple of nice things __a. Ticking the animation controllers no longer requires a tree walk __b. We will be able to support ticking of animation controllers for layers that are not yet added to the layer tree. (Support coming in a future patch). 3. animation controllers register and unregister themselves from their respective layer tree host's list when they have an animation to tick. BUG=162111 Review URL: https://chromiumcodereview.appspot.com/11348256 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@171714 0039d316-1c4b-4281-b951-d872f2087c98
* [cc] Move root layer pointer to LayerTreeImplnduca@chromium.org2012-12-061-3/+3
| | | | | | | | | | | | | | | | This is the first of a series of patches to move tree-specific state from LayerTreeHostImpl to LayerTreeImpl. The LayerTreeHostImpl has always been imagined to be a "View" aka LayerTreeView(Impl) and will keep ahold of stuff that is view-specific. The LayerTreeImpl, in constrast, will store state that is specific to a specific tree version. BUG=155209 R=enne Review URL: https://chromiumcodereview.appspot.com/11450015 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@171593 0039d316-1c4b-4281-b951-d872f2087c98
* cc: Initialize boolean with false, not 0.danakj@chromium.org2012-12-061-1/+1
| | | | | | | | TBR=jamesr Review URL: https://codereview.chromium.org/11453029 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@171416 0039d316-1c4b-4281-b951-d872f2087c98
* cc: Finish the rename from cc::GraphicsContext to cc::OutputSurfacedanakj@chromium.org2012-12-061-24/+22
| | | | | | | | | | | | | | | It is far too confusing to deal with OutputSurface code when half the time it is called a GraphicsContext incorrectly. Cleaning this up so I can think about the code properly as I upstream the Ubercomp CL. R=jamesr,piman BUG=146080 Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=171403 Review URL: https://codereview.chromium.org/11450019 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@171410 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 171403danakj@chromium.org2012-12-061-21/+24
| | | | | | | | | | | | | | | | | | | | | | cc_unittests is failing. Looks like something conflicted with this. > cc: Finish the rename from cc::GraphicsContext to cc::OutputSurface > > It is far too confusing to deal with OutputSurface code when half the time it is > called a GraphicsContext in correctly. Cleaning this up so I can think about the > code properly as I upstream the Ubercomp CL. > > NOTRY=true > R=jamesr,piman > BUG=146080 > > > Review URL: https://chromiumcodereview.appspot.com/11450019 TBR=danakj@chromium.org Review URL: https://codereview.chromium.org/11439026 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@171406 0039d316-1c4b-4281-b951-d872f2087c98
* cc: Finish the rename from cc::GraphicsContext to cc::OutputSurfacedanakj@chromium.org2012-12-061-24/+21
| | | | | | | | | | | | | | | It is far too confusing to deal with OutputSurface code when half the time it is called a GraphicsContext in correctly. Cleaning this up so I can think about the code properly as I upstream the Ubercomp CL. NOTRY=true R=jamesr,piman BUG=146080 Review URL: https://chromiumcodereview.appspot.com/11450019 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@171403 0039d316-1c4b-4281-b951-d872f2087c98
* cc: Allow a renderer to disallow partial texture updates.danakj@chromium.org2012-12-061-6/+19
| | | | | | | | | | | | | | This is required for delegating renderer, as textures used by the renderer can not be used by the texture updater while the renderer has ownership of them, since it ships them out of process. BUG=146080 R=piman,enne Review URL: https://chromiumcodereview.appspot.com/11457003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@171385 0039d316-1c4b-4281-b951-d872f2087c98
* Organize internal properties of cc/ layer typesshawnsingh@google.com2012-12-051-1/+1
| | | | | | | | | | | | | One useful way to classify the various properties in cc/ layer data types is: (1) properties given by the user of the cc APIs, and (2) properties that are computed inside of cc code that are needed to correctly draw the layers. This patch organizes properties internally so that as we develop cc code, we are forced to be aware of whether a property is "given" or "computed". Review URL: https://codereview.chromium.org/11280263 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@171323 0039d316-1c4b-4281-b951-d872f2087c98
* cc: Move --num-raster-threads setting to LayerTreeSettings.reveman@chromium.org2012-12-041-0/+18
| | | | | | | | | BUG=154637 Review URL: https://chromiumcodereview.appspot.com/11316333 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@171032 0039d316-1c4b-4281-b951-d872f2087c98
* Only do full tree sync if tree is actually changed, otherwise just push ↵jamesr@chromium.org2012-12-041-2/+37
| | | | | | | | | | | | | | | | | | | | | properties We only have to run the complete tree synchronization algorithm if the cc::Layer tree's structure is actually changed, otherwise we can just push properties over since the cc::LayerImpl tree structure is never changed outside of commit. Since scroll offset updates are tied into the tree synchronization algorithm, we currently have to do a full tree sync for scroll updates. Fixing this will speed up scroll operations but requires a bit more work. Speeds up cc_perftests tenTenSingleThread by 7.3% BUG=161166 Review URL: https://chromiumcodereview.appspot.com/11316297 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@170881 0039d316-1c4b-4281-b951-d872f2087c98
* Migrate the Android compositor to cc::Layer classes.leandrogracia@chromium.org2012-12-031-0/+1
| | | | | | | | BUG=163210 Review URL: https://codereview.chromium.org/11428091 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@170737 0039d316-1c4b-4281-b951-d872f2087c98
* This change switches the compositor to the new ↵egraether@chromium.org2012-12-011-16/+17
| | | | | | | | | | | | | | | WebLayerTreeViewClient::createFontAtlas() API. LayerTreeHost now manages whether a font atlas needs to be loaded. commit order: https://bugs.webkit.org/show_bug.cgi?id=102958 https://codereview.chromium.org/11413123 https://bugs.webkit.org/show_bug.cgi?id=102960 BUG= Review URL: https://chromiumcodereview.appspot.com/11413123 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@170614 0039d316-1c4b-4281-b951-d872f2087c98
* This change puts all settings for debugging/HudLayer in a new ↵egraether@chromium.org2012-11-301-17/+68
| | | | | | | | | | | LayerTreeDebugState structure. This allows for easier toggling of debug settings. Commandline switches get OR'ed in. BUG= Review URL: https://chromiumcodereview.appspot.com/11414017 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@170345 0039d316-1c4b-4281-b951-d872f2087c98
* [cc] Rename to --enable-impl-side-painting, route to render process, and ↵nduca@chromium.org2012-11-271-0/+1
| | | | | | | | | | | | | | | expose on settings I added an --enable on expectation that we'll eventually need a disable flag as this becomes more solid. The rest should be straightforward, I think. BUG=155209 R=enne@chromium.org,sky@chromium.org Review URL: https://codereview.chromium.org/11413178 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@169748 0039d316-1c4b-4281-b951-d872f2087c98
* Animation code is not yet migrated by this patch, due to WebTransformOperations.shawnsingh@chromium.org2012-11-271-4/+4
| | | | | | | | BUG=159972 Review URL: https://codereview.chromium.org/11308153 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@169609 0039d316-1c4b-4281-b951-d872f2087c98
* implTransform needs to scale scroll delta with deviceScaleFactor.wjmaclean@chromium.org2012-11-221-14/+15
| | | | | | | | | | | | | | | | This CL fixes a number of issues. First, it fixes the implTransform for non-unit device scale factors, fixing the issue about not being able to pan the zoom viewport all the way to the right/bottom margins. It also allows remove the "fudge-factor" used for hit testing in LayerTreeHost::adjustEventPointForPinchZoom, and finally it resolves the issue regarding pinch-zoom not handling the anchor point properly when device scale factor != 1. BUG=158089 Review URL: https://chromiumcodereview.appspot.com/11414035 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@169308 0039d316-1c4b-4281-b951-d872f2087c98
* Switched cc::Resource and cc::ScopedResource to Chrome coding style.skaslev@chromium.org2012-11-161-2/+2
| | | | | | | | BUG=144576,144577 Review URL: https://chromiumcodereview.appspot.com/11412022 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@168152 0039d316-1c4b-4281-b951-d872f2087c98
* Set contents texture manager's limit to something reasonablejamesr@chromium.org2012-11-151-1/+1
| | | | | | | | | | | | Otherwise, if we compositeAndReadback() before doing any 'normal' commits the contents texture limit is 0 and we get no stuffs. This mainly impacts layout tests. BUG= Review URL: https://codereview.chromium.org/11363254 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@168037 0039d316-1c4b-4281-b951-d872f2087c98
* cc: Visualize non-occluding rects in composited layers.danakj@chromium.org2012-11-151-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | Adds a new flag to show non-occluding rects. When this flag is on, then for any layer which could have been occluding, but isn't we show a rectangle on the screen. This means for layers that have 3d transforms and would never be occluding, we don't draw rectangles. For axis aligned rectangles with opacity < 1, we don't draw rectangles. But when a layer has opacity=1, is axis aligned, but its contents are not considered opaque, then we draw a rect to warn the user that this area could have been occluding if only its contents had been considered opaque. New command-line flag: --show-nonoccluding-rects R=jamesr,enne BUG=160643 Review URL: https://codereview.chromium.org/11377122 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@167816 0039d316-1c4b-4281-b951-d872f2087c98
* cc: Add support for debugging layer borders directly in the compositordanakj@chromium.org2012-11-151-0/+1
| | | | | | | | | | | | | | | Instead of supporting --show-composited-layer-borders via the GraphicsLayer debug borders mechanism, show debug borders on layers when the new LayerTreeSetting flag showDebugBorders is enabled. This depends on https://bugs.webkit.org/show_bug.cgi?id=102130 BUG=159769 R=jamesr,enne Review URL: https://chromiumcodereview.appspot.com/11365239 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@167815 0039d316-1c4b-4281-b951-d872f2087c98
* cc: Remove cc::settings, move them to LayerTreeSettings.danakj@chromium.org2012-11-141-4/+12
| | | | | | | | | | | | | | | | For now, we don't want to make plumbing through the WebKit API for all these settings. So they are marked with a TODO to move into chromium. When we are no longer going through the WebKit API from chromium, we can set these settings in chromium, instead of reading the command-line parameters in cc. Depends on: https://bugs.webkit.org/show_bug.cgi?id=102146 R=jamesr BUG=160771 Review URL: https://chromiumcodereview.appspot.com/11361223 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@167750 0039d316-1c4b-4281-b951-d872f2087c98