| Index: mojo/services/gles2/mojo_buffer_backing.cc | 
| diff --git a/mojo/services/gles2/mojo_buffer_backing.cc b/mojo/services/gles2/mojo_buffer_backing.cc | 
| new file mode 100644 | 
| index 0000000000000000000000000000000000000000..3c908787ff5ca002f88637f300605c6853e56e14 | 
| --- /dev/null | 
| +++ b/mojo/services/gles2/mojo_buffer_backing.cc | 
| @@ -0,0 +1,36 @@ | 
| +// Copyright 2014 The Chromium Authors. All rights reserved. | 
| +// Use of this source code is governed by a BSD-style license that can be | 
| +// found in the LICENSE file. | 
| + | 
| +#include "mojo/services/gles2/mojo_buffer_backing.h" | 
| + | 
| +#include "base/logging.h" | 
| + | 
| +namespace mojo { | 
| +namespace gles2 { | 
| + | 
| +MojoBufferBacking::MojoBufferBacking(mojo::ScopedSharedBufferHandle handle, | 
| +                                     void* memory, | 
| +                                     size_t size) | 
| +    : handle_(handle.Pass()), memory_(memory), size_(size) {} | 
| + | 
| +MojoBufferBacking::~MojoBufferBacking() { mojo::UnmapBuffer(memory_); } | 
| + | 
| +// static | 
| +scoped_ptr<gpu::BufferBacking> MojoBufferBacking::Create( | 
| +    mojo::ScopedSharedBufferHandle handle, | 
| +    size_t size) { | 
| +  void* memory = NULL; | 
| +  MojoResult result = mojo::MapBuffer( | 
| +      handle.get(), 0, size, &memory, MOJO_MAP_BUFFER_FLAG_NONE); | 
| +  if (result != MOJO_RESULT_OK) | 
| +    return scoped_ptr<BufferBacking>(); | 
| +  DCHECK(memory); | 
| +  return scoped_ptr<BufferBacking>( | 
| +      new MojoBufferBacking(handle.Pass(), memory, size)); | 
| +} | 
| +void* MojoBufferBacking::GetMemory() const { return memory_; } | 
| +size_t MojoBufferBacking::GetSize() const { return size_; } | 
| + | 
| +}  // namespace gles2 | 
| +}  // namespace mojo | 
|  |