• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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