diff options
author | leandrogracia@chromium.org <leandrogracia@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-03-27 17:43:16 +0000 |
---|---|---|
committer | leandrogracia@chromium.org <leandrogracia@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-03-27 17:43:16 +0000 |
commit | 9ee4d3a2fdc6accd37343d148e5c5149c1b7d045 (patch) | |
tree | aaf3ae0b3ec39f4c361e05a96af2856d0365ccea /cc/quads/picture_draw_quad.cc | |
parent | 22b332e314c574e899c34c4e9ef3dbcbaea5582e (diff) | |
download | chromium_src-9ee4d3a2fdc6accd37343d148e5c5149c1b7d045.zip chromium_src-9ee4d3a2fdc6accd37343d148e5c5149c1b7d045.tar.gz chromium_src-9ee4d3a2fdc6accd37343d148e5c5149c1b7d045.tar.bz2 |
Implement on demand quad rasterization for PicturePiles.
BUG=173011
Review URL: https://chromiumcodereview.appspot.com/12642010
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@190969 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'cc/quads/picture_draw_quad.cc')
-rw-r--r-- | cc/quads/picture_draw_quad.cc | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/cc/quads/picture_draw_quad.cc b/cc/quads/picture_draw_quad.cc new file mode 100644 index 0000000..8fda699 --- /dev/null +++ b/cc/quads/picture_draw_quad.cc @@ -0,0 +1,67 @@ +// Copyright 2013 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "cc/quads/picture_draw_quad.h" + +namespace cc { + +PictureDrawQuad::PictureDrawQuad() { +} + +PictureDrawQuad::~PictureDrawQuad() { +} + +scoped_ptr<PictureDrawQuad> PictureDrawQuad::Create() { + return make_scoped_ptr(new PictureDrawQuad); +} + +void PictureDrawQuad::SetNew(const SharedQuadState* shared_quad_state, + gfx::Rect rect, + gfx::Rect opaque_rect, + const gfx::RectF& tex_coord_rect, + gfx::Size texture_size, + bool swizzle_contents, + gfx::Rect content_rect, + float contents_scale, + scoped_refptr<PicturePileImpl> picture_pile) { + ContentDrawQuadBase::SetNew(shared_quad_state, DrawQuad::PICTURE_CONTENT, + rect, opaque_rect, tex_coord_rect, texture_size, + swizzle_contents); + this->content_rect = content_rect; + this->contents_scale = contents_scale; + this->picture_pile = picture_pile; +} + +void PictureDrawQuad::SetAll(const SharedQuadState* shared_quad_state, + gfx::Rect rect, + gfx::Rect opaque_rect, + gfx::Rect visible_rect, + bool needs_blending, + const gfx::RectF& tex_coord_rect, + gfx::Size texture_size, + bool swizzle_contents, + gfx::Rect content_rect, + float contents_scale, + scoped_refptr<PicturePileImpl> picture_pile) { + ContentDrawQuadBase::SetAll(shared_quad_state, + DrawQuad::PICTURE_CONTENT, rect, opaque_rect, + visible_rect, needs_blending, tex_coord_rect, + texture_size, swizzle_contents); + this->content_rect = content_rect; + this->contents_scale = contents_scale; + this->picture_pile = picture_pile; +} + +void PictureDrawQuad::IterateResources( + const ResourceIteratorCallback& callback) { + // TODO(danakj): Convert to TextureDrawQuad? + NOTIMPLEMENTED(); +} + +const PictureDrawQuad* PictureDrawQuad::MaterialCast(const DrawQuad* quad) { + DCHECK(quad->material == DrawQuad::PICTURE_CONTENT); + return static_cast<const PictureDrawQuad*>(quad); +} + +} // namespace cc |