 Chromium Code Reviews
 Chromium Code Reviews Issue 2042503002:
  ozone/platform/wayland: Add support for wl_output_interface  (Closed) 
  Base URL: https://chromium.googlesource.com/chromium/src.git@master
    
  
    Issue 2042503002:
  ozone/platform/wayland: Add support for wl_output_interface  (Closed) 
  Base URL: https://chromium.googlesource.com/chromium/src.git@master| 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())) |