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

Unified Diff: ui/ozone/platform/wayland/fake_server.cc

Issue 2042503002: ozone/platform/wayland: Add support for wl_output_interface (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: remove WaylandDisplay::instance Created 4 years, 6 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/wayland/fake_server.cc
diff --git a/ui/ozone/platform/wayland/fake_server.cc b/ui/ozone/platform/wayland/fake_server.cc
index 03704a94d049c1a42dda143f8248e595858cb0e1..b9d89b1efcb7c3edb51a370d7d8b83147f59e2a7 100644
--- a/ui/ozone/platform/wayland/fake_server.cc
+++ b/ui/ozone/platform/wayland/fake_server.cc
@@ -18,6 +18,7 @@ namespace wl {
namespace {
const uint32_t kCompositorVersion = 4;
+const uint32_t kOutputVersion = 2;
const uint32_t kSeatVersion = 4;
const uint32_t kXdgShellVersion = 1;
@@ -278,6 +279,17 @@ void Global::Bind(wl_client* client,
global->resource_ = resource;
wl_resource_set_implementation(resource, global->implementation_, global,
&Global::OnResourceDestroyed);
+
+ if (global->interface_ == &wl_output_interface) {
+ auto output = static_cast<MockOutput*>(data);
+ gfx::Rect bounds = output->Display().bounds();
+ const char* kUnknownMake = "unknown";
+ const char* kUnknownModel = "unknown";
+ wl_output_send_geometry(resource, bounds.x(), bounds.y(), 0, 0, 0,
+ kUnknownMake, kUnknownModel, 0);
+ wl_output_send_mode(resource, WL_OUTPUT_MODE_CURRENT, bounds.width(),
+ bounds.height(), 0);
+ }
Michael Forney 2016/06/14 00:55:18 Maybe instead you could add a virtual method to Gl
joone 2016/06/14 22:10:28 Done.
}
// static
@@ -296,6 +308,11 @@ void MockCompositor::AddSurface(std::unique_ptr<MockSurface> surface) {
surfaces_.push_back(std::move(surface));
}
+MockOutput::MockOutput()
+ : Global(&wl_output_interface, nullptr, kOutputVersion) {}
+
+MockOutput::~MockOutput() {}
+
MockSeat::MockSeat() : Global(&wl_seat_interface, &seat_impl, kSeatVersion) {}
MockSeat::~MockSeat() {}
@@ -319,6 +336,10 @@ FakeServer::~FakeServer() {
Stop();
}
+void FakeServer::AddDisplay(const display::Display& fake_display) {
+ output_.SetDisplay(fake_display);
+}
+
bool FakeServer::Start() {
display_.reset(wl_display_create());
if (!display_)
@@ -335,6 +356,8 @@ bool FakeServer::Start() {
return false;
if (!compositor_.Initialize(display_.get()))
return false;
+ if (!output_.Initialize(display_.get()))
+ return false;
if (!seat_.Initialize(display_.get()))
return false;
if (!xdg_shell_.Initialize(display_.get()))

Powered by Google App Engine
This is Rietveld 408576698