Home | History | Annotate | Download | only in quads
      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