Home | History | Annotate | Download | only in compositor
      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