blob: 66f739bbb18dc9966cbcb08ced8883b44b090656 [file] [log] [blame]
[email protected]d98c0242012-11-08 06:22:351// 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_PICTURE_LAYER_IMPL_H_
6#define CC_PICTURE_LAYER_IMPL_H_
7
8#include "cc/layer_impl.h"
[email protected]9b18c102012-11-15 19:57:039#include "cc/picture_layer_tiling.h"
[email protected]cd696272012-11-21 19:15:2710#include "cc/picture_layer_tiling_set.h"
[email protected]91e89bc2012-11-29 12:58:1811#include "cc/picture_pile_impl.h"
[email protected]9b18c102012-11-15 19:57:0312#include "cc/scoped_ptr_vector.h"
[email protected]d98c0242012-11-08 06:22:3513
14namespace cc {
15
[email protected]3621e182012-11-09 22:37:0916struct AppendQuadsData;
17class QuadSink;
18
[email protected]9b18c102012-11-15 19:57:0319class CC_EXPORT PictureLayerImpl : public LayerImpl,
20 public PictureLayerTilingClient {
[email protected]d98c0242012-11-08 06:22:3521public:
[email protected]8bef40572012-12-11 21:38:0822 static scoped_ptr<PictureLayerImpl> create(LayerTreeImpl* treeImpl, int id)
[email protected]d98c0242012-11-08 06:22:3523 {
[email protected]8bef40572012-12-11 21:38:0824 return make_scoped_ptr(new PictureLayerImpl(treeImpl, id));
[email protected]d98c0242012-11-08 06:22:3525 }
26 virtual ~PictureLayerImpl();
27
[email protected]3621e182012-11-09 22:37:0928 // LayerImpl overrides.
29 virtual const char* layerTypeAsString() const OVERRIDE;
30 virtual void appendQuads(QuadSink&, AppendQuadsData&) OVERRIDE;
31 virtual void dumpLayerProperties(std::string*, int indent) const OVERRIDE;
[email protected]6ef21ffc2012-11-28 05:58:5432 virtual void didUpdateTransforms() OVERRIDE;
[email protected]3621e182012-11-09 22:37:0933
[email protected]bdb59ce2012-12-11 19:29:3234 void didUpdateBounds();
35
[email protected]9b18c102012-11-15 19:57:0336 // PictureLayerTilingClient overrides.
37 virtual scoped_refptr<Tile> CreateTile(PictureLayerTiling*,
38 gfx::Rect) OVERRIDE;
39
40 // PushPropertiesTo active tree => pending tree
[email protected]f117a4c2012-12-16 04:53:1041 void SyncFromActiveLayer();
42 void SyncTiling(const PictureLayerTiling* tiling);
[email protected]9b18c102012-11-15 19:57:0343
[email protected]d98c0242012-11-08 06:22:3544protected:
[email protected]8bef40572012-12-11 21:38:0845 PictureLayerImpl(LayerTreeImpl* treeImpl, int id);
[email protected]f117a4c2012-12-16 04:53:1046 void AddTiling(float contents_scale, gfx::Size tile_size);
47 void SyncFromActiveLayer(const PictureLayerImpl* other);
[email protected]d98c0242012-11-08 06:22:3548
[email protected]cd696272012-11-21 19:15:2749 PictureLayerTilingSet tilings_;
[email protected]91e89bc2012-11-29 12:58:1850 scoped_refptr<PicturePileImpl> pile_;
[email protected]f117a4c2012-12-16 04:53:1051 Region invalidation_;
[email protected]d98c0242012-11-08 06:22:3552
[email protected]4cbadc882012-12-04 08:52:5853 gfx::Transform last_screen_space_transform_;
54 double last_update_time_;
55 gfx::Size last_bounds_;
56 gfx::Size last_content_bounds_;
57 float last_content_scale_x_;
58 float last_content_scale_y_;
59
[email protected]d98c0242012-11-08 06:22:3560 friend class PictureLayer;
61 DISALLOW_COPY_AND_ASSIGN(PictureLayerImpl);
62};
63
64}
65
66#endif // CC_PICTURE_LAYER_IMPL_H_