Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(347)

Unified Diff: ui/ozone/platform/dri/hardware_display_controller.cc

Issue 469343003: [Ozone-GBM] Pumb DriWindowDelegate throughout the platform (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebased Created 6 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: ui/ozone/platform/dri/hardware_display_controller.cc
diff --git a/ui/ozone/platform/dri/hardware_display_controller.cc b/ui/ozone/platform/dri/hardware_display_controller.cc
index 342b4502885ee294b15e7a0c0de7b97ee0a4ec0c..4befd8fa80128740814f37ece9816ce97a8e59f1 100644
--- a/ui/ozone/platform/dri/hardware_display_controller.cc
+++ b/ui/ozone/platform/dri/hardware_display_controller.cc
@@ -82,6 +82,7 @@ HardwareDisplayController::HardwareDisplayController(
DriWrapper* drm,
scoped_ptr<CrtcState> state)
: drm_(drm),
+ is_disabled_(true),
time_of_last_flip_(0),
pending_page_flips_(0) {
crtc_states_.push_back(state.release());
@@ -98,13 +99,16 @@ bool HardwareDisplayController::Modeset(const OverlayPlane& primary,
DCHECK(primary.buffer);
pending_page_flips_ = 0;
bool status = true;
- for (size_t i = 0; i < crtc_states_.size(); ++i)
+ for (size_t i = 0; i < crtc_states_.size(); ++i) {
status &= ModesetCrtc(primary.buffer, mode, crtc_states_[i]);
+ crtc_states_[i]->set_is_disabled(false);
+ }
// Since a subset of controllers may be actively using |primary|, just keep
// track of it.
current_planes_ = std::vector<OverlayPlane>(1, primary);
pending_planes_.clear();
+ is_disabled_ = false;
mode_ = mode;
return status;
}
@@ -129,6 +133,8 @@ void HardwareDisplayController::Disable() {
drm_->DisableCrtc(crtc_states_[i]->crtc());
crtc_states_[i]->set_is_disabled(true);
}
+
+ is_disabled_ = true;
}
void HardwareDisplayController::QueueOverlayPlane(const OverlayPlane& plane) {
@@ -139,13 +145,12 @@ bool HardwareDisplayController::SchedulePageFlip() {
DCHECK(!pending_planes_.empty());
DCHECK_EQ(0u, pending_page_flips_);
- bool status = true;
- for (size_t i = 0; i < crtc_states_.size(); ++i) {
- if (crtc_states_[i]->is_disabled())
- continue;
+ if (is_disabled_)
+ return true;
+ bool status = true;
+ for (size_t i = 0; i < crtc_states_.size(); ++i)
status &= SchedulePageFlipOnCrtc(pending_planes_, crtc_states_[i]);
- }
return status;
}
@@ -186,11 +191,13 @@ void HardwareDisplayController::OnPageFlipEvent(unsigned int frame,
bool HardwareDisplayController::SetCursor(scoped_refptr<ScanoutBuffer> buffer) {
bool status = true;
cursor_buffer_ = buffer;
+
+ if (is_disabled_)
+ return true;
+
for (size_t i = 0; i < crtc_states_.size(); ++i) {
- if (!crtc_states_[i]->is_disabled())
- status &= drm_->SetCursor(crtc_states_[i]->crtc(),
- buffer->GetHandle(),
- buffer->GetSize());
+ status &= drm_->SetCursor(
+ crtc_states_[i]->crtc(), buffer->GetHandle(), buffer->GetSize());
}
return status;
@@ -206,10 +213,12 @@ bool HardwareDisplayController::UnsetCursor() {
}
bool HardwareDisplayController::MoveCursor(const gfx::Point& location) {
+ if (is_disabled_)
+ return true;
+
bool status = true;
for (size_t i = 0; i < crtc_states_.size(); ++i)
- if (!crtc_states_[i]->is_disabled())
- status &= drm_->MoveCursor(crtc_states_[i]->crtc(), location);
+ status &= drm_->MoveCursor(crtc_states_[i]->crtc(), location);
return status;
}
@@ -241,13 +250,12 @@ bool HardwareDisplayController::HasCrtc(uint32_t crtc) const {
return false;
}
-bool HardwareDisplayController::HasCrtcs() const {
- return !crtc_states_.empty();
+bool HardwareDisplayController::IsMirrored() const {
+ return crtc_states_.size() > 1;
}
-void HardwareDisplayController::RemoveMirroredCrtcs() {
- if (crtc_states_.size() > 1)
- crtc_states_.erase(crtc_states_.begin() + 1, crtc_states_.end());
+bool HardwareDisplayController::IsDisabled() const {
+ return is_disabled_;
}
bool HardwareDisplayController::ModesetCrtc(
@@ -267,7 +275,6 @@ bool HardwareDisplayController::ModesetCrtc(
return false;
}
- state->set_is_disabled(false);
return true;
}

Powered by Google App Engine
This is Rietveld 408576698