Flutter Engine
display_manager.cc
Go to the documentation of this file.
1 // Copyright 2013 The Flutter 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 #include "flutter/shell/common/display_manager.h"
6 
7 #include "flutter/fml/logging.h"
8 #include "flutter/fml/macros.h"
9 
10 namespace flutter {
11 
13 
15 
17  std::scoped_lock lock(displays_mutex_);
18  if (displays_.empty()) {
20  } else {
21  return displays_[0].GetRefreshRate();
22  }
23 }
24 
26  std::vector<Display> displays) {
27  std::scoped_lock lock(displays_mutex_);
28  CheckDisplayConfiguration(displays);
29  switch (update_type) {
31  FML_CHECK(displays_.empty());
32  displays_ = displays;
33  return;
34  default:
35  FML_CHECK(false) << "Unknown DisplayUpdateType.";
36  }
37 }
38 
39 void DisplayManager::CheckDisplayConfiguration(
40  std::vector<Display> displays) const {
41  FML_CHECK(!displays.empty());
42  if (displays.size() > 1) {
43  for (auto& display : displays) {
44  FML_CHECK(display.GetDisplayId().has_value());
45  }
46  }
47 }
48 
49 } // namespace flutter
static constexpr double kUnknownDisplayRefreshRate
To be used when the display refresh rate is unknown.
Definition: display.h:17
#define FML_CHECK(condition)
Definition: logging.h:68
void HandleDisplayUpdates(DisplayUpdateType update_type, std::vector< Display > displays)
Handles the display updates.
double GetMainDisplayRefreshRate() const