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

Side by Side Diff: ui/gl/gl_image_shared_memory_unittest.cc

Issue 1419733005: gpu: Add YCbCr 420v extension. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Address reveman's comments. Created 5 years, 1 month 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
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 "base/memory/shared_memory.h" 5 #include "base/memory/shared_memory.h"
6 #include "base/sys_info.h" 6 #include "base/sys_info.h"
7 #include "testing/gtest/include/gtest/gtest.h" 7 #include "testing/gtest/include/gtest/gtest.h"
8 #include "ui/gl/gl_image_shared_memory.h" 8 #include "ui/gl/gl_image_shared_memory.h"
9 #include "ui/gl/test/gl_image_test_template.h" 9 #include "ui/gl/test/gl_image_test_template.h"
10 10
11 namespace gfx { 11 namespace gfx {
12 namespace { 12 namespace {
13 13
14 template <BufferFormat format> 14 template <BufferFormat format>
15 class GLImageSharedMemoryTestDelegate { 15 class GLImageSharedMemoryTestDelegate {
16 public: 16 public:
17 scoped_refptr<gl::GLImage> CreateSolidColorImage( 17 scoped_refptr<gl::GLImage> CreateSolidColorImage(
18 const Size& size, 18 const Size& size,
19 const uint8_t color[4]) const { 19 const uint8_t color[4]) const {
20 DCHECK_EQ(NumberOfPlanesForBufferFormat(format), 1u); 20 DCHECK_EQ(NumberOfPlanesForBufferFormat(format), 1u);
21 base::SharedMemory shared_memory; 21 base::SharedMemory shared_memory;
22 bool rv = shared_memory.CreateAndMapAnonymous( 22 bool rv = shared_memory.CreateAndMapAnonymous(
23 BufferSizeForBufferFormat(size, format)); 23 BufferSizeForBufferFormat(size, format));
24 DCHECK(rv); 24 DCHECK(rv);
25 GLImageTestSupport::SetBufferDataToColor( 25 GLImageTestSupport::SetBufferDataToColor(
26 size.width(), size.height(), 26 size.width(), size.height(),
27 static_cast<int>(RowSizeForBufferFormat(size.width(), format, 0)), 27 static_cast<int>(RowSizeForBufferFormat(size.width(), format, 0)), 0,
28 format, color, reinterpret_cast<uint8_t*>(shared_memory.memory())); 28 format, color, reinterpret_cast<uint8_t*>(shared_memory.memory()));
29 scoped_refptr<gl::GLImageSharedMemory> image(new gl::GLImageSharedMemory( 29 scoped_refptr<gl::GLImageSharedMemory> image(new gl::GLImageSharedMemory(
30 size, gl::GLImageMemory::GetInternalFormatForTesting(format))); 30 size, gl::GLImageMemory::GetInternalFormatForTesting(format)));
31 rv = image->Initialize( 31 rv = image->Initialize(
32 base::SharedMemory::DuplicateHandle(shared_memory.handle()), 32 base::SharedMemory::DuplicateHandle(shared_memory.handle()),
33 GenericSharedMemoryId(0), format, 0); 33 GenericSharedMemoryId(0), format, 0);
34 EXPECT_TRUE(rv); 34 EXPECT_TRUE(rv);
35 return image; 35 return image;
36 } 36 }
37 }; 37 };
(...skipping 24 matching lines...) Expand all
62 bool rv = shared_memory.CreateAndMapAnonymous(pool_size); 62 bool rv = shared_memory.CreateAndMapAnonymous(pool_size);
63 DCHECK(rv); 63 DCHECK(rv);
64 // Initialize memory to a value that is easy to recognize if test fails. 64 // Initialize memory to a value that is easy to recognize if test fails.
65 memset(shared_memory.memory(), 0x55, pool_size); 65 memset(shared_memory.memory(), 0x55, pool_size);
66 // Place buffer at a non-zero non-page-aligned offset in shared memory. 66 // Place buffer at a non-zero non-page-aligned offset in shared memory.
67 size_t buffer_offset = 3 * base::SysInfo::VMAllocationGranularity() / 2; 67 size_t buffer_offset = 3 * base::SysInfo::VMAllocationGranularity() / 2;
68 GLImageTestSupport::SetBufferDataToColor( 68 GLImageTestSupport::SetBufferDataToColor(
69 size.width(), size.height(), 69 size.width(), size.height(),
70 static_cast<int>( 70 static_cast<int>(
71 RowSizeForBufferFormat(size.width(), BufferFormat::RGBA_8888, 0)), 71 RowSizeForBufferFormat(size.width(), BufferFormat::RGBA_8888, 0)),
72 BufferFormat::RGBA_8888, color, 72 0, BufferFormat::RGBA_8888, color,
73 reinterpret_cast<uint8_t*>(shared_memory.memory()) + buffer_offset); 73 reinterpret_cast<uint8_t*>(shared_memory.memory()) + buffer_offset);
74 scoped_refptr<gl::GLImageSharedMemory> image( 74 scoped_refptr<gl::GLImageSharedMemory> image(
75 new gl::GLImageSharedMemory(size, GL_RGBA)); 75 new gl::GLImageSharedMemory(size, GL_RGBA));
76 rv = image->Initialize( 76 rv = image->Initialize(
77 base::SharedMemory::DuplicateHandle(shared_memory.handle()), 77 base::SharedMemory::DuplicateHandle(shared_memory.handle()),
78 GenericSharedMemoryId(0), BufferFormat::RGBA_8888, buffer_offset); 78 GenericSharedMemoryId(0), BufferFormat::RGBA_8888, buffer_offset);
79 EXPECT_TRUE(rv); 79 EXPECT_TRUE(rv);
80 return image; 80 return image;
81 } 81 }
82 }; 82 };
83 83
84 INSTANTIATE_TYPED_TEST_CASE_P(GLImageSharedMemoryPool, 84 INSTANTIATE_TYPED_TEST_CASE_P(GLImageSharedMemoryPool,
85 GLImageCopyTest, 85 GLImageCopyTest,
86 GLImageSharedMemoryPoolTestDelegate); 86 GLImageSharedMemoryPoolTestDelegate);
87 87
88 } // namespace 88 } // namespace
89 } // namespace gfx 89 } // namespace gfx
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698