summaryrefslogtreecommitdiffstats
path: root/cc/render_pass.cc
Commit message (Collapse)AuthorAgeFilesLines
* cc: Implement DelegatingRender::drawFrame() method.danakj@chromium.org2013-01-161-0/+3
| | | | | | | | | | | | | | | | | | The method sends the render passes it is given to the parent compositor via the output surface. It should include a valid frame metadata with it. Tests: DelegatingRendererTestDraw.runSingleThread DelegatingRendererTestDraw.runMultiThread DelegatingRendererTestResources.runSingleThread DelegatingRendererTestResources.runMultiThread R=piman BUG=123444 Review URL: https://codereview.chromium.org/11777025 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@177073 0039d316-1c4b-4281-b951-d872f2087c98
* cc: Make the ScopedPtrVector and ScopedPtrDeque containers act like STL ↵danakj@chromium.org2013-01-091-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | vector and deque. These classes used methods to match the webcore classes and ease migration. Now they are at odds with the STL versions of these containers. Rename the methods, and change arguments from indexes to iterators, to match the STL containers. isEmpty() => empty() last() => back() first() => front() Peek() => at() append() => push_back() insert(index, value) => insert(iterator, value) remove(index) => erase(iterator) and erase(iterator, iterator) take(index) => take(iterator) takeFront() => take_front() takeBack() => take_back() Review URL: https://chromiumcodereview.appspot.com/11418108 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@175722 0039d316-1c4b-4281-b951-d872f2087c98
* Move filters to RenderPassDrawQuadpiman@chromium.org2012-12-211-11/+2
| | | | | | | | BUG=123444 Review URL: https://chromiumcodereview.appspot.com/11618026 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@174466 0039d316-1c4b-4281-b951-d872f2087c98
* cc: Use skia::RefPtr in place of raw pointers and SkAutoTUnref.danakj@chromium.org2012-12-041-7/+3
| | | | | | | | | | | | | Safe reference counting for skia objects ahoy! R=jamesr BUG=163454 Depends on: https://codereview.chromium.org/11418217/ NOTRY=true Review URL: https://chromiumcodereview.appspot.com/11412255 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@170889 0039d316-1c4b-4281-b951-d872f2087c98
* Animation code is not yet migrated by this patch, due to WebTransformOperations.shawnsingh@chromium.org2012-11-271-4/+2
| | | | | | | | 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
* cc: Make RenderPass into a struct-like class.danakj@chromium.org2012-11-211-89/+60
| | | | | | | | | | | | | | | | | | | This follows the same pattern as DrawQuad and SharedQuadState. The Create() method takes no parameters, allowing the IPC code to create an empty RenderPass. Then we have SetNew() and SetAll() methods to set the the properties of the RenderPass when creating a new one, or when recreating one via IPC, respectively. Covered by existing tests. BUG=152337 TBR=aelias Review URL: https://chromiumcodereview.appspot.com/11413106 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@168998 0039d316-1c4b-4281-b951-d872f2087c98
* cc: Turn SharedQuadState into a struct-like class similar to DrawQuads.danakj@chromium.org2012-11-211-2/+6
| | | | | | | | | | | | | | | | | | | | | | SharedQuadState was a struct previously, but required all the data to be passed to its create() method. This makes the Create() method take no parameters, as DrawQuads work now. And we add a SetAll() method, similar again to DrawQuad. We remove the "id" value from ShardQuadState. This shouldn't be needed for serialization. We can instead just use the pointers in the quads as an id directly, and compare them against each other to see when we need to create a new shared quad state. This is sufficient since all quads that share an instance of SharedQuadState are appended to be adjacent in the quad list. Covered by existing tests. TBR=aelias BUG=152337 Depends on: https://codereview.chromium.org/11411050 Review URL: https://chromiumcodereview.appspot.com/11416088 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@168960 0039d316-1c4b-4281-b951-d872f2087c98
* cc: Make the DrawQuad subclasses into a struct-like classes.danakj@chromium.org2012-11-201-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | I've replaced the create() and constructor on each class with a SetNew() method: void SetNew(const SharedQuadState* shared_quad_state, gfx::Rect rect, ...); This method sets everything in the base class, based on the subclass' interpretation of the minimal parameters given to it. This is used when creating a new quad of this type - hence the name. The "..." represents all the quad-type-specific arguments. I've also added a new SetAll() method, that takes all of the data held by this quad type, and simply passes on the appropriate things to the super class: void SetAll(const SharedQuadState* shared_quad_state, gfx::Rect rect, gfx::Rect opaque_rect, gfx::Rect visible_rect, bool needs_blending, ...); This method is used for deserializing, or other cases where you have all the data for the quad well defined, and want to set every field at once. The "..." represents all the quad-type-specific arguments. Added tests for SetAll() in cc_unittests:DrawQuadTest.* TBR=aelias BUG=152337 Review URL: https://chromiumcodereview.appspot.com/11411050 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@168903 0039d316-1c4b-4281-b951-d872f2087c98
* cc: Remove opaque flags from SharedQuadState and DrawQuaddanakj@chromium.org2012-11-171-2/+1
| | | | | | | | | | | | | | | | | | | | | | | | | Now we will use the opaqueRect (already present on DrawQuad) to tell when things are opaque or not. Each Quad constructor that can be opaque take an opaqueRect. Generally, callers set it equal to the quadRect when contentsOpaque(). TiledLayerImpl can set it to a smaller rect sometimes since it has more knowledge. This made the scrollbar code a bit nicer for the thumb so that it doesn't need to set needs_blending anymore, as the thumb can be marked non-opaque. DebugBorderQuad sets an empty opaqueRect now, so it doesn't need to set needs_blending. Covered by existing tests. BUG=152337 R=enne Review URL: https://chromiumcodereview.appspot.com/11412044 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@168387 0039d316-1c4b-4281-b951-d872f2087c98
* cc: Add support for debugging layer borders directly in the compositordanakj@chromium.org2012-11-151-5/+5
| | | | | | | | | | | | | | | 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
* Remove WTF and WebCore from cc/ and webkit/compositor_bindings/piman@chromium.org2012-11-101-2/+0
| | | | | | | | | | | Ding, dong... BUG=154451 Review URL: https://chromiumcodereview.appspot.com/11410021 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@167071 0039d316-1c4b-4281-b951-d872f2087c98
* cc: Remove WebCore rect use from the compositor, except within Region.danakj@chromium.org2012-11-031-3/+2
| | | | | | | | | | | | | | | | | | | | | | | This replaces the last cases of FloatRect with gfx::RectF. It depends on the IsExpressibleAsRect() method in https://codereview.chromium.org/11364054/ and removes the stubs as well! We add an API to the Region class that is intended to be our final Region class interface. It uses an iterator to walk the rects in the Region, which is compatible with the SkRegion API, but can also hide the IntRects exposed by the WebCore Region API. Once this is done, there is no need to use cc::IntRect, and we can remove it entirely. Covered by existing tests; no change in behaviour. BUG=147395 R=enne Review URL: https://codereview.chromium.org/11360066 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@165837 0039d316-1c4b-4281-b951-d872f2087c98
* Remove most remaining references to IntRect and FloatRect.danakj@chromium.org2012-11-011-1/+1
| | | | | | | | | | | | | | | | The remaining uses are: - Dealing with the output of Region::rects() which gives a vector of WebCore::IntRects. - Using FloatRect::isExpressibleAsIntRect. Covered by existing tests; no new behaviour. BUG=147395 R=enne Review URL: https://codereview.chromium.org/11275113 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@165542 0039d316-1c4b-4281-b951-d872f2087c98
* cc: Use gfx:: Geometry types for positions, bounds, and related things.danakj@chromium.org2012-11-011-2/+2
| | | | | | | | | | | | | | | | | | | | | | | This covers layers, layer tree hosts, and related classes. *phew* I intentionally avoided anything to do with scrolling or page scale. Those should be changed to be Vectors and need a bit more thought. This change should be pretty mindless. It converts to gfx Rect, Size, Vector, and Point classes. No change is made for FloatPoint3D or FloatQuad yet. I've added cc/geometry.h as a place for free functions that don't exist on gfx types yet, and that we should port over in the future. No change in behaviour; covered by existing tests. BUG=147395 R=enne Review URL: https://codereview.chromium.org/11264056 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@165434 0039d316-1c4b-4281-b951-d872f2087c98
* Implement SkImageFilter support in the compositor.senorblanco@chromium.org2012-10-231-0/+8
| | | | | | Review URL: https://chromiumcodereview.appspot.com/11175009 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@163507 0039d316-1c4b-4281-b951-d872f2087c98
* cc: Remove CC*.h temporary includes, part 5/4.tfarina@chromium.org2012-10-231-1/+1
| | | | | | | | | | | | BUG=155413 TEST=cc_unittests R=enne@chromium.org,jamesr@chromium.org TBR=jamesr@chromium.org Review URL: https://chromiumcodereview.appspot.com/11225040 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@163479 0039d316-1c4b-4281-b951-d872f2087c98
* cc: Rename cc classes and members to match filenamesenne@chromium.org2012-10-221-15/+15
| | | | | | | | | | | Fixed reland of https://chromiumcodereview.appspot.com/11189043/ TBR=jam@chromium.org,jamesr@chromium.org BUG=155413 Review URL: https://codereview.chromium.org/11231054 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@163429 0039d316-1c4b-4281-b951-d872f2087c98
* cc: Remove CC*.h temporary includes, part 4/4.tfarina@chromium.org2012-10-221-4/+4
| | | | | | | | | | | | BUG=155413 TEST=cc_unittests R=enne@chromium.org,jamesr@chromium.org TBR=jamesr@chromium.org Review URL: https://chromiumcodereview.appspot.com/11233025 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@163225 0039d316-1c4b-4281-b951-d872f2087c98
* cc: Use ui/gfx geometry types for the CCRenderPass and CCDrawQuad classes.danakj@chromium.org2012-10-201-2/+2
| | | | | | | | | | | | | | | | | We use these geometry types for CCDrawQuad types and in CCRenderPass, and so we also make use of them in the CCRenderer classes. A minor number of copies back to cc:: (WebCore) geometry types do occur in the renderer implementations for now until we migrate the rest of the compositor. Covered by existing tests. BUG=152473 R=enne,jamesr Review URL: https://chromiumcodereview.appspot.com/10984053 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@163142 0039d316-1c4b-4281-b951-d872f2087c98
* Revert "cc: Rename cc classes and members to match filenames"enne@chromium.org2012-10-191-15/+15
| | | | | | This reverts commit 184fac5add06d5f4670fa6be4a4d3b39232d51bb. git-svn-id: svn://svn.chromium.org/chrome/trunk/src@163059 0039d316-1c4b-4281-b951-d872f2087c98
* cc: Rename cc classes and members to match filenamesenne@chromium.org2012-10-191-15/+15
| | | | | | | | BUG=155413 Review URL: https://codereview.chromium.org/11189043 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@163052 0039d316-1c4b-4281-b951-d872f2087c98
* Reland "cc: Remove CC*.h temporary includes, part 1/4."tfarina@chromium.org2012-10-191-2/+2
| | | | | | | | | | | | | | | | Exception: Missing input files: c:\b\build\slave\cr-win-rel\build\src\cc\CCTextureUpdateQueue.h Relanding with this file removed as well. BUG=155413 TEST=cc_unittests TBR=enne@chromium.org Review URL: https://chromiumcodereview.appspot.com/11227005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@163028 0039d316-1c4b-4281-b951-d872f2087c98
* Revert r162986 "cc: Remove CC*.h temporary includes, part 1/4."pfeldman@chromium.org2012-10-191-2/+2
| | | | | | | Build fails with "gclient hooks failed" error. git-svn-id: svn://svn.chromium.org/chrome/trunk/src@162988 0039d316-1c4b-4281-b951-d872f2087c98
* cc: Remove CC*.h temporary includes, part 1/4.tfarina@chromium.org2012-10-191-2/+2
| | | | | | | | | | | BUG=155413 TEST=cc_unittests R=enne@chromium.org Review URL: https://chromiumcodereview.appspot.com/11189076 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@162986 0039d316-1c4b-4281-b951-d872f2087c98
* cc: Switch to Chromium DCHECKs LOGsdanakj@chromium.org2012-10-181-4/+4
| | | | | | | | | | | | | | | We can't compile-guard code and use DCHECK since it can be enabled at runtime. So we guard the DCHECKs that we want to rely on conditionally-compiled code in !NDEBUG compile guards. This also replaces use of LOG_ERROR("Foo") with LOG(ERROR)<<"Foo"; This was previously discussed and committed as https://codereview.chromium.org/11048044/ using a guard based on LOGGING_IS_OFFICIAL_BUILD, however this was not sufficient since there are build configurations that are official builds but have dchecks compiled. R=enne Review URL: https://codereview.chromium.org/11192030 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@162739 0039d316-1c4b-4281-b951-d872f2087c98
* Revert "cc: Switch to Chromium DCHECKs LOGs"mattm@chromium.org2012-10-171-4/+4
| | | | | | | | | | This reverts commit 162296. (https://chromiumcodereview.appspot.com/11048044) TBR=danakj@chromium.org Review URL: https://codereview.chromium.org/11196014 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@162297 0039d316-1c4b-4281-b951-d872f2087c98
* cc: Switch to Chromium DCHECKs LOGsdanakj@chromium.org2012-10-171-4/+4
| | | | | | | | | | | | | | We can't compile-guard code and use DCHECK since it can be enabled at runtime. This removes all compile-time guards, and makes use of DCHECK instead of ASSERT. We use DCHECK_IS_ON() to early out and avoid extra work just for DCHECK where possible as well. This also replaces use of LOG_ERROR("Foo") with LOG(ERROR)<<"Foo"; R=enne,jamesr Review URL: https://chromiumcodereview.appspot.com/11048044 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@162296 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 162284 - cc: Get rid of CC*.h temporary header files.mattm@chromium.org2012-10-171-1/+1
| | | | | | | | | | | | BUG=155413 TEST=cc_unittests R=enne@chromium.org,jamesr@chromium.org Review URL: https://codereview.chromium.org/11145033 TBR=tfarina@chromium.org git-svn-id: svn://svn.chromium.org/chrome/trunk/src@162286 0039d316-1c4b-4281-b951-d872f2087c98
* cc: Get rid of CC*.h temporary header files.tfarina@chromium.org2012-10-161-1/+1
| | | | | | | | | | BUG=155413 TEST=cc_unittests R=enne@chromium.org,jamesr@chromium.org Review URL: https://codereview.chromium.org/11145033 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@162284 0039d316-1c4b-4281-b951-d872f2087c98
* [cc] Rename all cc/ filenames to Chromium styleenne@chromium.org2012-10-121-0/+106
BUG=155413 Review URL: https://codereview.chromium.org/11122003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@161671 0039d316-1c4b-4281-b951-d872f2087c98