diff options
Diffstat (limited to 'chromium/cc/quads/tile_draw_quad.cc')
-rw-r--r-- | chromium/cc/quads/tile_draw_quad.cc | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/chromium/cc/quads/tile_draw_quad.cc b/chromium/cc/quads/tile_draw_quad.cc new file mode 100644 index 00000000000..3ff98095e9f --- /dev/null +++ b/chromium/cc/quads/tile_draw_quad.cc @@ -0,0 +1,67 @@ +// Copyright 2012 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/tile_draw_quad.h" + +#include "base/logging.h" +#include "base/values.h" +#include "third_party/khronos/GLES2/gl2.h" + +namespace cc { + +TileDrawQuad::TileDrawQuad() + : resource_id(0) { +} + +TileDrawQuad::~TileDrawQuad() { +} + +scoped_ptr<TileDrawQuad> TileDrawQuad::Create() { + return make_scoped_ptr(new TileDrawQuad); +} + +void TileDrawQuad::SetNew(const SharedQuadState* shared_quad_state, + gfx::Rect rect, + gfx::Rect opaque_rect, + unsigned resource_id, + const gfx::RectF& tex_coord_rect, + gfx::Size texture_size, + bool swizzle_contents) { + ContentDrawQuadBase::SetNew(shared_quad_state, DrawQuad::TILED_CONTENT, rect, + opaque_rect, tex_coord_rect, texture_size, + swizzle_contents); + this->resource_id = resource_id; +} + +void TileDrawQuad::SetAll(const SharedQuadState* shared_quad_state, + gfx::Rect rect, + gfx::Rect opaque_rect, + gfx::Rect visible_rect, + bool needs_blending, + unsigned resource_id, + const gfx::RectF& tex_coord_rect, + gfx::Size texture_size, + bool swizzle_contents) { + ContentDrawQuadBase::SetAll(shared_quad_state, DrawQuad::TILED_CONTENT, rect, + opaque_rect, visible_rect, needs_blending, + tex_coord_rect, texture_size, swizzle_contents); + this->resource_id = resource_id; +} + +void TileDrawQuad::IterateResources( + const ResourceIteratorCallback& callback) { + resource_id = callback.Run(resource_id); +} + +const TileDrawQuad* TileDrawQuad::MaterialCast(const DrawQuad* quad) { + DCHECK(quad->material == DrawQuad::TILED_CONTENT); + return static_cast<const TileDrawQuad*>(quad); +} + +void TileDrawQuad::ExtendValue(base::DictionaryValue* value) const { + ContentDrawQuadBase::ExtendValue(value); + value->SetInteger("resource_id", resource_id); +} + +} // namespace cc |