15d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)// Copyright 2014 The Chromium Authors. All rights reserved.
25d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
35d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)// found in the LICENSE file.
45d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
55d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#include "cc/quads/surface_draw_quad.h"
65d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
75f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)#include "base/debug/trace_event_argument.h"
85d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#include "base/logging.h"
95d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#include "base/values.h"
105d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
115d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)namespace cc {
125d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
13f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)SurfaceDrawQuad::SurfaceDrawQuad() {
14f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)}
155d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
165d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)void SurfaceDrawQuad::SetNew(const SharedQuadState* shared_quad_state,
17a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)                             const gfx::Rect& rect,
18a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)                             const gfx::Rect& visible_rect,
19f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)                             SurfaceId surface_id) {
205d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  gfx::Rect opaque_rect;
215d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  bool needs_blending = false;
225d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  DrawQuad::SetAll(shared_quad_state, DrawQuad::SURFACE_CONTENT, rect,
235d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)                   opaque_rect, visible_rect, needs_blending);
245d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  this->surface_id = surface_id;
255d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)}
265d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
275d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)void SurfaceDrawQuad::SetAll(const SharedQuadState* shared_quad_state,
28a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)                             const gfx::Rect& rect,
29a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)                             const gfx::Rect& opaque_rect,
30a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)                             const gfx::Rect& visible_rect,
315d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)                             bool needs_blending,
32f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)                             SurfaceId surface_id) {
335d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  DrawQuad::SetAll(shared_quad_state, DrawQuad::SURFACE_CONTENT, rect,
345d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)                   opaque_rect, visible_rect, needs_blending);
355d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  this->surface_id = surface_id;
365d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)}
375d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
385d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)void SurfaceDrawQuad::IterateResources(
395d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    const ResourceIteratorCallback& callback) {}
405d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
415d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)const SurfaceDrawQuad* SurfaceDrawQuad::MaterialCast(const DrawQuad* quad) {
425d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  DCHECK_EQ(quad->material, DrawQuad::SURFACE_CONTENT);
435d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  return static_cast<const SurfaceDrawQuad*>(quad);
445d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)}
455d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
465f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)void SurfaceDrawQuad::ExtendValue(base::debug::TracedValue* value) const {
47f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)  value->SetInteger("surface_id", surface_id.id);
485d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)}
495d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
505d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
515d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)}  // namespace cc
52