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

Unified Diff: content/common/gpu/client/gpu_memory_buffer_impl_shared_memory.cc

Issue 1389133002: content: Use type-parameterized tests for GpuMemoryBuffer implementations. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: add blankline Created 5 years, 2 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: content/common/gpu/client/gpu_memory_buffer_impl_shared_memory.cc
diff --git a/content/common/gpu/client/gpu_memory_buffer_impl_shared_memory.cc b/content/common/gpu/client/gpu_memory_buffer_impl_shared_memory.cc
index efa641b706e839d3ef920e3fcbe17e9e0a2f3273..02437ffec15a3b53d48e1b95f237aa907ded084e 100644
--- a/content/common/gpu/client/gpu_memory_buffer_impl_shared_memory.cc
+++ b/content/common/gpu/client/gpu_memory_buffer_impl_shared_memory.cc
@@ -11,6 +11,11 @@
#include "ui/gl/gl_bindings.h"
namespace content {
+namespace {
+
+void Noop() {}
+
+} // namespace
GpuMemoryBufferImplSharedMemory::GpuMemoryBufferImplSharedMemory(
gfx::GpuMemoryBufferId id,
@@ -28,11 +33,11 @@ GpuMemoryBufferImplSharedMemory::~GpuMemoryBufferImplSharedMemory() {
}
// static
-scoped_ptr<GpuMemoryBufferImpl> GpuMemoryBufferImplSharedMemory::Create(
- gfx::GpuMemoryBufferId id,
- const gfx::Size& size,
- gfx::BufferFormat format,
- const DestructionCallback& callback) {
+scoped_ptr<GpuMemoryBufferImplSharedMemory>
+GpuMemoryBufferImplSharedMemory::Create(gfx::GpuMemoryBufferId id,
+ const gfx::Size& size,
+ gfx::BufferFormat format,
+ const DestructionCallback& callback) {
size_t buffer_size = 0u;
if (!gfx::BufferSizeForBufferFormatChecked(size, format, &buffer_size))
return nullptr;
@@ -68,11 +73,12 @@ GpuMemoryBufferImplSharedMemory::AllocateForChildProcess(
}
// static
-scoped_ptr<GpuMemoryBufferImpl>
+scoped_ptr<GpuMemoryBufferImplSharedMemory>
GpuMemoryBufferImplSharedMemory::CreateFromHandle(
const gfx::GpuMemoryBufferHandle& handle,
const gfx::Size& size,
gfx::BufferFormat format,
+ gfx::BufferUsage usage,
const DestructionCallback& callback) {
if (!base::SharedMemory::IsHandleValid(handle.handle))
return nullptr;
@@ -83,13 +89,8 @@ GpuMemoryBufferImplSharedMemory::CreateFromHandle(
if (!shared_memory->Map(buffer_size))
base::TerminateBecauseOutOfMemory(buffer_size);
- return make_scoped_ptr<GpuMemoryBufferImpl>(
- new GpuMemoryBufferImplSharedMemory(
- handle.id,
- size,
- format,
- callback,
- shared_memory.Pass()));
+ return make_scoped_ptr(new GpuMemoryBufferImplSharedMemory(
+ handle.id, size, format, callback, shared_memory.Pass()));
}
// static
@@ -131,6 +132,13 @@ bool GpuMemoryBufferImplSharedMemory::IsUsageSupported(gfx::BufferUsage usage) {
}
// static
+bool GpuMemoryBufferImplSharedMemory::IsConfigurationSupported(
+ gfx::BufferFormat format,
+ gfx::BufferUsage usage) {
+ return IsFormatSupported(format) && IsUsageSupported(usage);
+}
+
+// static
bool GpuMemoryBufferImplSharedMemory::IsSizeValidForFormat(
const gfx::Size& size,
gfx::BufferFormat format) {
@@ -167,6 +175,21 @@ bool GpuMemoryBufferImplSharedMemory::IsSizeValidForFormat(
return false;
}
+// static
+base::Closure GpuMemoryBufferImplSharedMemory::AllocateForTesting(
+ const gfx::Size& size,
+ gfx::BufferFormat format,
+ gfx::BufferUsage usage,
+ gfx::GpuMemoryBufferHandle* handle) {
+ base::SharedMemory shared_memory;
+ bool rv = shared_memory.CreateAnonymous(
+ gfx::BufferSizeForBufferFormat(size, format));
+ DCHECK(rv);
+ handle->type = gfx::SHARED_MEMORY_BUFFER;
+ handle->handle = base::SharedMemory::DuplicateHandle(shared_memory.handle());
+ return base::Bind(&Noop);
+}
+
bool GpuMemoryBufferImplSharedMemory::Map(void** data) {
DCHECK(!mapped_);
size_t offset = 0;

Powered by Google App Engine
This is Rietveld 408576698