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

Side by Side Diff: components/exo/display_unittest.cc

Issue 2046743002: exo: Add support for importing YVU_420 buffers. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@yv12-test
Patch Set: Avoid vector aggregate initialization in exo test. Created 4 years, 6 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 unified diff | Download patch
« no previous file with comments | « components/exo/display.cc ('k') | components/exo/wayland/server.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "ash/common/shell_window_ids.h" 5 #include "ash/common/shell_window_ids.h"
6 #include "components/exo/buffer.h" 6 #include "components/exo/buffer.h"
7 #include "components/exo/display.h" 7 #include "components/exo/display.h"
8 #include "components/exo/shared_memory.h" 8 #include "components/exo/shared_memory.h"
9 #include "components/exo/shell_surface.h" 9 #include "components/exo/shell_surface.h"
10 #include "components/exo/sub_surface.h" 10 #include "components/exo/sub_surface.h"
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
61 std::unique_ptr<Display> display(new Display); 61 std::unique_ptr<Display> display(new Display);
62 62
63 // Creating a prime buffer from a native pixmap handle should succeed. 63 // Creating a prime buffer from a native pixmap handle should succeed.
64 scoped_refptr<ui::NativePixmap> pixmap = 64 scoped_refptr<ui::NativePixmap> pixmap =
65 ui::OzonePlatform::GetInstance() 65 ui::OzonePlatform::GetInstance()
66 ->GetSurfaceFactoryOzone() 66 ->GetSurfaceFactoryOzone()
67 ->CreateNativePixmap(gfx::kNullAcceleratedWidget, buffer_size, 67 ->CreateNativePixmap(gfx::kNullAcceleratedWidget, buffer_size,
68 gfx::BufferFormat::RGBA_8888, 68 gfx::BufferFormat::RGBA_8888,
69 gfx::BufferUsage::GPU_READ); 69 gfx::BufferUsage::GPU_READ);
70 gfx::NativePixmapHandle native_pixmap_handle = pixmap->ExportHandle(); 70 gfx::NativePixmapHandle native_pixmap_handle = pixmap->ExportHandle();
71 std::vector<int> strides;
72 std::vector<int> offsets;
73 std::vector<base::ScopedFD> fds;
74 strides.push_back(native_pixmap_handle.strides_and_offsets[0].first);
75 offsets.push_back(native_pixmap_handle.strides_and_offsets[0].second);
76 fds.push_back(base::ScopedFD(native_pixmap_handle.fds[0].fd));
77
71 std::unique_ptr<Buffer> buffer1 = display->CreateLinuxDMABufBuffer( 78 std::unique_ptr<Buffer> buffer1 = display->CreateLinuxDMABufBuffer(
72 base::ScopedFD(native_pixmap_handle.fd.fd), buffer_size, 79 buffer_size, gfx::BufferFormat::RGBA_8888, strides, offsets,
73 gfx::BufferFormat::RGBA_8888, native_pixmap_handle.stride); 80 std::move(fds));
74 EXPECT_TRUE(buffer1); 81 EXPECT_TRUE(buffer1);
75 82
83 std::vector<base::ScopedFD> invalid_fds;
84 invalid_fds.push_back(base::ScopedFD());
76 // Creating a prime buffer using an invalid fd should fail. 85 // Creating a prime buffer using an invalid fd should fail.
77 std::unique_ptr<Buffer> buffer2 = display->CreateLinuxDMABufBuffer( 86 std::unique_ptr<Buffer> buffer2 = display->CreateLinuxDMABufBuffer(
78 base::ScopedFD(), buffer_size, gfx::BufferFormat::RGBA_8888, 87 buffer_size, gfx::BufferFormat::RGBA_8888, strides, offsets,
79 buffer_size.width() * 4); 88 std::move(invalid_fds));
80 EXPECT_FALSE(buffer2); 89 EXPECT_FALSE(buffer2);
81 } 90 }
91
92 // TODO(dcastagna): Add YV12 unittest once we can allocate the buffer
93 // via Ozone. crbug.com/618516
94
82 #endif 95 #endif
83 96
84 TEST_F(DisplayTest, CreateShellSurface) { 97 TEST_F(DisplayTest, CreateShellSurface) {
85 std::unique_ptr<Display> display(new Display); 98 std::unique_ptr<Display> display(new Display);
86 99
87 // Create two surfaces. 100 // Create two surfaces.
88 std::unique_ptr<Surface> surface1 = display->CreateSurface(); 101 std::unique_ptr<Surface> surface1 = display->CreateSurface();
89 ASSERT_TRUE(surface1); 102 ASSERT_TRUE(surface1);
90 std::unique_ptr<Surface> surface2 = display->CreateSurface(); 103 std::unique_ptr<Surface> surface2 = display->CreateSurface();
91 ASSERT_TRUE(surface2); 104 ASSERT_TRUE(surface2);
(...skipping 115 matching lines...) Expand 10 before | Expand all | Expand 10 after
207 // Attempting to create a sub surface for parent with grandchild as its parent 220 // Attempting to create a sub surface for parent with grandchild as its parent
208 // should fail. 221 // should fail.
209 EXPECT_FALSE(display->CreateSubSurface(parent.get(), grandchild.get())); 222 EXPECT_FALSE(display->CreateSubSurface(parent.get(), grandchild.get()));
210 223
211 // Create a sub surface for parent. 224 // Create a sub surface for parent.
212 EXPECT_TRUE(display->CreateSubSurface(parent.get(), toplevel.get())); 225 EXPECT_TRUE(display->CreateSubSurface(parent.get(), toplevel.get()));
213 } 226 }
214 227
215 } // namespace 228 } // namespace
216 } // namespace exo 229 } // namespace exo
OLDNEW
« no previous file with comments | « components/exo/display.cc ('k') | components/exo/wayland/server.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698