gl_image_shared_memory.h 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. // Copyright 2014 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. #ifndef UI_GL_GL_IMAGE_SHARED_MEMORY_H_
  5. #define UI_GL_GL_IMAGE_SHARED_MEMORY_H_
  6. #include <stddef.h>
  7. #include <stdint.h>
  8. #include <memory>
  9. #include "base/memory/unsafe_shared_memory_region.h"
  10. #include "ui/gfx/generic_shared_memory_id.h"
  11. #include "ui/gl/gl_export.h"
  12. #include "ui/gl/gl_image_memory.h"
  13. namespace gl {
  14. class GL_EXPORT GLImageSharedMemory : public GLImageMemory {
  15. public:
  16. explicit GLImageSharedMemory(const gfx::Size& size);
  17. GLImageSharedMemory(const GLImageSharedMemory&) = delete;
  18. GLImageSharedMemory& operator=(const GLImageSharedMemory&) = delete;
  19. bool Initialize(const base::UnsafeSharedMemoryRegion& shared_memory_region,
  20. gfx::GenericSharedMemoryId shared_memory_id,
  21. gfx::BufferFormat format,
  22. size_t offset,
  23. size_t stride);
  24. // Overridden from GLImage:
  25. void OnMemoryDump(base::trace_event::ProcessMemoryDump* pmd,
  26. uint64_t process_tracing_id,
  27. const std::string& dump_name) override;
  28. protected:
  29. ~GLImageSharedMemory() override;
  30. private:
  31. base::WritableSharedMemoryMapping shared_memory_mapping_;
  32. gfx::GenericSharedMemoryId shared_memory_id_;
  33. };
  34. } // namespace gl
  35. #endif // UI_GL_GL_IMAGE_SHARED_MEMORY_H_