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

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

Issue 981583005: [Ozone-Dri] Merge the DriWindowDelegate with the implementation (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 10 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
« no previous file with comments | « ui/ozone/platform/dri/dri_surface_factory.cc ('k') | ui/ozone/platform/dri/dri_window_delegate.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ui/ozone/platform/dri/dri_surface_unittest.cc
diff --git a/ui/ozone/platform/dri/dri_surface_unittest.cc b/ui/ozone/platform/dri/dri_surface_unittest.cc
index 949c8c53241deae3dbb6e9a8d12133f085acae3d..7a5b8c51ba4c1a6956bf26757eb43e8dd11a7328 100644
--- a/ui/ozone/platform/dri/dri_surface_unittest.cc
+++ b/ui/ozone/platform/dri/dri_surface_unittest.cc
@@ -11,7 +11,9 @@
#include "ui/ozone/platform/dri/dri_buffer.h"
#include "ui/ozone/platform/dri/dri_surface.h"
#include "ui/ozone/platform/dri/dri_window_delegate.h"
+#include "ui/ozone/platform/dri/drm_device_manager.h"
#include "ui/ozone/platform/dri/hardware_display_controller.h"
+#include "ui/ozone/platform/dri/screen_manager.h"
#include "ui/ozone/platform/dri/test/mock_drm_device.h"
namespace {
@@ -20,43 +22,11 @@ namespace {
const drmModeModeInfo kDefaultMode =
{0, 6, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, {'\0'}};
+const gfx::AcceleratedWidget kDefaultWidgetHandle = 1;
const uint32_t kDefaultCrtc = 1;
const uint32_t kDefaultConnector = 2;
const size_t kPlanesPerCrtc = 1;
-
-class MockDriWindowDelegate : public ui::DriWindowDelegate {
- public:
- MockDriWindowDelegate(ui::DrmDevice* drm) {
- controller_.reset(new ui::HardwareDisplayController(make_scoped_ptr(
- new ui::CrtcController(drm, kDefaultCrtc, kDefaultConnector))));
- scoped_refptr<ui::DriBuffer> buffer(new ui::DriBuffer(drm));
- SkImageInfo info = SkImageInfo::MakeN32Premul(kDefaultMode.hdisplay,
- kDefaultMode.vdisplay);
- EXPECT_TRUE(buffer->Initialize(info, true));
- EXPECT_TRUE(controller_->Modeset(ui::OverlayPlane(buffer), kDefaultMode));
- }
- ~MockDriWindowDelegate() override {}
-
- // DriWindowDelegate:
- void Initialize() override {}
- void Shutdown() override {}
- gfx::AcceleratedWidget GetAcceleratedWidget() override { return 1; }
- ui::HardwareDisplayController* GetController() override {
- return controller_.get();
- }
- void OnBoundsChanged(const gfx::Rect& bounds) override {}
- void SetCursor(const std::vector<SkBitmap>& bitmaps,
- const gfx::Point& location,
- int frame_delay_ms) override {}
- void SetCursorWithoutAnimations(const std::vector<SkBitmap>& bitmaps,
- const gfx::Point& location) override {}
- void MoveCursor(const gfx::Point& location) override {}
-
- private:
- scoped_ptr<ui::HardwareDisplayController> controller_;
-
- DISALLOW_COPY_AND_ASSIGN(MockDriWindowDelegate);
-};
+const uint32_t kDefaultCursorSize = 64;
} // namespace
@@ -70,7 +40,10 @@ class DriSurfaceTest : public testing::Test {
protected:
scoped_ptr<base::MessageLoop> message_loop_;
scoped_refptr<ui::MockDrmDevice> drm_;
- scoped_ptr<MockDriWindowDelegate> window_delegate_;
+ scoped_ptr<ui::DriBufferGenerator> buffer_generator_;
+ scoped_ptr<ui::ScreenManager> screen_manager_;
+ scoped_ptr<ui::DrmDeviceManager> drm_device_manager_;
+ scoped_ptr<ui::DriWindowDelegate> window_delegate_;
scoped_ptr<ui::DriSurface> surface_;
private:
@@ -82,7 +55,19 @@ void DriSurfaceTest::SetUp() {
std::vector<uint32_t> crtcs;
crtcs.push_back(kDefaultCrtc);
drm_ = new ui::MockDrmDevice(true, crtcs, kPlanesPerCrtc);
- window_delegate_.reset(new MockDriWindowDelegate(drm_.get()));
+ buffer_generator_.reset(new ui::DriBufferGenerator());
+ screen_manager_.reset(new ui::ScreenManager(buffer_generator_.get()));
+ screen_manager_->AddDisplayController(drm_, kDefaultCrtc, kDefaultConnector);
+ screen_manager_->ConfigureDisplayController(
+ drm_, kDefaultCrtc, kDefaultConnector, gfx::Point(), kDefaultMode);
+
+ drm_device_manager_.reset(new ui::DrmDeviceManager(drm_));
+ window_delegate_.reset(new ui::DriWindowDelegate(
+ kDefaultWidgetHandle, drm_device_manager_.get(), screen_manager_.get()));
+ window_delegate_->Initialize();
+ window_delegate_->OnBoundsChanged(
+ gfx::Rect(gfx::Size(kDefaultMode.hdisplay, kDefaultMode.vdisplay)));
+
surface_.reset(new ui::DriSurface(window_delegate_.get()));
surface_->ResizeCanvas(gfx::Size(kDefaultMode.hdisplay,
kDefaultMode.vdisplay));
@@ -90,7 +75,7 @@ void DriSurfaceTest::SetUp() {
void DriSurfaceTest::TearDown() {
surface_.reset();
- window_delegate_.reset();
+ window_delegate_->Shutdown();
drm_ = nullptr;
message_loop_.reset();
}
@@ -113,12 +98,22 @@ TEST_F(DriSurfaceTest, CheckSurfaceContents) {
gfx::Rect(0, 0, kDefaultMode.hdisplay / 2, kDefaultMode.vdisplay / 2));
SkBitmap image;
- // Buffer 0 is the buffer used in SetUp for modesetting and buffer 1 is the
- // frontbuffer.
- // Buffer 2 is the backbuffer we just painted in, so we want to make sure its
- // contents are correct.
- image.setInfo(drm_->buffers()[2]->getCanvas()->imageInfo());
- EXPECT_TRUE(drm_->buffers()[2]->getCanvas()->readPixels(&image, 0, 0));
+ std::vector<skia::RefPtr<SkSurface>> framebuffers;
+ for (const auto& buffer : drm_->buffers()) {
+ // Skip cursor buffers.
+ if (buffer->width() == kDefaultCursorSize &&
+ buffer->height() == kDefaultCursorSize)
+ continue;
+
+ framebuffers.push_back(buffer);
+ }
+
+ // Buffer 0 is the modesetting buffer, buffer 1 is the frontbuffer and buffer
+ // 2 is the backbuffer.
+ EXPECT_EQ(3u, framebuffers.size());
+
+ image.setInfo(framebuffers[2]->getCanvas()->imageInfo());
+ EXPECT_TRUE(framebuffers[2]->getCanvas()->readPixels(&image, 0, 0));
EXPECT_EQ(kDefaultMode.hdisplay, image.width());
EXPECT_EQ(kDefaultMode.vdisplay, image.height());
« no previous file with comments | « ui/ozone/platform/dri/dri_surface_factory.cc ('k') | ui/ozone/platform/dri/dri_window_delegate.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698