Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(261)

Side by Side Diff: ui/ozone/platform/drm/gpu/drm_thread_proxy.cc

Issue 1311043016: Switch DRM platform to using a separate thread (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@mv-drm-calls-on-thread2
Patch Set: . Created 5 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
1 // Copyright 2015 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 #include "ui/ozone/platform/drm/gpu/drm_thread_proxy.h"
6
7 namespace ui {
8
9 DrmThreadProxy::DrmThreadProxy() : drm_thread_("DrmThread") {}
10
11 void DrmThreadProxy::Initialize() {
12 // The DRM thread needs to be started late since we need to wait for the
13 // sandbox to start.
14 drm_thread_->Start();
15 }
16
17 void DrmThreadProxy::OnCreateWindow(gfx::AcceleratedWidget widget) {
18 DCHECK(drm_thread_->IsRunning());
19 drm_thread_->task_runner()->PostTask(
20 FROM_HERE, base::Bind(DrmThread::OnCreateWindow,
21 base::Unretained(&drm_thread_), widget));
22 }
23
24 void DrmThreadProxy::OnDestroyWindow(gfx::AcceleratedWidget widget) {
25 DCHECK(drm_thread_->IsRunning());
26 drm_thread_->task_runner()->PostTask(
27 FROM_HERE, base::Bind(DrmThread::OnDestroyWindow,
28 base::Unretained(&drm_thread_), widget));
29 }
30
31 void DrmThreadProxy::OnWindowBoundsChanged(gfx::AcceleratedWidget widget,
32 const gfx::Rect& bounds) {
33 DCHECK(drm_thread_->IsRunning());
34 drm_thread_->task_runner()->PostTask(
35 FROM_HERE, base::Bind(DrmThread::OnWindowBoundsChanged,
36 base::Unretained(&drm_thread_), widget, bounds));
37 }
38
39 void DrmThreadProxy::OnCursorSet(gfx::AcceleratedWidget widget,
40 const std::vector<SkBitmap>& bitmaps,
41 const gfx::Point& location,
42 int frame_delay_ms) {
43 DCHECK(drm_thread_->IsRunning());
44 drm_thread_->task_runner()->PostTask(
45 FROM_HERE,
46 base::Bind(DrmThread::OnCursorSet, base::Unretained(&drm_thread_), widget,
47 bitmaps, location, frame_delay_ms));
48 }
49
50 void DrmThreadProxy::OnCursorMove(gfx::AcceleratedWidget widget,
51 const gfx::Point& location) {
52 DCHECK(drm_thread_->IsRunning());
53 drm_thread_->task_runner()->PostTask(
54 FROM_HERE, base::Bind(DrmThread::OnCursorMove,
55 base::Unretained(&drm_thread_), widget, location));
56 }
57
58 void DrmThreadProxy::OnCheckOverlayCapabilities(
59 gfx::AcceleratedWidget widget,
60 const std::vector<OverlayCheck_Params>& overlays,
61 const base::Callback<void(gfx::AcceleratedWidget, bool)>& callback) {
62 DCHECK(drm_thread_->IsRunning());
63 drm_thread_->task_runner()->PostTask(
64 FROM_HERE, base::Bind(DrmThread::OnCheckOverlayCapabilities,
65 base::Unretained(&drm_thread_), widget, overlays,
66 CreateSafeCallback(callback)));
67 }
68
69 void DrmThreadProxy::OnRefreshNativeDisplays(
70 const base::Callback<void(const std::vector<DisplaySnapshot_Params>&)>&
71 callback) {
72 DCHECK(drm_thread_->IsRunning());
73 drm_thread_->task_runner()->PostTask(
74 FROM_HERE,
75 base::Bind(DrmThread::OnRefreshNativeDisplays,
76 base::Unretained(&drm_thread_), CreateSafeCallback(callback)));
77 }
78
79 void DrmThreadProxy::OnConfigureNativeDisplay(
80 int64_t id,
81 const DisplayMode_Params& mode,
82 const gfx::Point& origin,
83 const base::Callback<void(int64_t, bool)>& callback) {
84 DCHECK(drm_thread_->IsRunning());
85 drm_thread_->task_runner()->PostTask(
86 FROM_HERE, base::Bind(DrmThread::OnConfigureNativeDisplay,
87 base::Unretained(&drm_thread_), id, mode, origin,
88 CreateSafeCallback(callback)));
89 }
90
91 void DrmThreadProxy::OnDisableNativeDisplay(
92 int64_t id,
93 const base::Callback<void(int64_t, bool)>& callback) {
94 DCHECK(drm_thread_->IsRunning());
95 drm_thread_->task_runner()->PostTask(
96 FROM_HERE, base::Bind(DrmThread::OnDisableNativeDisplay,
97 base::Unretained(&drm_thread_), id,
98 CreateSafeCallback(callback)));
99 }
100
101 void DrmThreadProxy::OnTakeDisplayControl(
102 const base::Callback<void(bool)>& callback) {
103 DCHECK(drm_thread_->IsRunning());
104 drm_thread_->task_runner()->PostTask(
105 FROM_HERE,
106 base::Bind(DrmThread::OnTakeDisplayControl,
107 base::Unretained(&drm_thread_), CreateSafeCallback(callback)));
108 }
109
110 void DrmThreadProxy::OnRelinquishDisplayControl(
111 const base::Callback<void(bool)>& callback) {
112 DCHECK(drm_thread_->IsRunning());
113 drm_thread_->task_runner()->PostTask(
114 FROM_HERE,
115 base::Bind(DrmThread::OnRelinquishDisplayControl,
116 base::Unretained(&drm_thread_), CreateSafeCallback(callback)));
117 }
118
119 void DrmThreadProxy::OnAddGraphicsDevice(const base::FilePath& path,
120 const base::FileDescriptor& fd) {
121 DCHECK(drm_thread_->IsRunning());
122 drm_thread_->task_runner()->PostTask(
123 FROM_HERE, base::Bind(DrmThread::OnAddGraphicsDevice,
124 base::Unretained(&drm_thread_), path, fd));
125 }
126
127 void DrmThreadProxy::OnRemoveGraphicsDevice(const base::FilePath& path) {
128 DCHECK(drm_thread_->IsRunning());
129 drm_thread_->task_runner()->PostTask(
130 FROM_HERE, base::Bind(DrmThread::OnRemoveGraphicsDevice,
131 base::Unretained(&drm_thread_), path));
132 }
133
134 void DrmThreadProxy::OnGetHDCPState(
135 int64_t display_id,
136 const base::Callback<void(int64_t, bool, HDCPState>& callback) {
137 DCHECK(drm_thread_->IsRunning());
138 drm_thread_->task_runner()->PostTask(
139 FROM_HERE,
140 base::Bind(DrmThread::OnGetHDCPState, base::Unretained(&drm_thread_),
141 display_id, CreateSafeCallback(callback)));
142 }
143
144 void DrmThreadProxy::OnSetHDCPState(
145 int64_t display_id, HDCPState state,
146 const base::Callback<void(int64_t, bool>& callback) {
147 DCHECK(drm_thread_->IsRunning());
148 drm_thread_->task_runner()->PostTask(
149 FROM_HERE,
150 base::Bind(DrmThread::OnSetHDCPState, base::Unretained(&drm_thread_),
151 display_id, state, CreateSafeCallback(callback)));
152 }
153
154 void DrmThreadProxy::OnSetGammaRamp(int64_t id,
155 const std::vector<GammaRampRGBEntry>& lut) {
156 DCHECK(drm_thread_->IsRunning());
157 drm_thread_->task_runner()->PostTask(
158 FROM_HERE, base::Bind(DrmThread::OnSetGammaRamp,
159 base::Unretained(&drm_thread_), id, lut));
160 }
161
162 } // namespace ui
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698