Index: ui/ozone/platform/drm/gpu/scanout_buffer.h |
diff --git a/ui/ozone/platform/drm/gpu/scanout_buffer.h b/ui/ozone/platform/drm/gpu/scanout_buffer.h |
new file mode 100644 |
index 0000000000000000000000000000000000000000..ca512aa3c53d7f75b55585808bc475975ea289c1 |
--- /dev/null |
+++ b/ui/ozone/platform/drm/gpu/scanout_buffer.h |
@@ -0,0 +1,46 @@ |
+// 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. |
+ |
+#ifndef UI_OZONE_PLATFORM_DRM_GPU_SCANOUT_BUFFER_H_ |
+#define UI_OZONE_PLATFORM_DRM_GPU_SCANOUT_BUFFER_H_ |
+ |
+#include <stdint.h> |
+ |
+#include "base/memory/ref_counted.h" |
+#include "ui/gfx/geometry/size.h" |
+ |
+namespace ui { |
+ |
+class DrmDevice; |
+ |
+// Abstraction for a DRM buffer that can be scanned-out of. |
+class ScanoutBuffer : public base::RefCountedThreadSafe<ScanoutBuffer> { |
+ public: |
+ // ID allocated by the KMS API when the buffer is registered (via the handle). |
+ virtual uint32_t GetFramebufferId() const = 0; |
+ |
+ // Handle for the buffer. This is received when allocating the buffer. |
+ virtual uint32_t GetHandle() const = 0; |
+ |
+ // Size of the buffer. |
+ virtual gfx::Size GetSize() const = 0; |
+ |
+ protected: |
+ virtual ~ScanoutBuffer() {} |
+ |
+ friend class base::RefCountedThreadSafe<ScanoutBuffer>; |
+}; |
+ |
+class ScanoutBufferGenerator { |
+ public: |
+ virtual ~ScanoutBufferGenerator() {} |
+ |
+ virtual scoped_refptr<ScanoutBuffer> Create( |
+ const scoped_refptr<DrmDevice>& drm, |
+ const gfx::Size& size) = 0; |
+}; |
+ |
+} // namespace ui |
+ |
+#endif // UI_OZONE_PLATFORM_DRM_GPU_SCANOUT_BUFFER_H_ |