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_SHARED_QUAD_STATE_H_ 6 #define CC_QUADS_SHARED_QUAD_STATE_H_ 7 8 #include "base/memory/scoped_ptr.h" 9 #include "cc/base/cc_export.h" 10 #include "ui/gfx/rect.h" 11 #include "ui/gfx/transform.h" 12 13 namespace base { 14 class Value; 15 } 16 17 namespace cc { 18 19 class CC_EXPORT SharedQuadState { 20 public: 21 static scoped_ptr<SharedQuadState> Create(); 22 ~SharedQuadState(); 23 24 scoped_ptr<SharedQuadState> Copy() const; 25 26 void SetAll(const gfx::Transform& content_to_target_transform, 27 gfx::Size content_bounds, 28 gfx::Rect visible_content_rect, 29 gfx::Rect clip_rect, 30 bool is_clipped, 31 float opacity); 32 scoped_ptr<base::Value> AsValue() const; 33 34 // Transforms from quad's original content space to its target content space. 35 gfx::Transform content_to_target_transform; 36 // This size lives in the content space for the quad's originating layer. 37 gfx::Size content_bounds; 38 // This rect lives in the content space for the quad's originating layer. 39 gfx::Rect visible_content_rect; 40 // This rect lives in the target content space. 41 gfx::Rect clip_rect; 42 bool is_clipped; 43 float opacity; 44 45 private: 46 SharedQuadState(); 47 }; 48 49 } // namespace cc 50 51 #endif // CC_QUADS_SHARED_QUAD_STATE_H_ 52