OLD | NEW |
(Empty) | |
| 1 // Copyright 2016 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 |
| 5 #ifndef UI_OZONE_PLATFORM_DRM_CURSOR_PROXY_MOJO_H_ |
| 6 #define UI_OZONE_PLATFORM_DRM_CURSOR_PROXY_MOJO_H_ |
| 7 |
| 8 #include "ui/gfx/native_widget_types.h" |
| 9 #include "ui/ozone/platform/drm/gpu/inter_thread_messaging_proxy.h" |
| 10 #include "ui/ozone/platform/drm/host/drm_cursor.h" |
| 11 #include "ui/ozone/public/interfaces/device_cursor.mojom.h" |
| 12 |
| 13 namespace shell { |
| 14 class Connector; |
| 15 } |
| 16 |
| 17 namespace ui { |
| 18 |
| 19 // Ozone requires a IPC from the browser (or mus-ws) process to the gpu (or |
| 20 // mus-gpu) process to control the mouse pointer. This class provides mouse |
| 21 // pointer control via Mojo-style IPC. This code runs only in the mus-ws (i.e. |
| 22 // it's the client) and sends mouse pointer control messages to a less |
| 23 // priviledged process. |
| 24 class CursorProxyMojo : public DrmCursorProxy { |
| 25 public: |
| 26 explicit CursorProxyMojo(shell::Connector* connector); |
| 27 ~CursorProxyMojo() override; |
| 28 |
| 29 private: |
| 30 // DrmCursorProxy. |
| 31 void CursorSet(gfx::AcceleratedWidget window, |
| 32 const std::vector<SkBitmap>& bitmaps, |
| 33 const gfx::Point& point, |
| 34 int frame_delay_ms) override; |
| 35 void Move(gfx::AcceleratedWidget window, const gfx::Point& point) override; |
| 36 void InitializeOnEvdev() override; |
| 37 |
| 38 std::unique_ptr<shell::Connector> connector_; |
| 39 |
| 40 // Mojo implementation of the DrmCursorProxy. |
| 41 ui::ozone::mojom::DeviceCursorPtr main_cursor_ptr_; |
| 42 ui::ozone::mojom::DeviceCursorPtr evdev_cursor_ptr_; |
| 43 |
| 44 base::PlatformThreadRef evdev_ref_; |
| 45 }; |
| 46 |
| 47 } // namespace ui |
| 48 |
| 49 #endif // UI_OZONE_PLATFORM_DRM_CURSOR_PROXY_MOJO_H_ |
OLD | NEW |