| 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 168 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 179 DCHECK(on_window_server_thread_.CalledOnValidThread()); | 179 DCHECK(on_window_server_thread_.CalledOnValidThread()); |
| 180 overlay_manager_ = nullptr; | 180 overlay_manager_ = nullptr; |
| 181 } | 181 } |
| 182 | 182 |
| 183 bool MusThreadProxy::GpuCheckOverlayCapabilities( | 183 bool MusThreadProxy::GpuCheckOverlayCapabilities( |
| 184 gfx::AcceleratedWidget widget, | 184 gfx::AcceleratedWidget widget, |
| 185 const std::vector<OverlayCheck_Params>& overlays) { | 185 const std::vector<OverlayCheck_Params>& overlays) { |
| 186 DCHECK(drm_thread_->IsRunning()); | 186 DCHECK(drm_thread_->IsRunning()); |
| 187 DCHECK(on_window_server_thread_.CalledOnValidThread()); | 187 DCHECK(on_window_server_thread_.CalledOnValidThread()); |
| 188 auto callback = | 188 auto callback = |
| 189 base::Bind(&MusThreadProxy::GpuCheckOverlayCapabilitiesCallback, | 189 base::BindOnce(&MusThreadProxy::GpuCheckOverlayCapabilitiesCallback, |
| 190 weak_ptr_factory_.GetWeakPtr()); | 190 weak_ptr_factory_.GetWeakPtr()); |
| 191 auto safe_callback = CreateSafeOnceCallback(std::move(callback)); |
| 191 drm_thread_->task_runner()->PostTask( | 192 drm_thread_->task_runner()->PostTask( |
| 192 FROM_HERE, base::Bind(&DrmThread::CheckOverlayCapabilities, | 193 FROM_HERE, base::BindOnce(&DrmThread::CheckOverlayCapabilities, |
| 193 base::Unretained(drm_thread_), widget, overlays, | 194 base::Unretained(drm_thread_), widget, overlays, |
| 194 CreateSafeCallback(callback))); | 195 std::move(safe_callback))); |
| 195 return true; | 196 return true; |
| 196 } | 197 } |
| 197 | 198 |
| 198 bool MusThreadProxy::GpuRefreshNativeDisplays() { | 199 bool MusThreadProxy::GpuRefreshNativeDisplays() { |
| 199 DCHECK(drm_thread_->IsRunning()); | 200 DCHECK(drm_thread_->IsRunning()); |
| 200 DCHECK(on_window_server_thread_.CalledOnValidThread()); | 201 DCHECK(on_window_server_thread_.CalledOnValidThread()); |
| 201 auto callback = base::Bind(&MusThreadProxy::GpuRefreshNativeDisplaysCallback, | 202 auto callback = |
| 202 weak_ptr_factory_.GetWeakPtr()); | 203 base::BindOnce(&MusThreadProxy::GpuRefreshNativeDisplaysCallback, |
| 204 weak_ptr_factory_.GetWeakPtr()); |
| 205 auto safe_callback = CreateSafeOnceCallback(std::move(callback)); |
| 203 drm_thread_->task_runner()->PostTask( | 206 drm_thread_->task_runner()->PostTask( |
| 204 FROM_HERE, | 207 FROM_HERE, |
| 205 base::Bind(&DrmThread::RefreshNativeDisplays, | 208 base::BindOnce(&DrmThread::RefreshNativeDisplays, |
| 206 base::Unretained(drm_thread_), CreateSafeCallback(callback))); | 209 base::Unretained(drm_thread_), std::move(safe_callback))); |
| 207 return true; | 210 return true; |
| 208 } | 211 } |
| 209 | 212 |
| 210 bool MusThreadProxy::GpuConfigureNativeDisplay(int64_t id, | 213 bool MusThreadProxy::GpuConfigureNativeDisplay(int64_t id, |
| 211 const DisplayMode_Params& mode, | 214 const DisplayMode_Params& mode, |
| 212 const gfx::Point& origin) { | 215 const gfx::Point& origin) { |
| 213 DCHECK(drm_thread_->IsRunning()); | 216 DCHECK(drm_thread_->IsRunning()); |
| 214 DCHECK(on_window_server_thread_.CalledOnValidThread()); | 217 DCHECK(on_window_server_thread_.CalledOnValidThread()); |
| 215 | 218 |
| 216 auto callback = base::Bind(&MusThreadProxy::GpuConfigureNativeDisplayCallback, | 219 auto callback = |
| 217 weak_ptr_factory_.GetWeakPtr()); | 220 base::BindOnce(&MusThreadProxy::GpuConfigureNativeDisplayCallback, |
| 221 weak_ptr_factory_.GetWeakPtr()); |
| 222 auto safe_callback = CreateSafeOnceCallback(std::move(callback)); |
| 218 drm_thread_->task_runner()->PostTask( | 223 drm_thread_->task_runner()->PostTask( |
| 219 FROM_HERE, base::Bind(&DrmThread::ConfigureNativeDisplay, | 224 FROM_HERE, base::BindOnce(&DrmThread::ConfigureNativeDisplay, |
| 220 base::Unretained(drm_thread_), id, mode, origin, | 225 base::Unretained(drm_thread_), id, mode, origin, |
| 221 CreateSafeCallback(callback))); | 226 std::move(safe_callback))); |
| 222 return true; | 227 return true; |
| 223 } | 228 } |
| 224 | 229 |
| 225 bool MusThreadProxy::GpuDisableNativeDisplay(int64_t id) { | 230 bool MusThreadProxy::GpuDisableNativeDisplay(int64_t id) { |
| 226 DCHECK(drm_thread_->IsRunning()); | 231 DCHECK(drm_thread_->IsRunning()); |
| 227 DCHECK(on_window_server_thread_.CalledOnValidThread()); | 232 DCHECK(on_window_server_thread_.CalledOnValidThread()); |
| 228 auto callback = base::Bind(&MusThreadProxy::GpuDisableNativeDisplayCallback, | 233 auto callback = |
| 229 weak_ptr_factory_.GetWeakPtr()); | 234 base::BindOnce(&MusThreadProxy::GpuDisableNativeDisplayCallback, |
| 235 weak_ptr_factory_.GetWeakPtr()); |
| 236 auto safe_callback = CreateSafeOnceCallback(std::move(callback)); |
| 230 drm_thread_->task_runner()->PostTask( | 237 drm_thread_->task_runner()->PostTask( |
| 231 FROM_HERE, base::Bind(&DrmThread::DisableNativeDisplay, | 238 FROM_HERE, base::BindOnce(&DrmThread::DisableNativeDisplay, |
| 232 base::Unretained(drm_thread_), id, | 239 base::Unretained(drm_thread_), id, |
| 233 CreateSafeCallback(callback))); | 240 std::move(safe_callback))); |
| 234 return true; | 241 return true; |
| 235 } | 242 } |
| 236 | 243 |
| 237 bool MusThreadProxy::GpuTakeDisplayControl() { | 244 bool MusThreadProxy::GpuTakeDisplayControl() { |
| 238 DCHECK(drm_thread_->IsRunning()); | 245 DCHECK(drm_thread_->IsRunning()); |
| 239 DCHECK(on_window_server_thread_.CalledOnValidThread()); | 246 DCHECK(on_window_server_thread_.CalledOnValidThread()); |
| 240 auto callback = base::Bind(&MusThreadProxy::GpuTakeDisplayControlCallback, | 247 auto callback = base::BindOnce(&MusThreadProxy::GpuTakeDisplayControlCallback, |
| 241 weak_ptr_factory_.GetWeakPtr()); | 248 weak_ptr_factory_.GetWeakPtr()); |
| 249 auto safe_callback = CreateSafeOnceCallback(std::move(callback)); |
| 242 drm_thread_->task_runner()->PostTask( | 250 drm_thread_->task_runner()->PostTask( |
| 243 FROM_HERE, | 251 FROM_HERE, |
| 244 base::Bind(&DrmThread::TakeDisplayControl, base::Unretained(drm_thread_), | 252 base::BindOnce(&DrmThread::TakeDisplayControl, |
| 245 CreateSafeCallback(callback))); | 253 base::Unretained(drm_thread_), std::move(safe_callback))); |
| 246 return true; | 254 return true; |
| 247 } | 255 } |
| 248 | 256 |
| 249 bool MusThreadProxy::GpuRelinquishDisplayControl() { | 257 bool MusThreadProxy::GpuRelinquishDisplayControl() { |
| 250 DCHECK(drm_thread_->IsRunning()); | 258 DCHECK(drm_thread_->IsRunning()); |
| 251 DCHECK(on_window_server_thread_.CalledOnValidThread()); | 259 DCHECK(on_window_server_thread_.CalledOnValidThread()); |
| 252 auto callback = | 260 auto callback = |
| 253 base::Bind(&MusThreadProxy::GpuRelinquishDisplayControlCallback, | 261 base::BindOnce(&MusThreadProxy::GpuRelinquishDisplayControlCallback, |
| 254 weak_ptr_factory_.GetWeakPtr()); | 262 weak_ptr_factory_.GetWeakPtr()); |
| 263 auto safe_callback = CreateSafeOnceCallback(std::move(callback)); |
| 255 drm_thread_->task_runner()->PostTask( | 264 drm_thread_->task_runner()->PostTask( |
| 256 FROM_HERE, | 265 FROM_HERE, |
| 257 base::Bind(&DrmThread::RelinquishDisplayControl, | 266 base::BindOnce(&DrmThread::RelinquishDisplayControl, |
| 258 base::Unretained(drm_thread_), CreateSafeCallback(callback))); | 267 base::Unretained(drm_thread_), std::move(safe_callback))); |
| 259 return true; | 268 return true; |
| 260 } | 269 } |
| 261 | 270 |
| 262 bool MusThreadProxy::GpuAddGraphicsDevice(const base::FilePath& path, | 271 bool MusThreadProxy::GpuAddGraphicsDevice(const base::FilePath& path, |
| 263 const base::FileDescriptor& fd) { | 272 const base::FileDescriptor& fd) { |
| 264 DCHECK(drm_thread_->IsRunning()); | 273 DCHECK(drm_thread_->IsRunning()); |
| 265 DCHECK(on_window_server_thread_.CalledOnValidThread()); | 274 DCHECK(on_window_server_thread_.CalledOnValidThread()); |
| 266 drm_thread_->task_runner()->PostTask( | 275 drm_thread_->task_runner()->PostTask( |
| 267 FROM_HERE, base::Bind(&DrmThread::AddGraphicsDevice, | 276 FROM_HERE, base::Bind(&DrmThread::AddGraphicsDevice, |
| 268 base::Unretained(drm_thread_), path, fd)); | 277 base::Unretained(drm_thread_), path, fd)); |
| 269 return true; | 278 return true; |
| 270 } | 279 } |
| 271 | 280 |
| 272 bool MusThreadProxy::GpuRemoveGraphicsDevice(const base::FilePath& path) { | 281 bool MusThreadProxy::GpuRemoveGraphicsDevice(const base::FilePath& path) { |
| 273 DCHECK(drm_thread_->IsRunning()); | 282 DCHECK(drm_thread_->IsRunning()); |
| 274 DCHECK(on_window_server_thread_.CalledOnValidThread()); | 283 DCHECK(on_window_server_thread_.CalledOnValidThread()); |
| 275 drm_thread_->task_runner()->PostTask( | 284 drm_thread_->task_runner()->PostTask( |
| 276 FROM_HERE, base::Bind(&DrmThread::RemoveGraphicsDevice, | 285 FROM_HERE, base::Bind(&DrmThread::RemoveGraphicsDevice, |
| 277 base::Unretained(drm_thread_), path)); | 286 base::Unretained(drm_thread_), path)); |
| 278 return true; | 287 return true; |
| 279 } | 288 } |
| 280 | 289 |
| 281 bool MusThreadProxy::GpuGetHDCPState(int64_t display_id) { | 290 bool MusThreadProxy::GpuGetHDCPState(int64_t display_id) { |
| 282 DCHECK(drm_thread_->IsRunning()); | 291 DCHECK(drm_thread_->IsRunning()); |
| 283 DCHECK(on_window_server_thread_.CalledOnValidThread()); | 292 DCHECK(on_window_server_thread_.CalledOnValidThread()); |
| 284 auto callback = base::Bind(&MusThreadProxy::GpuGetHDCPStateCallback, | 293 auto callback = base::BindOnce(&MusThreadProxy::GpuGetHDCPStateCallback, |
| 285 weak_ptr_factory_.GetWeakPtr()); | 294 weak_ptr_factory_.GetWeakPtr()); |
| 295 auto safe_callback = CreateSafeOnceCallback(std::move(callback)); |
| 286 drm_thread_->task_runner()->PostTask( | 296 drm_thread_->task_runner()->PostTask( |
| 287 FROM_HERE, | 297 FROM_HERE, |
| 288 base::Bind(&DrmThread::GetHDCPState, base::Unretained(drm_thread_), | 298 base::BindOnce(&DrmThread::GetHDCPState, base::Unretained(drm_thread_), |
| 289 display_id, CreateSafeCallback(callback))); | 299 display_id, std::move(safe_callback))); |
| 290 return true; | 300 return true; |
| 291 } | 301 } |
| 292 | 302 |
| 293 bool MusThreadProxy::GpuSetHDCPState(int64_t display_id, | 303 bool MusThreadProxy::GpuSetHDCPState(int64_t display_id, |
| 294 display::HDCPState state) { | 304 display::HDCPState state) { |
| 295 DCHECK(on_window_server_thread_.CalledOnValidThread()); | 305 DCHECK(on_window_server_thread_.CalledOnValidThread()); |
| 296 DCHECK(drm_thread_->IsRunning()); | 306 DCHECK(drm_thread_->IsRunning()); |
| 297 auto callback = base::Bind(&MusThreadProxy::GpuSetHDCPStateCallback, | 307 auto callback = base::BindOnce(&MusThreadProxy::GpuSetHDCPStateCallback, |
| 298 weak_ptr_factory_.GetWeakPtr()); | 308 weak_ptr_factory_.GetWeakPtr()); |
| 309 auto safe_callback = CreateSafeOnceCallback(std::move(callback)); |
| 299 drm_thread_->task_runner()->PostTask( | 310 drm_thread_->task_runner()->PostTask( |
| 300 FROM_HERE, | 311 FROM_HERE, |
| 301 base::Bind(&DrmThread::SetHDCPState, base::Unretained(drm_thread_), | 312 base::BindOnce(&DrmThread::SetHDCPState, base::Unretained(drm_thread_), |
| 302 display_id, state, CreateSafeCallback(callback))); | 313 display_id, state, std::move(safe_callback))); |
| 303 return true; | 314 return true; |
| 304 } | 315 } |
| 305 | 316 |
| 306 bool MusThreadProxy::GpuSetColorCorrection( | 317 bool MusThreadProxy::GpuSetColorCorrection( |
| 307 int64_t id, | 318 int64_t id, |
| 308 const std::vector<display::GammaRampRGBEntry>& degamma_lut, | 319 const std::vector<display::GammaRampRGBEntry>& degamma_lut, |
| 309 const std::vector<display::GammaRampRGBEntry>& gamma_lut, | 320 const std::vector<display::GammaRampRGBEntry>& gamma_lut, |
| 310 const std::vector<float>& correction_matrix) { | 321 const std::vector<float>& correction_matrix) { |
| 311 DCHECK(drm_thread_->IsRunning()); | 322 DCHECK(drm_thread_->IsRunning()); |
| 312 DCHECK(on_window_server_thread_.CalledOnValidThread()); | 323 DCHECK(on_window_server_thread_.CalledOnValidThread()); |
| (...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 359 display_manager_->GpuReceivedHDCPState(display_id, success, state); | 370 display_manager_->GpuReceivedHDCPState(display_id, success, state); |
| 360 } | 371 } |
| 361 | 372 |
| 362 void MusThreadProxy::GpuSetHDCPStateCallback(int64_t display_id, | 373 void MusThreadProxy::GpuSetHDCPStateCallback(int64_t display_id, |
| 363 bool success) const { | 374 bool success) const { |
| 364 DCHECK(on_window_server_thread_.CalledOnValidThread()); | 375 DCHECK(on_window_server_thread_.CalledOnValidThread()); |
| 365 display_manager_->GpuUpdatedHDCPState(display_id, success); | 376 display_manager_->GpuUpdatedHDCPState(display_id, success); |
| 366 } | 377 } |
| 367 | 378 |
| 368 } // namespace ui | 379 } // namespace ui |
| OLD | NEW |