summaryrefslogtreecommitdiffstats
path: root/cc
Commit message (Collapse)AuthorAgeFilesLines
* cc: Do not allow CCScheduler::processScheduledActions to recursebrianderson@chromium.org2012-09-262-15/+13
| | | | | | | | | BUG=151420 Review URL: https://chromiumcodereview.appspot.com/10969027 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@158913 0039d316-1c4b-4281-b951-d872f2087c98
* Remove WTF HashMap and PassOwnPtr dependencies for CCRenderPassdanakj@chromium.org2012-09-2619-141/+344
| | | | | | | | | | | | | | | | We add a ScopedPtrHashMap and ScopedPtrVector which preserve the behaviour of HashMap<T, OwnPtr<V> > and Vector<OwnPtr<T>> and use these for CCRenderPass and any code that creates CCRenderPass objects. R=enne,jamesr BUG=152049 Committed: http://src.chromium.org/viewvc/chrome?view=rev&revision=158729 Review URL: https://chromiumcodereview.appspot.com/10979010 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@158837 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 158729 - Remove WTF HashMap and PassOwnPtr dependencies for CCRenderPassdanakj@chromium.org2012-09-2619-344/+141
| | | | | | | | | | | | | | | | | We add a ScopedPtrHashMap and ScopedPtrVector which preserve the behaviour of HashMap<T, OwnPtr<V> > and Vector<OwnPtr<T>> and use these for CCRenderPass and any code that creates CCRenderPass objects. R=enne,jamesr BUG=152049 Review URL: https://chromiumcodereview.appspot.com/10979010 TBR=danakj@chromium.org Review URL: https://codereview.chromium.org/10984036 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@158738 0039d316-1c4b-4281-b951-d872f2087c98
* Remove WTF HashMap and PassOwnPtr dependencies for CCRenderPassdanakj@chromium.org2012-09-2619-141/+344
| | | | | | | | | | | | | | We add a ScopedPtrHashMap and ScopedPtrVector which preserve the behaviour of HashMap<T, OwnPtr<V> > and Vector<OwnPtr<T>> and use these for CCRenderPass and any code that creates CCRenderPass objects. R=enne,jamesr BUG=152049 Review URL: https://chromiumcodereview.appspot.com/10979010 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@158729 0039d316-1c4b-4281-b951-d872f2087c98
* Fix issue where CCprioritizedTexture::Backing's ↵ccameron@chromium.org2012-09-251-1/+1
| | | | | | | | | | | | | | | requestPriorityAtLastPriorityUpdate returns a bool instead of an int. This bug effectively disables the prioritized texture manager (so as soon as you hit memory pressure, we discard textures in more-or-less random order). This needs to be integrated to M23 as well. BUG=152050 Review URL: https://chromiumcodereview.appspot.com/10986006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@158698 0039d316-1c4b-4281-b951-d872f2087c98
* Fix handling of lost context during initialization.piman@chromium.org2012-09-252-22/+72
| | | | | | | | | | | | | | | Make sure we are in a consistent state at the end of initializeRenderer: - either we succeed and have a context, a renderer and a resourceProvider - or we fail and we have neither We also always send the didLoseContext on layers, not conditionally on the failure mode. BUG=151042 Review URL: https://chromiumcodereview.appspot.com/10965030 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@158552 0039d316-1c4b-4281-b951-d872f2087c98
* Add methods for hashing pairs of integer values.danakj@chromium.org2012-09-254-0/+212
| | | | | | | | | | | | | | | | | | | | | | | | This will allow us to create hash_maps that are keyed off of std::pair objects holding two integer values. When both integers are at most 32-bits we can use 64-bit multiplication to efficiently find the hash code. When one of the integers is 64-bit, then we split the two values in the pair into 4 32-bit integers. References to the algorithms used are contained in comments within the code. These algorithms are similar to the hash function recently added to WebKit in https://bugs.webkit.org/show_bug.cgi?id=96022, however since our hash codes are of type size_t (theirs are unsigned) which is 64 bits large on some platforms, we can be more efficient and not have to reduce the hash code to 32 bits on some platforms. Tested by cc_unittests: HashPairTest.IntegerPairs. BUG=149870 Review URL: https://chromiumcodereview.appspot.com/10911330 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@158479 0039d316-1c4b-4281-b951-d872f2087c98
* Reenable CCOcclusionTrackerTestViewportRectOverChild test.danakj@chromium.org2012-09-241-2/+1
| | | | | | | | | BUG=148906 Review URL: https://chromiumcodereview.appspot.com/10967018 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@158411 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 158386 - Revert 158362 - Support high DPI scrollbar on top level web ↵avi@chromium.org2012-09-247-11/+52
| | | | | | | | | | | | | | | | | | | | frame. BUG=141389 TEST=Run chrome with --force-device-scale-factor=2 --force-compositing-mode and verify that the top-level scrollbar is high dpi. CC tests are known flaky: http://code.google.com/p/chromium/issues/detail?id=148490 Re-committing the CC change. Review URL: https://chromiumcodereview.appspot.com/10909255 TBR=flackr@chromium.org Review URL: https://codereview.chromium.org/10990004 TBR=avi@chromium.org Review URL: https://codereview.chromium.org/10989003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@158398 0039d316-1c4b-4281-b951-d872f2087c98
* Add CC software renderer.aelias@chromium.org2012-09-2413-15/+601
| | | | | | | | | | | | | | | | | | | | This new renderer adds support for the compositor to output to a software-bitmap surface instead of a GL context. It uses Skia to interpret the CCDrawQuads and configures the resource provider to only use bitmap-backed resources. During initialization, the host checks whether a GL or software output surface is available and initializes the appropriate renderer. The basic texture and solid-color based quad types are supported, along with alpha, clipping and 3d transformations. Render surfaces and video are not yet supported. BUG=124671 Review URL: https://chromiumcodereview.appspot.com/10918258 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@158396 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 158362 - Support high DPI scrollbar on top level web frame.avi@chromium.org2012-09-247-52/+11
| | | | | | | | | | | | | | BUG=141389 TEST=Run chrome with --force-device-scale-factor=2 --force-compositing-mode and verify that the top-level scrollbar is high dpi. Reverting: CCLayerTreeHostTestAtomicCommit.runMultiThread broke, this change was the only CC change in the blamelist. Review URL: https://chromiumcodereview.appspot.com/10909255 TBR=flackr@chromium.org Review URL: https://codereview.chromium.org/10990004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@158386 0039d316-1c4b-4281-b951-d872f2087c98
* Support high DPI scrollbar on top level web frame.flackr@chromium.org2012-09-247-11/+52
| | | | | | | | | | BUG=141389 TEST=Run chrome with --force-device-scale-factor=2 --force-compositing-mode and verify that the top-level scrollbar is high dpi. Review URL: https://chromiumcodereview.appspot.com/10909255 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@158362 0039d316-1c4b-4281-b951-d872f2087c98
* cc: Remove TextureUploaderOption.reveman@chromium.org2012-09-2214-63/+51
| | | | | | | | | | | After stopping to throttle partial uploads this option is no longer needed. BUG= TEST=cc_unittests Review URL: https://chromiumcodereview.appspot.com/10961008 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@158192 0039d316-1c4b-4281-b951-d872f2087c98
* cc_unittests fails on several platforms with 158148 vitalybuka@chromium.org2012-09-2210-67/+14
| | | | | | | | | | | | | | | | | | | Revert 158148 - [cc] Color evicted vs. invalidated checkerboard tiles differently If --show-debug-layer-borders are on, tint checkerboards differently. * Light red = texture backing for tile was evicted or never painted * Light blue = we have a texture backing, but it's been invalidated BUG=150610 Review URL: https://chromiumcodereview.appspot.com/10962042 TBR=enne@chromium.org Review URL: https://codereview.chromium.org/10968047 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@158169 0039d316-1c4b-4281-b951-d872f2087c98
* [cc] Color evicted vs. invalidated checkerboard tiles differentlyenne@chromium.org2012-09-2210-14/+67
| | | | | | | | | | | | | | If --show-debug-layer-borders are on, tint checkerboards differently. * Light red = texture backing for tile was evicted or never painted * Light blue = we have a texture backing, but it's been invalidated BUG=150610 Review URL: https://chromiumcodereview.appspot.com/10962042 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@158148 0039d316-1c4b-4281-b951-d872f2087c98
* [cc] Add test for mask layers and lost contextsenne@chromium.org2012-09-213-20/+38
| | | | | | | | | | | | Also change ASSERTS to CHECK failures when a resource does not exist, since this is a fatal error and it's better to CHECK-fail than access random memory. BUG=151428 Review URL: https://chromiumcodereview.appspot.com/10970043 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@158098 0039d316-1c4b-4281-b951-d872f2087c98
* Gracefully handle zero duration curves in CCActiveAnimationvollick@chromium.org2012-09-214-3/+31
| | | | | | | | | | | We should trim to time 0 in this case. BUG= Review URL: https://chromiumcodereview.appspot.com/10961036 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@158092 0039d316-1c4b-4281-b951-d872f2087c98
* Fix remaining cc files to compile with Clangenne@chromium.org2012-09-2144-101/+462
| | | | | | | | BUG=none Review URL: https://codereview.chromium.org/10947047 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@158005 0039d316-1c4b-4281-b951-d872f2087c98
* Add high DPI unit test for verifying visible and drawable content rects in ↵shawnsingh@chromium.org2012-09-201-18/+85
| | | | | | | | | | | | | compositor. A decent array of unit tests was already added, but this one was missing; this patch finally adds that unit test. BUG= Review URL: https://chromiumcodereview.appspot.com/10964002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@157863 0039d316-1c4b-4281-b951-d872f2087c98
* cc: Rename maxPartialTextureUpdatesMax to partialTextureUpdatesMax.reveman@google.com2012-09-201-2/+2
| | | | | | | | | BUG=145825 TBR=nduca,brianderson Review URL: https://chromiumcodereview.appspot.com/10969018 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@157795 0039d316-1c4b-4281-b951-d872f2087c98
* Add the ubercomp DelegatedRendererLayer.danakj@chromium.org2012-09-2019-22/+787
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This adds a layer that owns a set of RenderPasses with DrawQuads, and is able to insert those RenderPasses and DrawQuads into the current frame during CCLayerTreeHostImpl::calculateRenderPasses(). The layer owns whatever quads/passes you give to it, and copies them with modifications as needed into the current frame via the QuadSink. Quads from the layer's root RenderPass are merged into its target RenderPass, with the transform and opacity being modified if needed. Other RenderPasses are inserted into the frame as-is, with RenderPass ids being adjusted to not collide with any other RenderPasses in the frame, and using a scheme that allows the layer to reverse-lookup its own copy of a RenderPass from the id it generated. Moved from: https://bugs.webkit.org/show_bug.cgi?id=94145 Tests: CCDelegatedRendererLayerImplTestSimple.AddsContributingRenderPasses CCDelegatedRendererLayerImplTestSimple.AddsQuadsToContributingRenderPasses CCDelegatedRendererLayerImplTestSimple.AddsQuadsToTargetRenderPass CCDelegatedRendererLayerImplTestSimple.QuadsFromRootRenderPassAreModifiedForTheTarget CCDelegatedRendererLayerImplTestOwnSurface.AddsRenderPasses CCDelegatedRendererLayerImplTestOwnSurface.AddsQuadsToContributingRenderPasses CCDelegatedRendererLayerImplTestOwnSurface.AddsQuadsToTargetRenderPass CCDelegatedRendererLayerImplTestOwnSurface.QuadsFromRootRenderPassAreNotModifiedForTheTarget BUG=123445 Committed: http://src.chromium.org/viewvc/chrome?view=rev&revision=157700 Review URL: https://chromiumcodereview.appspot.com/10916307 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@157794 0039d316-1c4b-4281-b951-d872f2087c98
* Convert CC scheduler logic to use base::TimeTicks/Delta instead of doublesjamesr@chromium.org2012-09-2017-162/+159
| | | | | | | | | | | | | | Instead of using double seconds, this converts the scheduler and timer logic in libcc to use base::TimeTicks and base::TimeDelta. This puts the units in the type system instead of variable names and comments making second/millisecond confusion less likely and integrates better with the rest of chromium. BUG= Review URL: https://chromiumcodereview.appspot.com/10956006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@157783 0039d316-1c4b-4281-b951-d872f2087c98
* cc: Remove CCTextureUpdateController::updateTextures().reveman@chromium.org2012-09-206-118/+144
| | | | | | | | | | | | | Remove updateTextures() and instead use a CCTextureUpdateController instance when updating textures from CCSingleThreadProxy. BUG= TEST=cc_unittests Review URL: https://chromiumcodereview.appspot.com/10950008 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@157722 0039d316-1c4b-4281-b951-d872f2087c98
* cc: Fix CCLayerTreeHostTestScrollMultipleRedraw.runMultiThread test.reveman@chromium.org2012-09-201-4/+4
| | | | | | | | | | | | | | | | CCLayerTreeHostImpl::sourceFrameNumber() is not updated until the commit is finished. Use CCLayerTreeHost::commitNumber() instead to determine what scroll position to expect. WebKit bug: https://bugs.webkit.org/show_bug.cgi?id=95473 BUG= TEST=cc_unittest Review URL: https://chromiumcodereview.appspot.com/10944031 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@157714 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 157700 - Add the ubercomp DelegatedRendererLayer.ilevy@chromium.org2012-09-2019-787/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This adds a layer that owns a set of RenderPasses with DrawQuads, and is able to insert those RenderPasses and DrawQuads into the current frame during CCLayerTreeHostImpl::calculateRenderPasses(). The layer owns whatever quads/passes you give to it, and copies them with modifications as needed into the current frame via the QuadSink. Quads from the layer's root RenderPass are merged into its target RenderPass, with the transform and opacity being modified if needed. Other RenderPasses are inserted into the frame as-is, with RenderPass ids being adjusted to not collide with any other RenderPasses in the frame, and using a scheme that allows the layer to reverse-lookup its own copy of a RenderPass from the id it generated. Moved from: https://bugs.webkit.org/show_bug.cgi?id=94145 Tests: CCDelegatedRendererLayerImplTestSimple.AddsContributingRenderPasses CCDelegatedRendererLayerImplTestSimple.AddsQuadsToContributingRenderPasses CCDelegatedRendererLayerImplTestSimple.AddsQuadsToTargetRenderPass CCDelegatedRendererLayerImplTestSimple.QuadsFromRootRenderPassAreModifiedForTheTarget CCDelegatedRendererLayerImplTestOwnSurface.AddsRenderPasses CCDelegatedRendererLayerImplTestOwnSurface.AddsQuadsToContributingRenderPasses CCDelegatedRendererLayerImplTestOwnSurface.AddsQuadsToTargetRenderPass CCDelegatedRendererLayerImplTestOwnSurface.QuadsFromRootRenderPassAreNotModifiedForTheTarget BUG=123445 Review URL: https://chromiumcodereview.appspot.com/10916307 TBR=danakj@chromium.org Review URL: https://codereview.chromium.org/10957011 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@157704 0039d316-1c4b-4281-b951-d872f2087c98
* Add the ubercomp DelegatedRendererLayer.danakj@chromium.org2012-09-2019-22/+787
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This adds a layer that owns a set of RenderPasses with DrawQuads, and is able to insert those RenderPasses and DrawQuads into the current frame during CCLayerTreeHostImpl::calculateRenderPasses(). The layer owns whatever quads/passes you give to it, and copies them with modifications as needed into the current frame via the QuadSink. Quads from the layer's root RenderPass are merged into its target RenderPass, with the transform and opacity being modified if needed. Other RenderPasses are inserted into the frame as-is, with RenderPass ids being adjusted to not collide with any other RenderPasses in the frame, and using a scheme that allows the layer to reverse-lookup its own copy of a RenderPass from the id it generated. Moved from: https://bugs.webkit.org/show_bug.cgi?id=94145 Tests: CCDelegatedRendererLayerImplTestSimple.AddsContributingRenderPasses CCDelegatedRendererLayerImplTestSimple.AddsQuadsToContributingRenderPasses CCDelegatedRendererLayerImplTestSimple.AddsQuadsToTargetRenderPass CCDelegatedRendererLayerImplTestSimple.QuadsFromRootRenderPassAreModifiedForTheTarget CCDelegatedRendererLayerImplTestOwnSurface.AddsRenderPasses CCDelegatedRendererLayerImplTestOwnSurface.AddsQuadsToContributingRenderPasses CCDelegatedRendererLayerImplTestOwnSurface.AddsQuadsToTargetRenderPass CCDelegatedRendererLayerImplTestOwnSurface.QuadsFromRootRenderPassAreNotModifiedForTheTarget BUG=123445 Review URL: https://chromiumcodereview.appspot.com/10916307 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@157700 0039d316-1c4b-4281-b951-d872f2087c98
* Add wrapper container for a vector of OwnPtr<T>jamesr@chromium.org2012-09-2031-151/+269
| | | | | | | | | | | | | | In cc we frequently use WTF::Vector<WTF::OwnPtr<T> > to store lists of single-ownership objects. In WTF this works nicely using template specialization in the container implementation. In chromium we use STL containers and can't modify the implementation, so this adds a wrapper to do roughly the same thing. BUG= Review URL: https://chromiumcodereview.appspot.com/10940002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@157699 0039d316-1c4b-4281-b951-d872f2087c98
* cc: Do not report old query values when reusedbrianderson@chromium.org2012-09-201-0/+1
| | | | | | | | | BUG=150881 Review URL: https://chromiumcodereview.appspot.com/10957007 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@157698 0039d316-1c4b-4281-b951-d872f2087c98
* Allow deletion of some (as opposed to all) textures on the impl thread. ccameron@chromium.org2012-09-1913-27/+150
| | | | | | | | | | | | Enable removing uploads to evicted textures from texture upload queues. Track whether not a CCPrioritizedTexture::Backing has been evicted in the structure itself. Purge texture upload queues of evicted backings instead of clearing the entire queue. Added CCTextureUpdateControllerTest.ClearUploadsToEvictedResources to test the new eviction logic. BUG=134750 Review URL: https://chromiumcodereview.appspot.com/10947017 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@157662 0039d316-1c4b-4281-b951-d872f2087c98
* Fix CC*Renderer and CC*LayerImpl to compile with Clangenne@chromium.org2012-09-1937-106/+346
| | | | | | | | | BUG=none Review URL: https://chromiumcodereview.appspot.com/10942040 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@157654 0039d316-1c4b-4281-b951-d872f2087c98
* Adaptively throttle texture uploadsbrianderson@chromium.org2012-09-198-24/+108
| | | | | | | | | | | | | | | | | We need adaptive texture uploading because we run on a wide variety of systems and a one size fits all policy will not work. This patch maintains a tick rate of 4ms and default upload count of 12 textures per tick, but allows for more textures per tick if we've measured that we can be faster. The number of partial updates allowed is also communicated from the impl thread to the main thread at the beggining of each frame. BUG=145825 Review URL: https://chromiumcodereview.appspot.com/10916292 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@157473 0039d316-1c4b-4281-b951-d872f2087c98
* Add some missing unit tests and update cc_unittests and ↵shawnsingh@chromium.org2012-09-1812-1/+4079
| | | | | | | | | | | | | | | webkit_compositor_bindings_unittests After GTFO, some unit test files were not in the right place, or missing entirely. This patch (1) adds some missing unit tests, (2) moves some tests from webkit_compositor_bindings_unitttests to cc_unitttests, and (3) removes some redundant entries in the gyp files for those targets. BUG=https://code.google.com/p/chromium/issues/detail?id=149121 Review URL: https://chromiumcodereview.appspot.com/10909218 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@157425 0039d316-1c4b-4281-b951-d872f2087c98
* Enable webkit_compositor_bindings_unittests in component buildsjamesr@chromium.org2012-09-184-54/+101
| | | | | | | | | | | | This shares the compositor setup code from cc_unittests so we can run webkit_compositor_bindings_unittests in component builds. BUG= Review URL: https://chromiumcodereview.appspot.com/10918281 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@157416 0039d316-1c4b-4281-b951-d872f2087c98
* Integrate r128344 and r128253 from WebKitccameron@chromium.org2012-09-1814-141/+386
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Synopsis of changes below: [chromium] Evict textures through the texture manager instead of the resource provider https://bugs.webkit.org/show_bug.cgi?id=96463 Reviewed by NOBODY (OOPS!). When deleting contents textures' resources on the impl thread, do the deletion through the CCPrioritizedTextureManager instead of the CCResourceProvider. This requires traversing the backings list on the impl thread while the main thread is running, so remove the one remaining traversal of the backings list by the main thread. This traversal happens when unlinking textures that were evicted by the impl thread, so explicitly send the list of evicted backings from the impl thread to the main thread. Unify all resource deletion paths in the CCPrioritizedTextureManager. Always perform the sequence of eviction (deleting the GL resource) and then destruction of evicted backings (deleting the objects). Also, use the same function (evictBackingsToReduceMemory) to reduce memory consumption both during commit and when done by the impl thread in response to a request by the GPU memory manager. Note that destroying only some of the resources at a time during texture eviction (as opposed all resources) is still not supported because the texture upload queues cannot be only-partially invalidated yet. Updated tests to take this behavior into account. [chromium] Make prioritized texture manager not touch backings array on the main thread https://bugs.webkit.org/show_bug.cgi?id=96114 Reviewed by NOBODY (OOPS!). Take a snapshot of the textures' priorities from the main thread, and save it in their backings for access by the impl thread. Update functions that access the sorted backings array to use the snapshotted values instead of the values that the main thread may have computed for the next frame. Make the main thread not touch the m_backings array. Split prioritizeTextures into a updateBackingsPriorities function. In places where the main thread would have touched m_backings, set a flag specifying that m_backings needs to be re-sorted before any function that requires it be sorted by priority be executed. Update the two functions that require sorted order (acquireBacking and reduceMemory) to sort the backings array (if needed) before traversing it. Updated tests to set correct thread during asserts. Add a test to verify that requestLate is correctly incorporated into the backing sorting. Review URL: https://chromiumcodereview.appspot.com/10919320 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@157412 0039d316-1c4b-4281-b951-d872f2087c98
* Make cc's use of WTF::HashMap robust to key/value changeenne@chromium.org2012-09-187-39/+184
| | | | | | | | | | | | A future WebKit change (bug 82784) plans to change HashMap iterator's first/second to key/value. Since cc is still (unfortunately) using WebKit's WTF template classes, be robust to this patch landing with an #ifdef. BUG=none Review URL: https://codereview.chromium.org/10914327 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@157376 0039d316-1c4b-4281-b951-d872f2087c98
* cc: Only use upload throttling when performing full texture uploads.reveman@chromium.org2012-09-184-275/+50
| | | | | | | | | | | | | This reduces the complexity of CCTextureUpdateController::updateTextures significantly. BUG=145825 TEST=cc_unittests Review URL: https://chromiumcodereview.appspot.com/10937007 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@157352 0039d316-1c4b-4281-b951-d872f2087c98
* Move TextureCopier and TextureUploader from CCRenderer to CCResourceProviderpiman@chromium.org2012-09-1816-93/+85
| | | | | | | | | | | These don't really belong to the CCRenderer, and this way we share a bit more between renderers. BUG=None Review URL: https://chromiumcodereview.appspot.com/10917251 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@157289 0039d316-1c4b-4281-b951-d872f2087c98
* cc: Remove partial texture updates from scheduler.reveman@google.com2012-09-175-30/+75
| | | | | | | | | | | | | The texture update controller now completes when all full size texture uploads are done and the texture uploader isn't busy. All partial texture updates are now done at the same time as commit. BUG=149194 TEST=cc_unittests Review URL: https://codereview.chromium.org/10917265 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@157220 0039d316-1c4b-4281-b951-d872f2087c98
* Add scrolling related getters to WebLayerImplskyostil@chromium.org2012-09-171-1/+7
| | | | | | | | | | | | | | | | | This patch adds a number of scrolling related getters to WebLayerImpl and LayerChromium for testing purposes. They will be used by the ScrollingCoordinatorChromium test (http://webkit.org/b/96657). Note that the WebLayerImpl getters aren't marked with OVERRIDE because the corresponding changes to WebLayer aren't in place yet. This will be corrected later. BUG=none Review URL: https://chromiumcodereview.appspot.com/10909233 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@157101 0039d316-1c4b-4281-b951-d872f2087c98
* Adjust texture priorities in preparation of impl-thread eviction of only ↵ccameron@chromium.org2012-09-174-29/+39
| | | | | | | | | | | | | some textures This came from the already-reviewed WebKit bug https://bugs.webkit.org/show_bug.cgi?id=95758 I forgot to cq? that bug, so it didn't land. Review URL: https://chromiumcodereview.appspot.com/10917281 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@157075 0039d316-1c4b-4281-b951-d872f2087c98
* Use OwnArrayPtr<> for new[]-allocated memory to match the delete[] calljamesr@chromium.org2012-09-151-1/+2
| | | | | | | | | BUG=149736 Review URL: https://chromiumcodereview.appspot.com/10928210 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@156981 0039d316-1c4b-4281-b951-d872f2087c98
* cc: Remove awareness of incremental updates from state machine.reveman@chromium.org2012-09-155-164/+96
| | | | | | | | | | | | | | | | | | CCScheduler handles incremental resources updates based on amount of time until next vsync tick. We currently get no benefit from having CCSchedulerStateMachine aware of these incremental updates. This cleans up both CCScheduler and CCSchedulerStateMachine be removing incremental update awareness from CCSchedulerStateMachine. WebKit bug: https://bugs.webkit.org/show_bug.cgi?id=95290 BUG= TEST=cc_unittests Review URL: https://chromiumcodereview.appspot.com/10913261 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@156950 0039d316-1c4b-4281-b951-d872f2087c98
* Change cc files from namespace WebCore to ccenne@chromium.org2012-09-14265-496/+880
| | | | | | | | | | | | | | | | | | These files no longer are part of WebCore, so it doesn't make any sense to keep that namespace. Due to being unable to forward declare typedefs in C++, the stubs files (like FloatSize) now define cc::FloatSize as being derived from WebCore::FloatSize. With enough constructors, this lets them be used interchangably in the short term until those geometry classes become real and not dependent on WebCore files. This allows (nearly) all the forward declarations and uses of these types in cc stay as-is with minimal churn. BUG=none Review URL: https://codereview.chromium.org/10914268 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@156905 0039d316-1c4b-4281-b951-d872f2087c98
* WebKit revision 120360 changed chromium so that we don't need to have a ↵vollick@google.com2012-09-141-0/+6
| | | | | | | | | | | | | | | | | layerTreeHost to add an animation successfully. For now we are going back to old semantics because it causes mapsGL pages to have some un-accelerated animations that hang as a result. The tradeoff of doing this patch is that we gain correctness for mapsGL page, but we regress the fix in WebKit 120360 that fixed janky animations. BUG=http://code.google.com/p/chromium/issues/detail?id=138213 Review URL: https://codereview.chromium.org/10911302 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@156864 0039d316-1c4b-4281-b951-d872f2087c98
* Port CCCompletionEvent over to use base::WaitableEventjamesr@chromium.org2012-09-141-8/+5
| | | | | | | | | | | | | | | | base::WaitableEvent is a better match for CCCompletionEvent's desired behavior on windows. ConditionVariables are implemented in a funky way on windows and an even more funky way on win xp. base::WaitableEvent is more efficient on windows. On non-windows, base::WaitableEvent is basically the same thing as CCCompletionEvent (mutex + condition variable). BUG=148490 Review URL: https://chromiumcodereview.appspot.com/10916303 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@156730 0039d316-1c4b-4281-b951-d872f2087c98
* cc: Scheduler will never process a commit until it receives a vsync tick.reveman@chromium.org2012-09-138-79/+123
| | | | | | | | | | | | | | | | Add updateResourcesComplete callback to CCScheduler and use this to indicate completion of texture updates instead of calling CCSchedulerClient::hasMoreResourceUpdates when receiving a vsync tick. WebKit bug: https://bugs.webkit.org/show_bug.cgi?id=94721 BUG=123399,147651 TEST=Added CCTextureUpdateControllerTest.UpdateMoreTextures, CCTextureUpdateControllerTest.HasMoreUpdates and CCTextureUpdateControllerTest.UpdatesCompleteInFiniteTime to cc_unittests. Review URL: https://chromiumcodereview.appspot.com/10911262 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@156669 0039d316-1c4b-4281-b951-d872f2087c98
* cc: Avoid unnecessary destruction of texture update controller.reveman@chromium.org2012-09-132-3/+2
| | | | | | | | | | | | | GLES imlementation now handles this case properly and returns the correct value from glGetQueryObjectuivEXT when the context is lost. BUG= TEST=cc_unittests Review URL: https://chromiumcodereview.appspot.com/10914236 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@156623 0039d316-1c4b-4281-b951-d872f2087c98
* Disable test CCOcclusionTrackerTestViewportRectOverChildjamesr@chromium.org2012-09-131-1/+2
| | | | | | | | | TBR=danakj@chromium.org BUG=148906 Review URL: https://chromiumcodereview.appspot.com/10933076 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@156572 0039d316-1c4b-4281-b951-d872f2087c98
* Add more cc OWNERSjamesr@chromium.org2012-09-131-0/+2
| | | | | | | | | | | Let's start here and iterate as needed. BUG= Review URL: https://chromiumcodereview.appspot.com/10917230 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@156501 0039d316-1c4b-4281-b951-d872f2087c98
* Tweak cc gyps to work in a pure WebKit checkoutjamesr@chromium.org2012-09-134-8/+46
| | | | | | | | | | | | | When we're in a WebKit checkout our stubs things don't work since the third_party/WebKit... trick only works for public API headers. This just uses the real WebCore/etc headers in that configuration. BUG= Review URL: https://chromiumcodereview.appspot.com/10908230 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@156485 0039d316-1c4b-4281-b951-d872f2087c98