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