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

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

Issue 371813004: ozone: gbm: Add overlay support (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 5 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/dri/hardware_display_controller_unittest.cc
diff --git a/ui/ozone/platform/dri/hardware_display_controller_unittest.cc b/ui/ozone/platform/dri/hardware_display_controller_unittest.cc
index 25169453b2de674e72c286fcc2862b7c13c2d5d1..6a9e192767f45c87ee191f31d9363b23ac15eb3c 100644
--- a/ui/ozone/platform/dri/hardware_display_controller_unittest.cc
+++ b/ui/ozone/platform/dri/hardware_display_controller_unittest.cc
@@ -10,6 +10,7 @@
#include "ui/ozone/platform/dri/hardware_display_controller.h"
#include "ui/ozone/platform/dri/test/mock_dri_surface.h"
#include "ui/ozone/platform/dri/test/mock_dri_wrapper.h"
+#include "ui/ozone/public/native_pixmap.h"
namespace {
@@ -18,6 +19,8 @@ const drmModeModeInfo kDefaultMode =
{0, 6, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, {'\0'}};
const gfx::Size kDefaultModeSize(kDefaultMode.hdisplay, kDefaultMode.vdisplay);
+const gfx::SizeF kDefaultModeSizeF(kDefaultMode.hdisplay,
+ kDefaultMode.vdisplay);
} // namespace
@@ -63,7 +66,7 @@ TEST_F(HardwareDisplayControllerTest, CheckStateAfterPageFlip) {
EXPECT_TRUE(surface->Initialize());
EXPECT_TRUE(controller_->BindSurfaceToController(surface.Pass(),
kDefaultMode));
- EXPECT_TRUE(controller_->SchedulePageFlip());
+ EXPECT_TRUE(controller_->SchedulePageFlip(NULL, NULL));
EXPECT_TRUE(controller_->surface() != NULL);
}
@@ -88,7 +91,7 @@ TEST_F(HardwareDisplayControllerTest, CheckStateIfPageFlipFails) {
EXPECT_TRUE(surface->Initialize());
EXPECT_TRUE(controller_->BindSurfaceToController(surface.Pass(),
kDefaultMode));
- EXPECT_FALSE(controller_->SchedulePageFlip());
+ EXPECT_FALSE(controller_->SchedulePageFlip(NULL, NULL));
}
TEST_F(HardwareDisplayControllerTest, VerifyNoDRMCallsWhenDisabled) {
@@ -99,7 +102,7 @@ TEST_F(HardwareDisplayControllerTest, VerifyNoDRMCallsWhenDisabled) {
EXPECT_TRUE(controller_->BindSurfaceToController(surface.Pass(),
kDefaultMode));
controller_->Disable();
- EXPECT_TRUE(controller_->SchedulePageFlip());
+ EXPECT_TRUE(controller_->SchedulePageFlip(NULL, NULL));
EXPECT_EQ(0, drm_->get_page_flip_call_count());
surface.reset(new ui::MockDriSurface(drm_.get(), kDefaultModeSize));
@@ -107,6 +110,53 @@ TEST_F(HardwareDisplayControllerTest, VerifyNoDRMCallsWhenDisabled) {
EXPECT_TRUE(surface->Initialize());
EXPECT_TRUE(controller_->BindSurfaceToController(surface.Pass(),
kDefaultMode));
- EXPECT_TRUE(controller_->SchedulePageFlip());
+ EXPECT_TRUE(controller_->SchedulePageFlip(NULL, NULL));
EXPECT_EQ(1, drm_->get_page_flip_call_count());
}
+
+TEST_F(HardwareDisplayControllerTest, CheckOverlayMainSurfaceReplacement) {
+ scoped_ptr<ui::ScanoutSurface> surface(
+ new ui::MockDriSurface(drm_.get(), kDefaultModeSize));
+
+ EXPECT_TRUE(surface->Initialize());
+ EXPECT_TRUE(
+ controller_->BindSurfaceToController(surface.Pass(), kDefaultMode));
+
+ std::vector<ui::OzoneOverlayPlane> overlays;
+ std::vector<scoped_refptr<ui::NativePixmap> > overlay_refs;
+
+ overlays.push_back(ui::OzoneOverlayPlane(surface.get(),
+ 0,
+ gfx::OVERLAY_TRANSFORM_NONE,
+ gfx::Rect(kDefaultModeSize),
+ gfx::RectF(kDefaultModeSizeF)));
+
+ EXPECT_TRUE(controller_->SchedulePageFlip(&overlays, &overlay_refs));
+ EXPECT_EQ(1, drm_->get_page_flip_call_count());
+ EXPECT_EQ(0, drm_->get_overlay_flip_call_count());
+}
+
+TEST_F(HardwareDisplayControllerTest, CheckOverlayPresent) {
+ scoped_ptr<ui::ScanoutSurface> surface(
+ new ui::MockDriSurface(drm_.get(), kDefaultModeSize));
+ scoped_ptr<ui::ScanoutSurface> overlay(
+ new ui::MockDriSurface(drm_.get(), kDefaultModeSize));
+
+ EXPECT_TRUE(surface->Initialize());
+ EXPECT_TRUE(
+ controller_->BindSurfaceToController(surface.Pass(), kDefaultMode));
+
+ std::vector<ui::OzoneOverlayPlane> overlays;
+ std::vector<scoped_refptr<ui::NativePixmap> > overlay_refs;
+
+ overlays.push_back(ui::OzoneOverlayPlane(overlay.get(),
+ 1,
+ gfx::OVERLAY_TRANSFORM_NONE,
+ gfx::Rect(kDefaultModeSize),
+ gfx::RectF(kDefaultModeSizeF)));
+ overlays.back().overlay_plane = 1; // Force association with a plane.
+
+ EXPECT_TRUE(controller_->SchedulePageFlip(&overlays, &overlay_refs));
+ EXPECT_EQ(1, drm_->get_page_flip_call_count());
+ EXPECT_EQ(1, drm_->get_overlay_flip_call_count());
+}

Powered by Google App Engine
This is Rietveld 408576698