#include "ui/gfx/geometry/point.h"
#include "ui/gfx/geometry/rect.h"
#include "ui/gfx/geometry/size.h"
-#include "ui/ozone/platform/dri/crtc_state.h"
+#include "ui/ozone/platform/dri/crtc_controller.h"
#include "ui/ozone/platform/dri/dri_util.h"
+#include "ui/ozone/platform/dri/dri_wrapper.h"
#include "ui/ozone/platform/dri/hardware_display_controller.h"
#include "ui/ozone/platform/dri/scanout_buffer.h"
ScreenManager::~ScreenManager() {
}
-void ScreenManager::AddDisplayController(uint32_t crtc, uint32_t connector) {
+void ScreenManager::AddDisplayController(DriWrapper* dri,
+ uint32_t crtc,
+ uint32_t connector) {
HardwareDisplayControllers::iterator it = FindDisplayController(crtc);
// TODO(dnicoara): Turn this into a DCHECK when async display configuration is
// properly supported. (When there can't be a race between forcing initial
}
controllers_.push_back(new HardwareDisplayController(
- dri_, scoped_ptr<CrtcState>(new CrtcState(dri_, crtc, connector))));
+ scoped_ptr<CrtcController>(new CrtcController(dri, crtc, connector))));
}
void ScreenManager::RemoveDisplayController(uint32_t crtc) {
uint32_t connector,
const gfx::Point& origin,
const drmModeModeInfo& mode) {
- gfx::Rect modeset_bounds(
- origin.x(), origin.y(), mode.hdisplay, mode.vdisplay);
+ gfx::Rect modeset_bounds(origin.x(), origin.y(), mode.hdisplay,
+ mode.vdisplay);
HardwareDisplayControllers::iterator it = FindDisplayController(crtc);
DCHECK(controllers_.end() != it) << "Display controller (crtc=" << crtc
<< ") doesn't exist.";
// mirror mode, subsequent calls configuring the other controllers will
// restore mirror mode.
if (controller->IsMirrored()) {
- controller =
- new HardwareDisplayController(dri_, controller->RemoveCrtc(crtc));
+ controller = new HardwareDisplayController(controller->RemoveCrtc(crtc));
controllers_.push_back(controller);
it = controllers_.end() - 1;
}
if (it != controllers_.end()) {
if ((*it)->IsMirrored()) {
HardwareDisplayController* controller =
- new HardwareDisplayController(dri_, (*it)->RemoveCrtc(crtc));
+ new HardwareDisplayController((*it)->RemoveCrtc(crtc));
controllers_.push_back(controller);
}
ScopedVector<HardwareDisplayControllerInfo> displays =
GetAvailableDisplayControllerInfos(dri_->get_fd());
- DCHECK_NE(0u, displays.size());
+ if (displays.empty())
+ return;
ScopedDrmPropertyPtr dpms(
dri_->GetProperty(displays[0]->connector(), "DPMS"));
dpms->prop_id,
DRM_MODE_DPMS_ON);
- AddDisplayController(displays[0]->crtc()->crtc_id,
+ AddDisplayController(dri_, displays[0]->crtc()->crtc_id,
displays[0]->connector()->connector_id);
ConfigureDisplayController(displays[0]->crtc()->crtc_id,
displays[0]->connector()->connector_id,