1// Copyright 2013 The Chromium Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5#include "content/common/gpu/client/gpu_memory_buffer_impl.h" 6 7#include "content/common/gpu/client/gpu_memory_buffer_impl_shm.h" 8 9namespace content { 10 11scoped_ptr<GpuMemoryBufferImpl> GpuMemoryBufferImpl::Create( 12 gfx::GpuMemoryBufferHandle handle, 13 gfx::Size size, 14 unsigned internalformat) { 15 switch (handle.type) { 16 case gfx::SHARED_MEMORY_BUFFER: { 17 scoped_ptr<GpuMemoryBufferImplShm> buffer( 18 new GpuMemoryBufferImplShm(size, internalformat)); 19 if (!buffer->Initialize(handle)) 20 return scoped_ptr<GpuMemoryBufferImpl>(); 21 22 return buffer.PassAs<GpuMemoryBufferImpl>(); 23 } 24 default: 25 return scoped_ptr<GpuMemoryBufferImpl>(); 26 } 27} 28 29} // namespace content 30