1 // Copyright (c) 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 UI_COMPOSITOR_DIP_UTIL_H_ 6 #define UI_COMPOSITOR_DIP_UTIL_H_ 7 8 #include "ui/compositor/compositor_export.h" 9 #include "base/basictypes.h" 10 #include "ui/gfx/point_f.h" 11 12 namespace gfx { 13 class Point; 14 class Size; 15 class Rect; 16 } // namespace gfx 17 18 namespace ui { 19 class Layer; 20 21 COMPOSITOR_EXPORT float GetDeviceScaleFactor(const Layer* layer); 22 23 // Utility functions that convert point/size/rect between 24 // DIP and pixel coordinates system. 25 COMPOSITOR_EXPORT gfx::Point ConvertPointToDIP( 26 const Layer* layer, 27 const gfx::Point& point_in_pixel); 28 COMPOSITOR_EXPORT gfx::PointF ConvertPointToDIP( 29 const Layer* layer, 30 const gfx::PointF& point_in_pixel); 31 COMPOSITOR_EXPORT gfx::Size ConvertSizeToDIP( 32 const Layer* layer, 33 const gfx::Size& size_in_pixel); 34 COMPOSITOR_EXPORT gfx::Rect ConvertRectToDIP( 35 const Layer* layer, 36 const gfx::Rect& rect_in_pixel); 37 COMPOSITOR_EXPORT gfx::Point ConvertPointToPixel( 38 const Layer* layer, 39 const gfx::Point& point_in_dip); 40 COMPOSITOR_EXPORT gfx::Size ConvertSizeToPixel( 41 const Layer* layer, 42 const gfx::Size& size_in_dip); 43 COMPOSITOR_EXPORT gfx::Rect ConvertRectToPixel( 44 const Layer* layer, 45 const gfx::Rect& rect_in_dip); 46 47 // Snaps the |layer_to_snap| to the physical pixel boundary. 48 // |snapped_layer| is a reference layer that should also be 49 // snapped at the pysical pixel boundary. 50 COMPOSITOR_EXPORT void SnapLayerToPhysicalPixelBoundary( 51 ui::Layer* snapped_layer, 52 ui::Layer* layer_to_snap); 53 54 } // namespace ui 55 56 #endif // UI_COMPOSITOR_DIP_UTIL_H_ 57