1c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch// Copyright 2014 The Chromium Authors. All rights reserved. 2c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch// Use of this source code is governed by a BSD-style license that can be 3c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch// found in the LICENSE file. 4c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch 5c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch#ifndef MOJO_SERVICES_GLES2_MOJO_BUFFER_BACKING_H_ 6c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch#define MOJO_SERVICES_GLES2_MOJO_BUFFER_BACKING_H_ 7c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch 8c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch#include "base/memory/scoped_ptr.h" 9c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch#include "gpu/command_buffer/common/buffer.h" 10c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch#include "mojo/public/cpp/system/core.h" 11c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch 12c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdochnamespace mojo { 13c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdochnamespace gles2 { 14c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch 15c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdochclass MojoBufferBacking : public gpu::BufferBacking { 16c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch public: 17c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch MojoBufferBacking(mojo::ScopedSharedBufferHandle handle, 18c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch void* memory, 19c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch size_t size); 20c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch virtual ~MojoBufferBacking(); 21c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch 22c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch static scoped_ptr<gpu::BufferBacking> Create( 23c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch mojo::ScopedSharedBufferHandle handle, 24c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch size_t size); 25c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch 26c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch virtual void* GetMemory() const OVERRIDE; 27c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch virtual size_t GetSize() const OVERRIDE; 28c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch 29c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch private: 30c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch mojo::ScopedSharedBufferHandle handle_; 31c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch void* memory_; 32c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch size_t size_; 33c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch 34c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch DISALLOW_COPY_AND_ASSIGN(MojoBufferBacking); 35c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch}; 36c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch 37c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch} // namespace gles2 38c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch} // namespace mojo 39c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch 40c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch#endif // MOJO_SERVICES_GLES2_MOJO_BUFFER_BACKING_H_ 41