Index: ui/ozone/platform/dri/test/mock_dri_wrapper.cc |
diff --git a/ui/ozone/platform/dri/test/mock_dri_wrapper.cc b/ui/ozone/platform/dri/test/mock_dri_wrapper.cc |
index 7acf06ab2060a5cf2626a13ace7014369cd36f86..4ea9dea46f45b8fe4f28f2dc224bc9e7d12daa51 100644 |
--- a/ui/ozone/platform/dri/test/mock_dri_wrapper.cc |
+++ b/ui/ozone/platform/dri/test/mock_dri_wrapper.cc |
@@ -9,7 +9,6 @@ |
#include "base/logging.h" |
#include "third_party/skia/include/core/SkCanvas.h" |
-#include "ui/ozone/platform/dri/crtc_controller.h" |
#include "ui/ozone/platform/dri/hardware_display_plane_manager_legacy.h" |
namespace ui { |
@@ -41,7 +40,7 @@ class MockHardwareDisplayPlaneManager |
} // namespace |
MockDriWrapper::MockDriWrapper(int fd) |
- : DriWrapper(""), |
+ : DriWrapper("", true), |
get_crtc_call_count_(0), |
set_crtc_call_count_(0), |
restore_crtc_call_count_(0), |
@@ -49,7 +48,6 @@ MockDriWrapper::MockDriWrapper(int fd) |
remove_framebuffer_call_count_(0), |
page_flip_call_count_(0), |
overlay_flip_call_count_(0), |
- handle_events_count_(0), |
set_crtc_expectation_(true), |
add_framebuffer_expectation_(true), |
page_flip_expectation_(true), |
@@ -60,9 +58,10 @@ MockDriWrapper::MockDriWrapper(int fd) |
} |
MockDriWrapper::MockDriWrapper(int fd, |
+ bool software_mode, |
std::vector<uint32_t> crtcs, |
size_t planes_per_crtc) |
- : DriWrapper(""), |
+ : DriWrapper("", software_mode), |
get_crtc_call_count_(0), |
set_crtc_call_count_(0), |
restore_crtc_call_count_(0), |
@@ -70,7 +69,6 @@ MockDriWrapper::MockDriWrapper(int fd, |
remove_framebuffer_call_count_(0), |
page_flip_call_count_(0), |
overlay_flip_call_count_(0), |
- handle_events_count_(0), |
set_crtc_expectation_(true), |
add_framebuffer_expectation_(true), |
page_flip_expectation_(true), |
@@ -137,10 +135,16 @@ ScopedDrmFramebufferPtr MockDriWrapper::GetFramebuffer(uint32_t framebuffer) { |
bool MockDriWrapper::PageFlip(uint32_t crtc_id, |
uint32_t framebuffer, |
- void* data) { |
+ const PageFlipCallback& callback) { |
page_flip_call_count_++; |
current_framebuffer_ = framebuffer; |
- controllers_.push(static_cast<ui::CrtcController*>(data)); |
+ if (page_flip_expectation_) { |
+ if (software_mode_) |
+ callback.Run(0, 0, 0); |
+ else |
+ callbacks_.push(callback); |
+ } |
+ |
return page_flip_expectation_; |
} |
@@ -184,13 +188,6 @@ bool MockDriWrapper::MoveCursor(uint32_t crtc_id, const gfx::Point& point) { |
return true; |
} |
-void MockDriWrapper::HandleEvent(drmEventContext& event) { |
- CHECK(!controllers_.empty()); |
- controllers_.front()->OnPageFlipEvent(0, 0, 0); |
- controllers_.pop(); |
- handle_events_count_++; |
-} |
- |
bool MockDriWrapper::CreateDumbBuffer(const SkImageInfo& info, |
uint32_t* handle, |
uint32_t* stride, |
@@ -215,4 +212,12 @@ void MockDriWrapper::DestroyDumbBuffer(const SkImageInfo& info, |
delete[] static_cast<char*>(pixels); |
} |
+void MockDriWrapper::RunCallbacks() { |
+ while (!callbacks_.empty()) { |
+ PageFlipCallback callback = callbacks_.front(); |
+ callbacks_.pop(); |
+ callback.Run(0, 0, 0); |
+ } |
+} |
+ |
} // namespace ui |