contents_scaling_layer.h revision 2a99a7e74a7f215066514fe81d2bfa6639d9eddd
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_LAYERS_CONTENTS_SCALING_LAYER_H_ 6#define CC_LAYERS_CONTENTS_SCALING_LAYER_H_ 7 8#include "cc/base/cc_export.h" 9#include "cc/layers/layer.h" 10 11namespace cc { 12 13// Base class for layers that need contents scale. 14// The content bounds are determined by bounds and scale of the contents. 15class CC_EXPORT ContentsScalingLayer : public Layer { 16 public: 17 virtual void CalculateContentsScale( 18 float ideal_contents_scale, 19 bool animating_transform_to_screen, 20 float* contents_scale_x, 21 float* contents_scale_y, 22 gfx::Size* content_bounds) OVERRIDE; 23 24 virtual void Update( 25 ResourceUpdateQueue* queue, 26 const OcclusionTracker* occlusion, 27 RenderingStats* stats) OVERRIDE; 28 29 protected: 30 ContentsScalingLayer(); 31 virtual ~ContentsScalingLayer(); 32 33 gfx::Size ComputeContentBoundsForScale(float scale_x, float scale_y) const; 34 35 private: 36 float last_update_contents_scale_x_; 37 float last_update_contents_scale_y_; 38}; 39 40} // namespace cc 41 42#endif // CC_LAYERS_CONTENTS_SCALING_LAYER_H__ 43