| 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
|
|
|