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

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: fix test build 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
« no previous file with comments | « ui/ozone/platform/dri/hardware_display_controller.cc ('k') | ui/ozone/platform/dri/ozone_platform_gbm.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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..16b2dabd5190b998caf2b6df0cd92211c4304b62 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,7 @@ 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(1.0, 1.0);
} // namespace
@@ -63,7 +65,8 @@ TEST_F(HardwareDisplayControllerTest, CheckStateAfterPageFlip) {
EXPECT_TRUE(surface->Initialize());
EXPECT_TRUE(controller_->BindSurfaceToController(surface.Pass(),
kDefaultMode));
- EXPECT_TRUE(controller_->SchedulePageFlip());
+ EXPECT_TRUE(controller_->SchedulePageFlip(
+ std::vector<ui::OzoneOverlayPlane>(), NULL));
EXPECT_TRUE(controller_->surface() != NULL);
}
@@ -88,7 +91,8 @@ TEST_F(HardwareDisplayControllerTest, CheckStateIfPageFlipFails) {
EXPECT_TRUE(surface->Initialize());
EXPECT_TRUE(controller_->BindSurfaceToController(surface.Pass(),
kDefaultMode));
- EXPECT_FALSE(controller_->SchedulePageFlip());
+ EXPECT_FALSE(controller_->SchedulePageFlip(
+ std::vector<ui::OzoneOverlayPlane>(), NULL));
}
TEST_F(HardwareDisplayControllerTest, VerifyNoDRMCallsWhenDisabled) {
@@ -99,7 +103,8 @@ TEST_F(HardwareDisplayControllerTest, VerifyNoDRMCallsWhenDisabled) {
EXPECT_TRUE(controller_->BindSurfaceToController(surface.Pass(),
kDefaultMode));
controller_->Disable();
- EXPECT_TRUE(controller_->SchedulePageFlip());
+ EXPECT_TRUE(controller_->SchedulePageFlip(
+ std::vector<ui::OzoneOverlayPlane>(), NULL));
EXPECT_EQ(0, drm_->get_page_flip_call_count());
surface.reset(new ui::MockDriSurface(drm_.get(), kDefaultModeSize));
@@ -107,6 +112,58 @@ TEST_F(HardwareDisplayControllerTest, VerifyNoDRMCallsWhenDisabled) {
EXPECT_TRUE(surface->Initialize());
EXPECT_TRUE(controller_->BindSurfaceToController(surface.Pass(),
kDefaultMode));
- EXPECT_TRUE(controller_->SchedulePageFlip());
+ EXPECT_TRUE(controller_->SchedulePageFlip(
+ std::vector<ui::OzoneOverlayPlane>(), 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));
+ scoped_ptr<ui::ScanoutSurface> overlay(
+ new ui::MockDriSurface(drm_.get(), kDefaultModeSize));
+
+ EXPECT_TRUE(surface->Initialize());
+ EXPECT_TRUE(
+ controller_->BindSurfaceToController(surface.Pass(), kDefaultMode));
+ EXPECT_TRUE(overlay->Initialize());
+
+ std::vector<ui::OzoneOverlayPlane> overlays;
+ std::vector<scoped_refptr<ui::NativePixmap> > overlay_refs;
+
+ overlays.push_back(ui::OzoneOverlayPlane(overlay.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));
+ EXPECT_TRUE(overlay->Initialize());
+
+ 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());
+}
« no previous file with comments | « ui/ozone/platform/dri/hardware_display_controller.cc ('k') | ui/ozone/platform/dri/ozone_platform_gbm.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698