- add sources.
[platform/framework/web/crosswalk.git] / src / cc / quads / yuv_video_draw_quad.h
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_