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_YUV_VIDEO_DRAW_QUAD_H_ 6 #define CC_QUADS_YUV_VIDEO_DRAW_QUAD_H_ 7 8 #include "base/basictypes.h" 9 #include "base/memory/scoped_ptr.h" 10 #include "cc/base/cc_export.h" 11 #include "cc/layers/video_layer_impl.h" 12 #include "cc/quads/draw_quad.h" 13 14 namespace cc { 15 16 class CC_EXPORT YUVVideoDrawQuad : public DrawQuad { 17 public: 18 virtual ~YUVVideoDrawQuad(); 19 20 static scoped_ptr<YUVVideoDrawQuad> Create(); 21 22 void SetNew(const SharedQuadState* shared_quad_state, 23 gfx::Rect rect, 24 gfx::Rect opaque_rect, 25 gfx::SizeF tex_scale, 26 unsigned y_plane_resource_id, 27 unsigned u_plane_resource_id, 28 unsigned v_plane_resource_id, 29 unsigned a_plane_resource_id); 30 31 void SetAll(const SharedQuadState* shared_quad_state, 32 gfx::Rect rect, 33 gfx::Rect opaque_rect, 34 gfx::Rect visible_rect, 35 bool needs_blending, 36 gfx::SizeF tex_scale, 37 unsigned y_plane_resource_id, 38 unsigned u_plane_resource_id, 39 unsigned v_plane_resource_id, 40 unsigned a_plane_resource_id); 41 42 gfx::SizeF tex_scale; 43 unsigned y_plane_resource_id; 44 unsigned u_plane_resource_id; 45 unsigned v_plane_resource_id; 46 unsigned a_plane_resource_id; 47 48 virtual void IterateResources(const ResourceIteratorCallback& callback) 49 OVERRIDE; 50 51 static const YUVVideoDrawQuad* MaterialCast(const DrawQuad*); 52 53 private: 54 YUVVideoDrawQuad(); 55 virtual void ExtendValue(base::DictionaryValue* value) const OVERRIDE; 56 }; 57 58 } // namespace cc 59 60 #endif // CC_QUADS_YUV_VIDEO_DRAW_QUAD_H_ 61