// Copyright 2012 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef CC_LAYERS_CONTENTS_SCALING_LAYER_H_ #define CC_LAYERS_CONTENTS_SCALING_LAYER_H_ #include "cc/base/cc_export.h" #include "cc/layers/layer.h" namespace cc { // Base class for layers that need contents scale. // The content bounds are determined by bounds and scale of the contents. class CC_EXPORT ContentsScalingLayer : public Layer { public: virtual void CalculateContentsScale( float ideal_contents_scale, float device_scale_factor, float page_scale_factor, bool animating_transform_to_screen, float* contents_scale_x, float* contents_scale_y, gfx::Size* content_bounds) OVERRIDE; virtual bool Update( ResourceUpdateQueue* queue, const OcclusionTracker* occlusion) OVERRIDE; protected: ContentsScalingLayer(); virtual ~ContentsScalingLayer(); gfx::Size ComputeContentBoundsForScale(float scale_x, float scale_y) const; private: float last_update_contents_scale_x_; float last_update_contents_scale_y_; DISALLOW_COPY_AND_ASSIGN(ContentsScalingLayer); }; } // namespace cc #endif // CC_LAYERS_CONTENTS_SCALING_LAYER_H__