stream_video_draw_quad.h revision 5d1f7b1de12d16ceb2c938c56701a3e8bfa558f7
12a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Copyright 2012 The Chromium Authors. All rights reserved.
22a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
32a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// found in the LICENSE file.
42a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
52a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#ifndef CC_QUADS_STREAM_VIDEO_DRAW_QUAD_H_
62a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define CC_QUADS_STREAM_VIDEO_DRAW_QUAD_H_
72a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
82a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "base/memory/scoped_ptr.h"
92a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "cc/base/cc_export.h"
102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "cc/quads/draw_quad.h"
112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "ui/gfx/transform.h"
122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)namespace cc {
142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)class CC_EXPORT StreamVideoDrawQuad : public DrawQuad {
162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) public:
172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  static scoped_ptr<StreamVideoDrawQuad> Create();
182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  void SetNew(const SharedQuadState* shared_quad_state,
205d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)              const gfx::Rect& rect,
215d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)              const gfx::Rect& opaque_rect,
22c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)              unsigned resource_id,
232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)              const gfx::Transform& matrix);
242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  void SetAll(const SharedQuadState* shared_quad_state,
265d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)              const gfx::Rect& rect,
275d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)              const gfx::Rect& opaque_rect,
285d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)              const gfx::Rect& visible_rect,
292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)              bool needs_blending,
30c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)              unsigned resource_id,
312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)              const gfx::Transform& matrix);
322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
33c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  unsigned resource_id;
342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  gfx::Transform matrix;
352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  virtual void IterateResources(const ResourceIteratorCallback& callback)
372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)      OVERRIDE;
382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  static const StreamVideoDrawQuad* MaterialCast(const DrawQuad*);
40c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)
412a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) private:
422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  StreamVideoDrawQuad();
43ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch  virtual void ExtendValue(base::DictionaryValue* value) const OVERRIDE;
442a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)};
452a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
46c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)}  // namespace cc
472a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
482a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif  // CC_QUADS_STREAM_VIDEO_DRAW_QUAD_H_
49