Index: ui/ozone/platform/drm/gpu/drm_overlay_candidate.h |
diff --git a/ui/ozone/platform/drm/gpu/drm_overlay_candidate.h b/ui/ozone/platform/drm/gpu/drm_overlay_candidate.h |
new file mode 100644 |
index 0000000000000000000000000000000000000000..b508be7ea6dc73128817261a4d36b89c7034176a |
--- /dev/null |
+++ b/ui/ozone/platform/drm/gpu/drm_overlay_candidate.h |
@@ -0,0 +1,60 @@ |
+// Copyright 2015 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_DRM_OVERLAY_CANDIDATE_H_ |
+#define UI_OZONE_PLATFORM_DRM_GPU_DRM_OVERLAY_CANDIDATE_H_ |
+ |
+#include "base/macros.h" |
+#include "ui/ozone/platform/drm/common/drm_util.h" |
+#include "ui/ozone/platform/drm/gpu/overlay_plane.h" |
+ |
+namespace ui { |
+ |
+class DrmDevice; |
+class DrmWindow; |
+class HardwareDisplayController; |
+class ScanoutBufferGenerator; |
+struct OverlayCheck_Params; |
+ |
+class DrmOverlayCandidate { |
+ public: |
+ explicit DrmOverlayCandidate(DrmWindow* window); |
+ ~DrmOverlayCandidate(); |
+ |
+ std::vector<OverlayCheck_Params> TestPageFlip( |
+ const std::vector<OverlayCheck_Params>& current_combination, |
+ const std::vector<OverlayCheck_Params>& new_combination, |
+ const OverlayPlaneList& last_used_planes, |
+ ScanoutBufferGenerator* buffer_generator); |
+ |
+ std::vector<OverlayCheck_Params> GetOverlayConfigurations() const; |
+ |
+ private: |
+ scoped_refptr<ScanoutBuffer> GetBufferForPageFlipTest( |
+ ScanoutBufferGenerator* buffer_generator, |
+ std::vector<scoped_refptr<ScanoutBuffer>>* reusable_buffers, |
+ const gfx::Size& size, |
+ gfx::BufferFormat buffer_format, |
+ const scoped_refptr<DrmDevice>& drm); |
+ |
+ void ValidateConfiguration( |
+ ScanoutBufferGenerator* buffer_generator, |
+ OverlayPlane* plane, |
+ OverlayCheck_Params* param, |
+ std::vector<scoped_refptr<ScanoutBuffer>>* reusable_buffers, |
+ const OverlayPlane& primary_plane, |
+ const scoped_refptr<DrmDevice>& drm_device); |
+ |
+ void EvaluateBufferConfiguration(OverlayCheck_Params* param, |
+ HardwareDisplayController* controller); |
+ |
+ std::vector<OverlayCheck_Params> overlay_params_; |
+ |
+ DrmWindow* window_; // Not owned. |
+ DISALLOW_COPY_AND_ASSIGN(DrmOverlayCandidate); |
+}; |
+ |
+} // namespace ui |
+ |
+#endif // UI_OZONE_PLATFORM_DRM_GPU_DRM_OVERLAY_CANDIDATE_H_ |