| OLD | NEW |
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 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 | 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 "services/gfx/compositor/compositor_engine.h" | 5 #include "services/gfx/compositor/compositor_engine.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 #include <sstream> | 8 #include <sstream> |
| 9 #include <utility> | 9 #include <utility> |
| 10 | 10 |
| (...skipping 258 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 269 } | 269 } |
| 270 | 270 |
| 271 void CompositorEngine::HitTest( | 271 void CompositorEngine::HitTest( |
| 272 RendererState* renderer_state, | 272 RendererState* renderer_state, |
| 273 mojo::PointPtr point, | 273 mojo::PointPtr point, |
| 274 const mojo::gfx::composition::HitTester::HitTestCallback& callback) { | 274 const mojo::gfx::composition::HitTester::HitTestCallback& callback) { |
| 275 DCHECK(IsRendererStateRegisteredDebug(renderer_state)); | 275 DCHECK(IsRendererStateRegisteredDebug(renderer_state)); |
| 276 DCHECK(point); | 276 DCHECK(point); |
| 277 DVLOG(1) << "HitTest: renderer=" << renderer_state << ", point=" << point; | 277 DVLOG(1) << "HitTest: renderer=" << renderer_state << ", point=" << point; |
| 278 | 278 |
| 279 // TODO(jeffbrown): hit tests on scenes | |
| 280 auto result = mojo::gfx::composition::HitTestResult::New(); | 279 auto result = mojo::gfx::composition::HitTestResult::New(); |
| 280 |
| 281 if (renderer_state->visible_snapshot()) { |
| 282 DCHECK(!renderer_state->visible_snapshot()->is_blocked()); |
| 283 renderer_state->visible_snapshot()->HitTest(*point, result.get()); |
| 284 } |
| 285 |
| 281 callback.Run(result.Pass()); | 286 callback.Run(result.Pass()); |
| 282 } | 287 } |
| 283 | 288 |
| 284 base::WeakPtr<SceneDef> CompositorEngine::ResolveSceneReference( | 289 base::WeakPtr<SceneDef> CompositorEngine::ResolveSceneReference( |
| 285 const mojo::gfx::composition::SceneToken& scene_token) { | 290 const mojo::gfx::composition::SceneToken& scene_token) { |
| 286 SceneState* scene_state = FindScene(scene_token.value); | 291 SceneState* scene_state = FindScene(scene_token.value); |
| 287 return scene_state ? scene_state->scene_def()->GetWeakPtr() | 292 return scene_state ? scene_state->scene_def()->GetWeakPtr() |
| 288 : base::WeakPtr<SceneDef>(); | 293 : base::WeakPtr<SceneDef>(); |
| 289 } | 294 } |
| 290 | 295 |
| (...skipping 168 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 459 | 464 |
| 460 SceneDef::Disposition disposition = | 465 SceneDef::Disposition disposition = |
| 461 PresentScene(scene_state, presentation_time); | 466 PresentScene(scene_state, presentation_time); |
| 462 if (disposition == SceneDef::Disposition::kFailed) | 467 if (disposition == SceneDef::Disposition::kFailed) |
| 463 DestroyScene(scene_state); | 468 DestroyScene(scene_state); |
| 464 else if (disposition == SceneDef::Disposition::kSucceeded) | 469 else if (disposition == SceneDef::Disposition::kSucceeded) |
| 465 InvalidateScene(scene_state); | 470 InvalidateScene(scene_state); |
| 466 } | 471 } |
| 467 | 472 |
| 468 } // namespace compositor | 473 } // namespace compositor |
| OLD | NEW |