dip_util.h revision 116680a4aac90f2aa7413d9095a592090648e557
1eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch// Copyright (c) 2012 The Chromium Authors. All rights reserved. 2eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch// Use of this source code is governed by a BSD-style license that can be 3eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch// found in the LICENSE file. 4eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch 5eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch#ifndef UI_COMPOSITOR_DIP_UTIL_H_ 6eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch#define UI_COMPOSITOR_DIP_UTIL_H_ 7eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch 8eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch#include "ui/compositor/compositor_export.h" 9eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch#include "base/basictypes.h" 10eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch#include "ui/gfx/point_f.h" 11eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch 12eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdochnamespace gfx { 13eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdochclass Point; 14eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdochclass Size; 15eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdochclass Rect; 16eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch} // namespace gfx 17eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch 18eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdochnamespace ui { 19eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdochclass Layer; 20eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch 21eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen MurdochCOMPOSITOR_EXPORT float GetDeviceScaleFactor(const Layer* layer); 22eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch 23eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch// Utility functions that convert point/size/rect between 24eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch// DIP and pixel coordinates system. 25eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen MurdochCOMPOSITOR_EXPORT gfx::Point ConvertPointToDIP( 26eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch const Layer* layer, 27eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch const gfx::Point& point_in_pixel); 28eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen MurdochCOMPOSITOR_EXPORT gfx::PointF ConvertPointToDIP( 29eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch const Layer* layer, 30eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch const gfx::PointF& point_in_pixel); 31eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen MurdochCOMPOSITOR_EXPORT gfx::Size ConvertSizeToDIP( 32eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch const Layer* layer, 33eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch const gfx::Size& size_in_pixel); 34eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen MurdochCOMPOSITOR_EXPORT gfx::Rect ConvertRectToDIP( 35eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch const Layer* layer, 36eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch const gfx::Rect& rect_in_pixel); 37eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen MurdochCOMPOSITOR_EXPORT gfx::Point ConvertPointToPixel( 38eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch const Layer* layer, 39eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch const gfx::Point& point_in_dip); 40eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen MurdochCOMPOSITOR_EXPORT gfx::Size ConvertSizeToPixel( 41eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch const Layer* layer, 42eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch const gfx::Size& size_in_dip); 43eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen MurdochCOMPOSITOR_EXPORT gfx::Rect ConvertRectToPixel( 44eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch const Layer* layer, 45eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch const gfx::Rect& rect_in_dip); 46eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch 47eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch// Snaps the |layer_to_snap| to the physical pixel boundary. 48eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch// |snapped_layer| is a reference layer that should also be 49eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch// snapped at the pysical pixel boundary. 50eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen MurdochCOMPOSITOR_EXPORT void SnapLayerToPhysicalPixelBoundary( 51eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch ui::Layer* snapped_layer, 52eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch ui::Layer* layer_to_snap); 53eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch 54eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch} // namespace ui 55eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch 56eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch#endif // UI_COMPOSITOR_DIP_UTIL_H_ 57eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch