| Index: ui/ozone/platform/drm/host/drm_gpu_platform_support_host.h
|
| diff --git a/ui/ozone/platform/drm/host/drm_gpu_platform_support_host.h b/ui/ozone/platform/drm/host/drm_gpu_platform_support_host.h
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..b9745bf965bfda65e6b2b4fe99cc60e2a95aa70b
|
| --- /dev/null
|
| +++ b/ui/ozone/platform/drm/host/drm_gpu_platform_support_host.h
|
| @@ -0,0 +1,119 @@
|
| +// 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_HOST_DRM_GPU_PLATFORM_SUPPORT_HOST_H_
|
| +#define UI_OZONE_PLATFORM_DRM_HOST_DRM_GPU_PLATFORM_SUPPORT_HOST_H_
|
| +
|
| +#include <vector>
|
| +
|
| +#include "base/callback.h"
|
| +#include "base/file_descriptor_posix.h"
|
| +#include "base/observer_list.h"
|
| +#include "ui/gfx/geometry/rect.h"
|
| +#include "ui/gfx/native_widget_types.h"
|
| +#include "ui/ozone/common/gpu/ozone_gpu_message_params.h"
|
| +#include "ui/ozone/platform/drm/host/drm_display_host_manager.h"
|
| +#include "ui/ozone/platform/drm/host/drm_window_host_manager.h"
|
| +#include "ui/ozone/public/gpu_platform_support_host.h"
|
| +
|
| +class SkBitmap;
|
| +
|
| +namespace gfx {
|
| +class Point;
|
| +}
|
| +
|
| +namespace ui {
|
| +
|
| +class ChannelObserver;
|
| +class DrmCursor;
|
| +
|
| +class DrmGpuPlatformSupportHostDelegate {
|
| +public:
|
| + DrmGpuPlatformSupportHostDelegate() {}
|
| + virtual ~DrmGpuPlatformSupportHostDelegate() {}
|
| +
|
| + virtual void CreateWindow(const gfx::AcceleratedWidget& widget) = 0;
|
| + virtual void WindowBoundsChanged(const gfx::AcceleratedWidget& widget,
|
| + const gfx::Rect& bounds) = 0;
|
| + virtual void AddGraphicsDevice(const base::FilePath& path,
|
| + const base::FileDescriptor& fd) = 0;
|
| + virtual bool RefreshNativeDisplays() = 0;
|
| + virtual bool ConfigureNativeDisplay(int64_t id,
|
| + const DisplayMode_Params& mode,
|
| + const gfx::Point& originhost) = 0;
|
| +};
|
| +
|
| +
|
| +class DrmGpuPlatformSupportHost : public GpuPlatformSupportHost {
|
| + public:
|
| + DrmGpuPlatformSupportHost(DrmCursor* cursor);
|
| + ~DrmGpuPlatformSupportHost() override;
|
| +
|
| + void SetDisplayManager(DrmDisplayHostManager* display_manager);
|
| + void SetWindowManager(DrmWindowHostManager* window_manager);
|
| +
|
| + DrmDisplayHostManager* get_display_manager() {
|
| + return display_manager_;
|
| + }
|
| + DrmWindowHostManager* get_window_manager() {
|
| + return window_manager_;
|
| + }
|
| +
|
| + void SetDelegate(DrmGpuPlatformSupportHostDelegate* delegate) {
|
| + DCHECK(!delegate_);
|
| + delegate_ = delegate;
|
| + }
|
| +
|
| + DrmGpuPlatformSupportHostDelegate* get_delegate() {
|
| + return delegate_;
|
| + }
|
| +
|
| + void AddChannelObserver(ChannelObserver* observer);
|
| + void RemoveChannelObserver(ChannelObserver* observer);
|
| +
|
| + bool IsConnected();
|
| +
|
| + // GpuPlatformSupportHost:
|
| + void OnChannelEstablished(int host_id) override;
|
| + void OnChannelDestroyed(int host_id) override;
|
| +
|
| + // host to gpu interfaces
|
| + void CreateWindow(const gfx::AcceleratedWidget& widget);
|
| + void DestroyWindow(const gfx::AcceleratedWidget& widget);
|
| + void WindowBoundsChanged(const gfx::AcceleratedWidget& widget,
|
| + const gfx::Rect& bounds);
|
| + void AddGraphicsDevice(const base::FilePath& path,
|
| + const base::FileDescriptor& fd);
|
| + void RemoveGraphicsDevice(const base::FilePath& path);
|
| + bool RefreshNativeDisplays();
|
| + bool ConfigureNativeDisplay(int64_t id,
|
| + const DisplayMode_Params& mode,
|
| + const gfx::Point& originhost);
|
| + bool DisableNativeDisplay(int64_t id);
|
| +
|
| + void CheckOverlayCapabilities(const gfx::AcceleratedWidget& widget,
|
| + const std::vector<OverlayCheck_Params>& list);
|
| +
|
| + bool GetHDCPState(int64_t id);
|
| + bool SetHDCPState(int64_t id, const HDCPState& state);
|
| +
|
| + bool TakeDisplayControl();
|
| + bool RelinquishDisplayControl();
|
| +
|
| + bool SetGammaRamp(int64_t id, const std::vector<GammaRampRGBEntry>& lut);
|
| +
|
| + private:
|
| + int host_id_ = -1;
|
| +
|
| + DrmDisplayHostManager* display_manager_; // Not owned
|
| + DrmWindowHostManager* window_manager_; // Not owned
|
| + DrmCursor* cursor_; // Not owned.
|
| + base::ObserverList<ChannelObserver> channel_observers_;
|
| + DrmGpuPlatformSupportHostDelegate* delegate_;
|
| +
|
| +};
|
| +
|
| +} // namespace ui
|
| +
|
| +#endif // UI_OZONE_GPU_DRM_GPU_PLATFORM_SUPPORT_HOST_H_
|
|
|