1// Copyright 2012 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#ifndef CC_QUADS_STREAM_VIDEO_DRAW_QUAD_H_ 6#define CC_QUADS_STREAM_VIDEO_DRAW_QUAD_H_ 7 8#include "base/memory/scoped_ptr.h" 9#include "cc/base/cc_export.h" 10#include "cc/quads/draw_quad.h" 11#include "ui/gfx/transform.h" 12 13namespace cc { 14 15class CC_EXPORT StreamVideoDrawQuad : public DrawQuad { 16 public: 17 static scoped_ptr<StreamVideoDrawQuad> Create(); 18 19 void SetNew(const SharedQuadState* shared_quad_state, 20 gfx::Rect rect, 21 gfx::Rect opaque_rect, 22 unsigned resource_id, 23 const gfx::Transform& matrix); 24 25 void SetAll(const SharedQuadState* shared_quad_state, 26 gfx::Rect rect, 27 gfx::Rect opaque_rect, 28 gfx::Rect visible_rect, 29 bool needs_blending, 30 unsigned resource_id, 31 const gfx::Transform& matrix); 32 33 unsigned resource_id; 34 gfx::Transform matrix; 35 36 virtual void IterateResources(const ResourceIteratorCallback& callback) 37 OVERRIDE; 38 39 static const StreamVideoDrawQuad* MaterialCast(const DrawQuad*); 40 41 private: 42 StreamVideoDrawQuad(); 43 virtual void ExtendValue(base::DictionaryValue* value) const OVERRIDE; 44}; 45 46} // namespace cc 47 48#endif // CC_QUADS_STREAM_VIDEO_DRAW_QUAD_H_ 49