| // Copyright 2013 The Flutter Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #include "flutter/shell/common/variable_refresh_rate_display.h" |
| #include "flutter/fml/logging.h" |
| |
| static double GetInitialRefreshRate( |
| const std::weak_ptr<flutter::VariableRefreshRateReporter>& |
| refresh_rate_reporter) { |
| if (auto reporter = refresh_rate_reporter.lock()) { |
| return reporter->GetRefreshRate(); |
| } |
| return 0; |
| } |
| |
| namespace flutter { |
| |
| VariableRefreshRateDisplay::VariableRefreshRateDisplay( |
| DisplayId display_id, |
| const std::weak_ptr<VariableRefreshRateReporter>& refresh_rate_reporter, |
| double width, |
| double height, |
| double device_pixel_ratio) |
| : Display(display_id, |
| GetInitialRefreshRate(refresh_rate_reporter), |
| width, |
| height, |
| device_pixel_ratio), |
| refresh_rate_reporter_(refresh_rate_reporter) {} |
| |
| double VariableRefreshRateDisplay::GetRefreshRate() const { |
| return GetInitialRefreshRate(refresh_rate_reporter_); |
| } |
| |
| } // namespace flutter |