1 // Copyright 2014 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/surface_draw_quad.h"
6
7 #include "base/debug/trace_event_argument.h"
8 #include "base/logging.h"
9 #include "base/values.h"
10
11 namespace cc {
12
SurfaceDrawQuad()13 SurfaceDrawQuad::SurfaceDrawQuad() {
14 }
15
SetNew(const SharedQuadState * shared_quad_state,const gfx::Rect & rect,const gfx::Rect & visible_rect,SurfaceId surface_id)16 void SurfaceDrawQuad::SetNew(const SharedQuadState* shared_quad_state,
17 const gfx::Rect& rect,
18 const gfx::Rect& visible_rect,
19 SurfaceId surface_id) {
20 gfx::Rect opaque_rect;
21 bool needs_blending = false;
22 DrawQuad::SetAll(shared_quad_state, DrawQuad::SURFACE_CONTENT, rect,
23 opaque_rect, visible_rect, needs_blending);
24 this->surface_id = surface_id;
25 }
26
SetAll(const SharedQuadState * shared_quad_state,const gfx::Rect & rect,const gfx::Rect & opaque_rect,const gfx::Rect & visible_rect,bool needs_blending,SurfaceId surface_id)27 void SurfaceDrawQuad::SetAll(const SharedQuadState* shared_quad_state,
28 const gfx::Rect& rect,
29 const gfx::Rect& opaque_rect,
30 const gfx::Rect& visible_rect,
31 bool needs_blending,
32 SurfaceId surface_id) {
33 DrawQuad::SetAll(shared_quad_state, DrawQuad::SURFACE_CONTENT, rect,
34 opaque_rect, visible_rect, needs_blending);
35 this->surface_id = surface_id;
36 }
37
IterateResources(const ResourceIteratorCallback & callback)38 void SurfaceDrawQuad::IterateResources(
39 const ResourceIteratorCallback& callback) {}
40
MaterialCast(const DrawQuad * quad)41 const SurfaceDrawQuad* SurfaceDrawQuad::MaterialCast(const DrawQuad* quad) {
42 DCHECK_EQ(quad->material, DrawQuad::SURFACE_CONTENT);
43 return static_cast<const SurfaceDrawQuad*>(quad);
44 }
45
ExtendValue(base::debug::TracedValue * value) const46 void SurfaceDrawQuad::ExtendValue(base::debug::TracedValue* value) const {
47 value->SetInteger("surface_id", surface_id.id);
48 }
49
50
51 } // namespace cc
52