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_TEXTURE_DRAW_QUAD_H_ 6 #define CC_QUADS_TEXTURE_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/rect_f.h" 12 13 namespace cc { 14 15 class CC_EXPORT TextureDrawQuad : public DrawQuad { 16 public: 17 static scoped_ptr<TextureDrawQuad> Create(); 18 19 void SetNew(const SharedQuadState* shared_quad_state, 20 const gfx::Rect& rect, 21 const gfx::Rect& opaque_rect, 22 const gfx::Rect& visible_rect, 23 unsigned resource_id, 24 bool premultiplied_alpha, 25 const gfx::PointF& uv_top_left, 26 const gfx::PointF& uv_bottom_right, 27 SkColor background_color, 28 const float vertex_opacity[4], 29 bool flipped); 30 31 void SetAll(const SharedQuadState* shared_quad_state, 32 const gfx::Rect& rect, 33 const gfx::Rect& opaque_rect, 34 const gfx::Rect& visible_rect, 35 bool needs_blending, 36 unsigned resource_id, 37 bool premultiplied_alpha, 38 const gfx::PointF& uv_top_left, 39 const gfx::PointF& uv_bottom_right, 40 SkColor background_color, 41 const float vertex_opacity[4], 42 bool flipped); 43 44 unsigned resource_id; 45 bool premultiplied_alpha; 46 gfx::PointF uv_top_left; 47 gfx::PointF uv_bottom_right; 48 SkColor background_color; 49 float vertex_opacity[4]; 50 bool flipped; 51 52 virtual void IterateResources(const ResourceIteratorCallback& callback) 53 OVERRIDE; 54 55 static const TextureDrawQuad* MaterialCast(const DrawQuad*); 56 57 private: 58 TextureDrawQuad(); 59 virtual void ExtendValue(base::DictionaryValue* value) const OVERRIDE; 60 }; 61 62 } // namespace cc 63 64 #endif // CC_QUADS_TEXTURE_DRAW_QUAD_H_ 65