Index: gpu/command_buffer/tests/gl_manager.cc |
diff --git a/gpu/command_buffer/tests/gl_manager.cc b/gpu/command_buffer/tests/gl_manager.cc |
index 4e4eccb2abed4026fc23ec1c918f52a9f3af8d74..47701a0a82878646be3401e0e6412dd8eae30663 100644 |
--- a/gpu/command_buffer/tests/gl_manager.cc |
+++ b/gpu/command_buffer/tests/gl_manager.cc |
@@ -24,6 +24,7 @@ |
#include "gpu/command_buffer/service/gl_context_virtual.h" |
#include "gpu/command_buffer/service/gles2_cmd_decoder.h" |
#include "gpu/command_buffer/service/gpu_scheduler.h" |
+#include "gpu/command_buffer/service/image_factory.h" |
#include "gpu/command_buffer/service/image_manager.h" |
#include "gpu/command_buffer/service/mailbox_manager_impl.h" |
#include "gpu/command_buffer/service/memory_tracking.h" |
@@ -365,12 +366,21 @@ Capabilities GLManager::GetCapabilities() { |
return decoder_->GetCapabilities(); |
} |
-int32 GLManager::CreateImage(ClientBuffer buffer, |
+int32 GLManager::CreateImage(ClientBuffer* const buffers, |
size_t width, |
size_t height, |
unsigned internalformat) { |
+ size_t num_buffers = |
+ gpu::ImageFactory::NumberOfPlanesForImageFormat(internalformat); |
+ // TODO(emircan): See http://crbug.com/439520; support passing multiple |
+ // buffers when new multi-planar formats are added. |
+ if (num_buffers != 1) { |
+ NOTIMPLEMENTED(); |
+ return -1; |
+ } |
+ |
GpuMemoryBufferImpl* gpu_memory_buffer = |
- GpuMemoryBufferImpl::FromClientBuffer(buffer); |
+ GpuMemoryBufferImpl::FromClientBuffer(buffers[0]); |
scoped_refptr<gfx::GLImageRefCountedMemory> image( |
new gfx::GLImageRefCountedMemory(gfx::Size(width, height), |
@@ -396,7 +406,8 @@ int32 GLManager::CreateGpuMemoryBufferImage(size_t width, |
DCHECK_EQ(usage, static_cast<unsigned>(GL_MAP_CHROMIUM)); |
scoped_ptr<gfx::GpuMemoryBuffer> buffer = GLManager::CreateGpuMemoryBuffer( |
gfx::Size(width, height), gfx::GpuMemoryBuffer::RGBA_8888); |
- return CreateImage(buffer->AsClientBuffer(), width, height, internalformat); |
+ ClientBuffer buffers[] = {buffer->AsClientBuffer()}; |
+ return CreateImage(buffers, width, height, internalformat); |
} |
void GLManager::DestroyImage(int32 id) { |