stream_video_draw_quad.h revision c2e0dbddbe15c98d52c4786dac06cb8952a8ae6d
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,
202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)              gfx::Rect rect,
212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)              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,
262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)              gfx::Rect rect,
272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)              gfx::Rect opaque_rect,
282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)              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();
432a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)};
442a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
45c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)}  // namespace cc
462a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
472a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif  // CC_QUADS_STREAM_VIDEO_DRAW_QUAD_H_
48