| OLD | NEW |
| 1 // Copyright 2016 The Chromium Authors. All rights reserved. | 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 | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "ui/ozone/platform/drm/mus_thread_proxy.h" | 5 #include "ui/ozone/platform/drm/mus_thread_proxy.h" |
| 6 | 6 |
| 7 #include "base/bind.h" | 7 #include "base/bind.h" |
| 8 #include "base/single_thread_task_runner.h" | 8 #include "base/single_thread_task_runner.h" |
| 9 #include "base/task_runner.h" | 9 #include "base/task_runner.h" |
| 10 #include "base/threading/thread_task_runner_handle.h" | 10 #include "base/threading/thread_task_runner_handle.h" |
| (...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 52 base::AutoLock acquire(lock_); | 52 base::AutoLock acquire(lock_); |
| 53 drm_thread_ = thread; | 53 drm_thread_ = thread; |
| 54 } | 54 } |
| 55 | 55 |
| 56 void MusThreadProxy::ProvideManagers(DrmDisplayHostManager* display_manager, | 56 void MusThreadProxy::ProvideManagers(DrmDisplayHostManager* display_manager, |
| 57 DrmOverlayManager* overlay_manager) { | 57 DrmOverlayManager* overlay_manager) { |
| 58 display_manager_ = display_manager; | 58 display_manager_ = display_manager; |
| 59 overlay_manager_ = overlay_manager; | 59 overlay_manager_ = overlay_manager; |
| 60 } | 60 } |
| 61 | 61 |
| 62 // Runs on Gpu thread. |
| 62 void MusThreadProxy::StartDrmThread() { | 63 void MusThreadProxy::StartDrmThread() { |
| 63 DCHECK(drm_thread_); | 64 DCHECK(drm_thread_); |
| 64 drm_thread_->Start(); | 65 drm_thread_->Start(); |
| 65 | 66 |
| 66 drm_thread_->task_runner()->PostTask( | 67 drm_thread_->task_runner()->PostTask( |
| 67 FROM_HERE, base::Bind(&MusThreadProxy::DispatchObserversFromDrmThread, | 68 FROM_HERE, base::Bind(&MusThreadProxy::DispatchObserversFromDrmThread, |
| 68 base::Unretained(this))); | 69 base::Unretained(this))); |
| 69 } | 70 } |
| 70 | 71 |
| 71 void MusThreadProxy::DispatchObserversFromDrmThread() { | 72 void MusThreadProxy::DispatchObserversFromDrmThread() { |
| (...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 114 DCHECK(on_window_server_thread_.CalledOnValidThread()); | 115 DCHECK(on_window_server_thread_.CalledOnValidThread()); |
| 115 display_manager_ = handler; | 116 display_manager_ = handler; |
| 116 } | 117 } |
| 117 | 118 |
| 118 void MusThreadProxy::UnRegisterHandlerForDrmDisplayHostManager() { | 119 void MusThreadProxy::UnRegisterHandlerForDrmDisplayHostManager() { |
| 119 DCHECK(on_window_server_thread_.CalledOnValidThread()); | 120 DCHECK(on_window_server_thread_.CalledOnValidThread()); |
| 120 display_manager_ = nullptr; | 121 display_manager_ = nullptr; |
| 121 } | 122 } |
| 122 | 123 |
| 123 bool MusThreadProxy::GpuCreateWindow(gfx::AcceleratedWidget widget) { | 124 bool MusThreadProxy::GpuCreateWindow(gfx::AcceleratedWidget widget) { |
| 124 DCHECK(drm_thread_->IsRunning()); | |
| 125 DCHECK(on_window_server_thread_.CalledOnValidThread()); | 125 DCHECK(on_window_server_thread_.CalledOnValidThread()); |
| 126 if (!drm_thread_ || !drm_thread_->IsRunning()) |
| 127 return false; |
| 126 drm_thread_->task_runner()->PostTask( | 128 drm_thread_->task_runner()->PostTask( |
| 127 FROM_HERE, base::Bind(&DrmThread::CreateWindow, | 129 FROM_HERE, base::Bind(&DrmThread::CreateWindow, |
| 128 base::Unretained(drm_thread_), widget)); | 130 base::Unretained(drm_thread_), widget)); |
| 129 return true; | 131 return true; |
| 130 } | 132 } |
| 131 | 133 |
| 132 bool MusThreadProxy::GpuDestroyWindow(gfx::AcceleratedWidget widget) { | 134 bool MusThreadProxy::GpuDestroyWindow(gfx::AcceleratedWidget widget) { |
| 133 DCHECK(drm_thread_->IsRunning()); | |
| 134 DCHECK(on_window_server_thread_.CalledOnValidThread()); | 135 DCHECK(on_window_server_thread_.CalledOnValidThread()); |
| 136 if (!drm_thread_ || !drm_thread_->IsRunning()) |
| 137 return false; |
| 135 drm_thread_->task_runner()->PostTask( | 138 drm_thread_->task_runner()->PostTask( |
| 136 FROM_HERE, base::Bind(&DrmThread::DestroyWindow, | 139 FROM_HERE, base::Bind(&DrmThread::DestroyWindow, |
| 137 base::Unretained(drm_thread_), widget)); | 140 base::Unretained(drm_thread_), widget)); |
| 138 return true; | 141 return true; |
| 139 } | 142 } |
| 140 | 143 |
| 141 bool MusThreadProxy::GpuWindowBoundsChanged(gfx::AcceleratedWidget widget, | 144 bool MusThreadProxy::GpuWindowBoundsChanged(gfx::AcceleratedWidget widget, |
| 142 const gfx::Rect& bounds) { | 145 const gfx::Rect& bounds) { |
| 143 DCHECK(drm_thread_->IsRunning()); | |
| 144 DCHECK(on_window_server_thread_.CalledOnValidThread()); | 146 DCHECK(on_window_server_thread_.CalledOnValidThread()); |
| 147 if (!drm_thread_ || !drm_thread_->IsRunning()) |
| 148 return false; |
| 145 drm_thread_->task_runner()->PostTask( | 149 drm_thread_->task_runner()->PostTask( |
| 146 FROM_HERE, base::Bind(&DrmThread::SetWindowBounds, | 150 FROM_HERE, base::Bind(&DrmThread::SetWindowBounds, |
| 147 base::Unretained(drm_thread_), widget, bounds)); | 151 base::Unretained(drm_thread_), widget, bounds)); |
| 148 return true; | 152 return true; |
| 149 } | 153 } |
| 150 | 154 |
| 151 void MusThreadProxy::CursorSet(gfx::AcceleratedWidget widget, | 155 void MusThreadProxy::CursorSet(gfx::AcceleratedWidget widget, |
| 152 const std::vector<SkBitmap>& bitmaps, | 156 const std::vector<SkBitmap>& bitmaps, |
| 153 const gfx::Point& location, | 157 const gfx::Point& location, |
| 154 int frame_delay_ms) { | 158 int frame_delay_ms) { |
| 155 DCHECK(drm_thread_->IsRunning()); | |
| 156 DCHECK(on_window_server_thread_.CalledOnValidThread()); | 159 DCHECK(on_window_server_thread_.CalledOnValidThread()); |
| 160 if (!drm_thread_ || !drm_thread_->IsRunning()) |
| 161 return; |
| 157 drm_thread_->task_runner()->PostTask( | 162 drm_thread_->task_runner()->PostTask( |
| 158 FROM_HERE, | 163 FROM_HERE, |
| 159 base::Bind(&DrmThread::SetCursor, base::Unretained(drm_thread_), widget, | 164 base::Bind(&DrmThread::SetCursor, base::Unretained(drm_thread_), widget, |
| 160 bitmaps, location, frame_delay_ms)); | 165 bitmaps, location, frame_delay_ms)); |
| 161 } | 166 } |
| 162 | 167 |
| 163 void MusThreadProxy::Move(gfx::AcceleratedWidget widget, | 168 void MusThreadProxy::Move(gfx::AcceleratedWidget widget, |
| 164 const gfx::Point& location) { | 169 const gfx::Point& location) { |
| 165 // NOTE: Input events skip the main thread to avoid jank. | 170 // NOTE: Input events skip the main thread to avoid jank. |
| 166 DCHECK(drm_thread_->IsRunning()); | 171 if (!drm_thread_ || !drm_thread_->IsRunning()) |
| 172 return; |
| 167 drm_thread_->task_runner()->PostTask( | 173 drm_thread_->task_runner()->PostTask( |
| 168 FROM_HERE, base::Bind(&DrmThread::MoveCursor, | 174 FROM_HERE, base::Bind(&DrmThread::MoveCursor, |
| 169 base::Unretained(drm_thread_), widget, location)); | 175 base::Unretained(drm_thread_), widget, location)); |
| 170 } | 176 } |
| 171 | 177 |
| 172 // Services needed for DrmOverlayManager. | 178 // Services needed for DrmOverlayManager. |
| 173 void MusThreadProxy::RegisterHandlerForDrmOverlayManager( | 179 void MusThreadProxy::RegisterHandlerForDrmOverlayManager( |
| 174 DrmOverlayManager* handler) { | 180 DrmOverlayManager* handler) { |
| 175 DCHECK(on_window_server_thread_.CalledOnValidThread()); | 181 DCHECK(on_window_server_thread_.CalledOnValidThread()); |
| 176 overlay_manager_ = handler; | 182 overlay_manager_ = handler; |
| 177 } | 183 } |
| 178 | 184 |
| 179 void MusThreadProxy::UnRegisterHandlerForDrmOverlayManager() { | 185 void MusThreadProxy::UnRegisterHandlerForDrmOverlayManager() { |
| 180 DCHECK(on_window_server_thread_.CalledOnValidThread()); | 186 DCHECK(on_window_server_thread_.CalledOnValidThread()); |
| 181 overlay_manager_ = nullptr; | 187 overlay_manager_ = nullptr; |
| 182 } | 188 } |
| 183 | 189 |
| 184 bool MusThreadProxy::GpuCheckOverlayCapabilities( | 190 bool MusThreadProxy::GpuCheckOverlayCapabilities( |
| 185 gfx::AcceleratedWidget widget, | 191 gfx::AcceleratedWidget widget, |
| 186 const std::vector<OverlayCheck_Params>& overlays) { | 192 const std::vector<OverlayCheck_Params>& overlays) { |
| 187 DCHECK(drm_thread_->IsRunning()); | |
| 188 DCHECK(on_window_server_thread_.CalledOnValidThread()); | 193 DCHECK(on_window_server_thread_.CalledOnValidThread()); |
| 194 if (!drm_thread_ || !drm_thread_->IsRunning()) |
| 195 return false; |
| 189 auto callback = | 196 auto callback = |
| 190 base::BindOnce(&MusThreadProxy::GpuCheckOverlayCapabilitiesCallback, | 197 base::BindOnce(&MusThreadProxy::GpuCheckOverlayCapabilitiesCallback, |
| 191 weak_ptr_factory_.GetWeakPtr()); | 198 weak_ptr_factory_.GetWeakPtr()); |
| 192 auto safe_callback = CreateSafeOnceCallback(std::move(callback)); | 199 auto safe_callback = CreateSafeOnceCallback(std::move(callback)); |
| 193 drm_thread_->task_runner()->PostTask( | 200 drm_thread_->task_runner()->PostTask( |
| 194 FROM_HERE, base::BindOnce(&DrmThread::CheckOverlayCapabilities, | 201 FROM_HERE, base::BindOnce(&DrmThread::CheckOverlayCapabilities, |
| 195 base::Unretained(drm_thread_), widget, overlays, | 202 base::Unretained(drm_thread_), widget, overlays, |
| 196 std::move(safe_callback))); | 203 std::move(safe_callback))); |
| 197 return true; | 204 return true; |
| 198 } | 205 } |
| 199 | 206 |
| 200 bool MusThreadProxy::GpuRefreshNativeDisplays() { | 207 bool MusThreadProxy::GpuRefreshNativeDisplays() { |
| 201 DCHECK(drm_thread_->IsRunning()); | |
| 202 DCHECK(on_window_server_thread_.CalledOnValidThread()); | 208 DCHECK(on_window_server_thread_.CalledOnValidThread()); |
| 209 if (!drm_thread_ || !drm_thread_->IsRunning()) |
| 210 return false; |
| 203 auto callback = | 211 auto callback = |
| 204 base::BindOnce(&MusThreadProxy::GpuRefreshNativeDisplaysCallback, | 212 base::BindOnce(&MusThreadProxy::GpuRefreshNativeDisplaysCallback, |
| 205 weak_ptr_factory_.GetWeakPtr()); | 213 weak_ptr_factory_.GetWeakPtr()); |
| 206 auto safe_callback = CreateSafeOnceCallback(std::move(callback)); | 214 auto safe_callback = CreateSafeOnceCallback(std::move(callback)); |
| 207 drm_thread_->task_runner()->PostTask( | 215 drm_thread_->task_runner()->PostTask( |
| 208 FROM_HERE, | 216 FROM_HERE, |
| 209 base::BindOnce(&DrmThread::RefreshNativeDisplays, | 217 base::BindOnce(&DrmThread::RefreshNativeDisplays, |
| 210 base::Unretained(drm_thread_), std::move(safe_callback))); | 218 base::Unretained(drm_thread_), std::move(safe_callback))); |
| 211 return true; | 219 return true; |
| 212 } | 220 } |
| 213 | 221 |
| 214 bool MusThreadProxy::GpuConfigureNativeDisplay(int64_t id, | 222 bool MusThreadProxy::GpuConfigureNativeDisplay(int64_t id, |
| 215 const DisplayMode_Params& pmode, | 223 const DisplayMode_Params& pmode, |
| 216 const gfx::Point& origin) { | 224 const gfx::Point& origin) { |
| 217 DCHECK(drm_thread_->IsRunning()); | |
| 218 DCHECK(on_window_server_thread_.CalledOnValidThread()); | 225 DCHECK(on_window_server_thread_.CalledOnValidThread()); |
| 226 if (!drm_thread_ || !drm_thread_->IsRunning()) |
| 227 return false; |
| 219 | 228 |
| 220 auto mode = CreateDisplayModeFromParams(pmode); | 229 auto mode = CreateDisplayModeFromParams(pmode); |
| 221 auto callback = | 230 auto callback = |
| 222 base::BindOnce(&MusThreadProxy::GpuConfigureNativeDisplayCallback, | 231 base::BindOnce(&MusThreadProxy::GpuConfigureNativeDisplayCallback, |
| 223 weak_ptr_factory_.GetWeakPtr()); | 232 weak_ptr_factory_.GetWeakPtr()); |
| 224 auto safe_callback = CreateSafeOnceCallback(std::move(callback)); | 233 auto safe_callback = CreateSafeOnceCallback(std::move(callback)); |
| 225 drm_thread_->task_runner()->PostTask( | 234 drm_thread_->task_runner()->PostTask( |
| 226 FROM_HERE, | 235 FROM_HERE, |
| 227 base::BindOnce(&DrmThread::ConfigureNativeDisplay, | 236 base::BindOnce(&DrmThread::ConfigureNativeDisplay, |
| 228 base::Unretained(drm_thread_), id, std::move(mode), origin, | 237 base::Unretained(drm_thread_), id, std::move(mode), origin, |
| 229 std::move(safe_callback))); | 238 std::move(safe_callback))); |
| 230 return true; | 239 return true; |
| 231 } | 240 } |
| 232 | 241 |
| 233 bool MusThreadProxy::GpuDisableNativeDisplay(int64_t id) { | 242 bool MusThreadProxy::GpuDisableNativeDisplay(int64_t id) { |
| 234 DCHECK(drm_thread_->IsRunning()); | |
| 235 DCHECK(on_window_server_thread_.CalledOnValidThread()); | 243 DCHECK(on_window_server_thread_.CalledOnValidThread()); |
| 244 if (!drm_thread_ || !drm_thread_->IsRunning()) |
| 245 return false; |
| 236 auto callback = | 246 auto callback = |
| 237 base::BindOnce(&MusThreadProxy::GpuDisableNativeDisplayCallback, | 247 base::BindOnce(&MusThreadProxy::GpuDisableNativeDisplayCallback, |
| 238 weak_ptr_factory_.GetWeakPtr()); | 248 weak_ptr_factory_.GetWeakPtr()); |
| 239 auto safe_callback = CreateSafeOnceCallback(std::move(callback)); | 249 auto safe_callback = CreateSafeOnceCallback(std::move(callback)); |
| 240 drm_thread_->task_runner()->PostTask( | 250 drm_thread_->task_runner()->PostTask( |
| 241 FROM_HERE, base::BindOnce(&DrmThread::DisableNativeDisplay, | 251 FROM_HERE, base::BindOnce(&DrmThread::DisableNativeDisplay, |
| 242 base::Unretained(drm_thread_), id, | 252 base::Unretained(drm_thread_), id, |
| 243 std::move(safe_callback))); | 253 std::move(safe_callback))); |
| 244 return true; | 254 return true; |
| 245 } | 255 } |
| 246 | 256 |
| 247 bool MusThreadProxy::GpuTakeDisplayControl() { | 257 bool MusThreadProxy::GpuTakeDisplayControl() { |
| 248 DCHECK(drm_thread_->IsRunning()); | |
| 249 DCHECK(on_window_server_thread_.CalledOnValidThread()); | 258 DCHECK(on_window_server_thread_.CalledOnValidThread()); |
| 259 if (!drm_thread_ || !drm_thread_->IsRunning()) |
| 260 return false; |
| 250 auto callback = base::BindOnce(&MusThreadProxy::GpuTakeDisplayControlCallback, | 261 auto callback = base::BindOnce(&MusThreadProxy::GpuTakeDisplayControlCallback, |
| 251 weak_ptr_factory_.GetWeakPtr()); | 262 weak_ptr_factory_.GetWeakPtr()); |
| 252 auto safe_callback = CreateSafeOnceCallback(std::move(callback)); | 263 auto safe_callback = CreateSafeOnceCallback(std::move(callback)); |
| 253 drm_thread_->task_runner()->PostTask( | 264 drm_thread_->task_runner()->PostTask( |
| 254 FROM_HERE, | 265 FROM_HERE, |
| 255 base::BindOnce(&DrmThread::TakeDisplayControl, | 266 base::BindOnce(&DrmThread::TakeDisplayControl, |
| 256 base::Unretained(drm_thread_), std::move(safe_callback))); | 267 base::Unretained(drm_thread_), std::move(safe_callback))); |
| 257 return true; | 268 return true; |
| 258 } | 269 } |
| 259 | 270 |
| 260 bool MusThreadProxy::GpuRelinquishDisplayControl() { | 271 bool MusThreadProxy::GpuRelinquishDisplayControl() { |
| 261 DCHECK(drm_thread_->IsRunning()); | |
| 262 DCHECK(on_window_server_thread_.CalledOnValidThread()); | 272 DCHECK(on_window_server_thread_.CalledOnValidThread()); |
| 273 if (!drm_thread_ || !drm_thread_->IsRunning()) |
| 274 return false; |
| 263 auto callback = | 275 auto callback = |
| 264 base::BindOnce(&MusThreadProxy::GpuRelinquishDisplayControlCallback, | 276 base::BindOnce(&MusThreadProxy::GpuRelinquishDisplayControlCallback, |
| 265 weak_ptr_factory_.GetWeakPtr()); | 277 weak_ptr_factory_.GetWeakPtr()); |
| 266 auto safe_callback = CreateSafeOnceCallback(std::move(callback)); | 278 auto safe_callback = CreateSafeOnceCallback(std::move(callback)); |
| 267 drm_thread_->task_runner()->PostTask( | 279 drm_thread_->task_runner()->PostTask( |
| 268 FROM_HERE, | 280 FROM_HERE, |
| 269 base::BindOnce(&DrmThread::RelinquishDisplayControl, | 281 base::BindOnce(&DrmThread::RelinquishDisplayControl, |
| 270 base::Unretained(drm_thread_), std::move(safe_callback))); | 282 base::Unretained(drm_thread_), std::move(safe_callback))); |
| 271 return true; | 283 return true; |
| 272 } | 284 } |
| 273 | 285 |
| 274 bool MusThreadProxy::GpuAddGraphicsDevice(const base::FilePath& path, | 286 bool MusThreadProxy::GpuAddGraphicsDevice(const base::FilePath& path, |
| 275 const base::FileDescriptor& fd) { | 287 const base::FileDescriptor& fd) { |
| 276 DCHECK(drm_thread_->IsRunning()); | |
| 277 DCHECK(on_window_server_thread_.CalledOnValidThread()); | 288 DCHECK(on_window_server_thread_.CalledOnValidThread()); |
| 289 if (!drm_thread_ || !drm_thread_->IsRunning()) |
| 290 return false; |
| 278 drm_thread_->task_runner()->PostTask( | 291 drm_thread_->task_runner()->PostTask( |
| 279 FROM_HERE, base::Bind(&DrmThread::AddGraphicsDevice, | 292 FROM_HERE, base::Bind(&DrmThread::AddGraphicsDevice, |
| 280 base::Unretained(drm_thread_), path, fd)); | 293 base::Unretained(drm_thread_), path, fd)); |
| 281 return true; | 294 return true; |
| 282 } | 295 } |
| 283 | 296 |
| 284 bool MusThreadProxy::GpuRemoveGraphicsDevice(const base::FilePath& path) { | 297 bool MusThreadProxy::GpuRemoveGraphicsDevice(const base::FilePath& path) { |
| 285 DCHECK(drm_thread_->IsRunning()); | |
| 286 DCHECK(on_window_server_thread_.CalledOnValidThread()); | 298 DCHECK(on_window_server_thread_.CalledOnValidThread()); |
| 299 if (!drm_thread_ || !drm_thread_->IsRunning()) |
| 300 return false; |
| 287 drm_thread_->task_runner()->PostTask( | 301 drm_thread_->task_runner()->PostTask( |
| 288 FROM_HERE, base::Bind(&DrmThread::RemoveGraphicsDevice, | 302 FROM_HERE, base::Bind(&DrmThread::RemoveGraphicsDevice, |
| 289 base::Unretained(drm_thread_), path)); | 303 base::Unretained(drm_thread_), path)); |
| 290 return true; | 304 return true; |
| 291 } | 305 } |
| 292 | 306 |
| 293 bool MusThreadProxy::GpuGetHDCPState(int64_t display_id) { | 307 bool MusThreadProxy::GpuGetHDCPState(int64_t display_id) { |
| 294 DCHECK(drm_thread_->IsRunning()); | |
| 295 DCHECK(on_window_server_thread_.CalledOnValidThread()); | 308 DCHECK(on_window_server_thread_.CalledOnValidThread()); |
| 309 if (!drm_thread_ || !drm_thread_->IsRunning()) |
| 310 return false; |
| 296 auto callback = base::BindOnce(&MusThreadProxy::GpuGetHDCPStateCallback, | 311 auto callback = base::BindOnce(&MusThreadProxy::GpuGetHDCPStateCallback, |
| 297 weak_ptr_factory_.GetWeakPtr()); | 312 weak_ptr_factory_.GetWeakPtr()); |
| 298 auto safe_callback = CreateSafeOnceCallback(std::move(callback)); | 313 auto safe_callback = CreateSafeOnceCallback(std::move(callback)); |
| 299 drm_thread_->task_runner()->PostTask( | 314 drm_thread_->task_runner()->PostTask( |
| 300 FROM_HERE, | 315 FROM_HERE, |
| 301 base::BindOnce(&DrmThread::GetHDCPState, base::Unretained(drm_thread_), | 316 base::BindOnce(&DrmThread::GetHDCPState, base::Unretained(drm_thread_), |
| 302 display_id, std::move(safe_callback))); | 317 display_id, std::move(safe_callback))); |
| 303 return true; | 318 return true; |
| 304 } | 319 } |
| 305 | 320 |
| 306 bool MusThreadProxy::GpuSetHDCPState(int64_t display_id, | 321 bool MusThreadProxy::GpuSetHDCPState(int64_t display_id, |
| 307 display::HDCPState state) { | 322 display::HDCPState state) { |
| 308 DCHECK(on_window_server_thread_.CalledOnValidThread()); | 323 DCHECK(on_window_server_thread_.CalledOnValidThread()); |
| 309 DCHECK(drm_thread_->IsRunning()); | 324 if (!drm_thread_ || !drm_thread_->IsRunning()) |
| 325 return false; |
| 310 auto callback = base::BindOnce(&MusThreadProxy::GpuSetHDCPStateCallback, | 326 auto callback = base::BindOnce(&MusThreadProxy::GpuSetHDCPStateCallback, |
| 311 weak_ptr_factory_.GetWeakPtr()); | 327 weak_ptr_factory_.GetWeakPtr()); |
| 312 auto safe_callback = CreateSafeOnceCallback(std::move(callback)); | 328 auto safe_callback = CreateSafeOnceCallback(std::move(callback)); |
| 313 drm_thread_->task_runner()->PostTask( | 329 drm_thread_->task_runner()->PostTask( |
| 314 FROM_HERE, | 330 FROM_HERE, |
| 315 base::BindOnce(&DrmThread::SetHDCPState, base::Unretained(drm_thread_), | 331 base::BindOnce(&DrmThread::SetHDCPState, base::Unretained(drm_thread_), |
| 316 display_id, state, std::move(safe_callback))); | 332 display_id, state, std::move(safe_callback))); |
| 317 return true; | 333 return true; |
| 318 } | 334 } |
| 319 | 335 |
| 320 bool MusThreadProxy::GpuSetColorCorrection( | 336 bool MusThreadProxy::GpuSetColorCorrection( |
| 321 int64_t id, | 337 int64_t id, |
| 322 const std::vector<display::GammaRampRGBEntry>& degamma_lut, | 338 const std::vector<display::GammaRampRGBEntry>& degamma_lut, |
| 323 const std::vector<display::GammaRampRGBEntry>& gamma_lut, | 339 const std::vector<display::GammaRampRGBEntry>& gamma_lut, |
| 324 const std::vector<float>& correction_matrix) { | 340 const std::vector<float>& correction_matrix) { |
| 325 DCHECK(drm_thread_->IsRunning()); | |
| 326 DCHECK(on_window_server_thread_.CalledOnValidThread()); | 341 DCHECK(on_window_server_thread_.CalledOnValidThread()); |
| 342 if (!drm_thread_ || !drm_thread_->IsRunning()) |
| 343 return false; |
| 327 drm_thread_->task_runner()->PostTask( | 344 drm_thread_->task_runner()->PostTask( |
| 328 FROM_HERE, | 345 FROM_HERE, |
| 329 base::Bind(&DrmThread::SetColorCorrection, base::Unretained(drm_thread_), | 346 base::Bind(&DrmThread::SetColorCorrection, base::Unretained(drm_thread_), |
| 330 id, degamma_lut, gamma_lut, correction_matrix)); | 347 id, degamma_lut, gamma_lut, correction_matrix)); |
| 331 return true; | 348 return true; |
| 332 } | 349 } |
| 333 | 350 |
| 334 void MusThreadProxy::GpuCheckOverlayCapabilitiesCallback( | 351 void MusThreadProxy::GpuCheckOverlayCapabilitiesCallback( |
| 335 gfx::AcceleratedWidget widget, | 352 gfx::AcceleratedWidget widget, |
| 336 const std::vector<OverlayCheck_Params>& overlays) const { | 353 const std::vector<OverlayCheck_Params>& overlays) const { |
| (...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 373 display_manager_->GpuReceivedHDCPState(display_id, success, state); | 390 display_manager_->GpuReceivedHDCPState(display_id, success, state); |
| 374 } | 391 } |
| 375 | 392 |
| 376 void MusThreadProxy::GpuSetHDCPStateCallback(int64_t display_id, | 393 void MusThreadProxy::GpuSetHDCPStateCallback(int64_t display_id, |
| 377 bool success) const { | 394 bool success) const { |
| 378 DCHECK(on_window_server_thread_.CalledOnValidThread()); | 395 DCHECK(on_window_server_thread_.CalledOnValidThread()); |
| 379 display_manager_->GpuUpdatedHDCPState(display_id, success); | 396 display_manager_->GpuUpdatedHDCPState(display_id, success); |
| 380 } | 397 } |
| 381 | 398 |
| 382 } // namespace ui | 399 } // namespace ui |
| OLD | NEW |