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_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