From 9b3b1e4f7896de8346ee692937fd9d656aebd8d0 Mon Sep 17 00:00:00 2001 From: chenpengwei Date: Wed, 10 May 2023 15:13:20 +0800 Subject: [PATCH] screen property add densitydpi Signed-off-by: chenpengwei Change-Id: I2a0ce836eb687f8f9f028b5bdcd39a2feaca9779 --- .../session/screen/include/screen_property.h | 4 ++++ .../session/screen/include/screen_session.h | 2 ++ window_scene/session/screen/src/screen_property.cpp | 13 +++++++++++++ window_scene/session/screen/src/screen_session.cpp | 5 +++++ 4 files changed, 24 insertions(+) diff --git a/window_scene/session/screen/include/screen_property.h b/window_scene/session/screen/include/screen_property.h index 132de619..ea5d8690 100644 --- a/window_scene/session/screen/include/screen_property.h +++ b/window_scene/session/screen/include/screen_property.h @@ -29,10 +29,14 @@ public: void SetBounds(const RRect& bounds); RRect GetBounds() const; + float GetDpi(); private: float rotation_ { 0.0f }; RRect bounds_; + int32_t width_ { 0 }; + int32_t height_ { 0 }; + float dpi_ { 1.5f }; }; } // namespace OHOS::Rosen diff --git a/window_scene/session/screen/include/screen_session.h b/window_scene/session/screen/include/screen_session.h index 0f349080..1f5bfce5 100644 --- a/window_scene/session/screen/include/screen_session.h +++ b/window_scene/session/screen/include/screen_session.h @@ -53,6 +53,8 @@ public: void Connect(); void Disconnect(); + float GetDensityDpi(); + private: ScreenId screenId_; ScreenProperty property_; diff --git a/window_scene/session/screen/src/screen_property.cpp b/window_scene/session/screen/src/screen_property.cpp index f2ba5d00..ba0bc2ce 100644 --- a/window_scene/session/screen/src/screen_property.cpp +++ b/window_scene/session/screen/src/screen_property.cpp @@ -35,4 +35,17 @@ RRect ScreenProperty::GetBounds() const { return bounds_; } + +float ScreenProperty::GetDpi() +{ + width_ = bounds_.rect_.height_; + height_ = bounds_.rect_.width_; + + if (width_ == 1344 && height_ == 2772) { // telephone + dpi_ = 3.5f; + } else { + dpi_ = 1.5f; + } + return dpi_; +} } // namespace OHOS::Rosen diff --git a/window_scene/session/screen/src/screen_session.cpp b/window_scene/session/screen/src/screen_session.cpp index 68df6f71..ffe5eea8 100644 --- a/window_scene/session/screen/src/screen_session.cpp +++ b/window_scene/session/screen/src/screen_session.cpp @@ -84,4 +84,9 @@ void ScreenSession::Disconnect() } } +float ScreenSession::GetDensityDpi() +{ + return property_.GetDpi(); +} + } // namespace OHOS::Rosen -- Gitee