1 // Copyright 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "cc/quads/tile_draw_quad.h"
6
7 #include "base/logging.h"
8 #include "base/values.h"
9 #include "third_party/khronos/GLES2/gl2.h"
10
11 namespace cc {
12
TileDrawQuad()13 TileDrawQuad::TileDrawQuad()
14 : resource_id(0) {
15 }
16
~TileDrawQuad()17 TileDrawQuad::~TileDrawQuad() {
18 }
19
Create()20 scoped_ptr<TileDrawQuad> TileDrawQuad::Create() {
21 return make_scoped_ptr(new TileDrawQuad);
22 }
23
SetNew(const SharedQuadState * shared_quad_state,const gfx::Rect & rect,const gfx::Rect & opaque_rect,const gfx::Rect & visible_rect,unsigned resource_id,const gfx::RectF & tex_coord_rect,const gfx::Size & texture_size,bool swizzle_contents)24 void TileDrawQuad::SetNew(const SharedQuadState* shared_quad_state,
25 const gfx::Rect& rect,
26 const gfx::Rect& opaque_rect,
27 const gfx::Rect& visible_rect,
28 unsigned resource_id,
29 const gfx::RectF& tex_coord_rect,
30 const gfx::Size& texture_size,
31 bool swizzle_contents) {
32 ContentDrawQuadBase::SetNew(shared_quad_state,
33 DrawQuad::TILED_CONTENT,
34 rect,
35 opaque_rect,
36 visible_rect,
37 tex_coord_rect,
38 texture_size,
39 swizzle_contents);
40 this->resource_id = resource_id;
41 }
42
SetAll(const SharedQuadState * shared_quad_state,const gfx::Rect & rect,const gfx::Rect & opaque_rect,const gfx::Rect & visible_rect,bool needs_blending,unsigned resource_id,const gfx::RectF & tex_coord_rect,const gfx::Size & texture_size,bool swizzle_contents)43 void TileDrawQuad::SetAll(const SharedQuadState* shared_quad_state,
44 const gfx::Rect& rect,
45 const gfx::Rect& opaque_rect,
46 const gfx::Rect& visible_rect,
47 bool needs_blending,
48 unsigned resource_id,
49 const gfx::RectF& tex_coord_rect,
50 const gfx::Size& texture_size,
51 bool swizzle_contents) {
52 ContentDrawQuadBase::SetAll(shared_quad_state, DrawQuad::TILED_CONTENT, rect,
53 opaque_rect, visible_rect, needs_blending,
54 tex_coord_rect, texture_size, swizzle_contents);
55 this->resource_id = resource_id;
56 }
57
IterateResources(const ResourceIteratorCallback & callback)58 void TileDrawQuad::IterateResources(
59 const ResourceIteratorCallback& callback) {
60 resource_id = callback.Run(resource_id);
61 }
62
MaterialCast(const DrawQuad * quad)63 const TileDrawQuad* TileDrawQuad::MaterialCast(const DrawQuad* quad) {
64 DCHECK(quad->material == DrawQuad::TILED_CONTENT);
65 return static_cast<const TileDrawQuad*>(quad);
66 }
67
ExtendValue(base::DictionaryValue * value) const68 void TileDrawQuad::ExtendValue(base::DictionaryValue* value) const {
69 ContentDrawQuadBase::ExtendValue(value);
70 value->SetInteger("resource_id", resource_id);
71 }
72
73 } // namespace cc
74