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

Unified Diff: services/gfx/compositor/compositor_engine.cc

Issue 1749063002: Mozart: Improve internal scene graph representation. (Closed) Base URL: git@github.com:domokit/mojo.git@moz-0
Patch Set: avoid unnecessary hashtable lookups Created 4 years, 10 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « services/gfx/compositor/compositor_engine.h ('k') | services/gfx/compositor/graph/node_def.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: services/gfx/compositor/compositor_engine.cc
diff --git a/services/gfx/compositor/compositor_engine.cc b/services/gfx/compositor/compositor_engine.cc
index 448d689b87411e6614b52a8f7648d4728bf7dad9..3e82c4145fdedcdc4b05f5dfb623357575df13e7 100644
--- a/services/gfx/compositor/compositor_engine.cc
+++ b/services/gfx/compositor/compositor_engine.cc
@@ -264,23 +264,16 @@ void CompositorEngine::HitTest(
DCHECK(point);
DVLOG(1) << "HitTest: renderer=" << renderer_state << ", point=" << point;
- mojo::gfx::composition::HitTestResultPtr result;
- if (renderer_state->frame()) {
- result =
- renderer_state->frame()->HitTest(SkPoint::Make(point->x, point->y));
- }
- if (!result) {
- result = mojo::gfx::composition::HitTestResult::New();
- result->hits.resize(0u);
- }
-
+ // TODO(jeffbrown): hit tests on scenes
+ auto result = mojo::gfx::composition::HitTestResult::New();
callback.Run(result.Pass());
}
-SceneDef* CompositorEngine::ResolveSceneReference(
- mojo::gfx::composition::SceneToken* scene_token) {
- SceneState* scene_state = FindScene(scene_token->value);
- return scene_state ? scene_state->scene_def() : nullptr;
+base::WeakPtr<SceneDef> CompositorEngine::ResolveSceneReference(
+ const mojo::gfx::composition::SceneToken& scene_token) {
+ SceneState* scene_state = FindScene(scene_token.value);
+ return scene_state ? scene_state->scene_def()->GetWeakPtr()
+ : base::WeakPtr<SceneDef>();
}
void CompositorEngine::SendResourceUnavailable(SceneState* scene_state,
@@ -361,7 +354,7 @@ void CompositorEngine::SnapshotRenderer(
if (VLOG_IS_ON(2)) {
std::ostringstream block_log;
SnapshotRendererInner(renderer_state, frame_info, &block_log);
- if (!renderer_state->valid()) {
+ if (!renderer_state->frame()) {
DVLOG(2) << "Rendering completely blocked: " << block_log.str();
} else if (!block_log.str().empty()) {
DVLOG(2) << "Rendering partially blocked: " << block_log.str();
@@ -389,7 +382,7 @@ void CompositorEngine::SnapshotRendererInner(
builder.Build(renderer_state->root_scene()->scene_def(),
renderer_state->root_scene_viewport(), frame_info));
- if (renderer_state->valid())
+ if (renderer_state->frame())
renderer_state->output()->SubmitFrame(renderer_state->frame());
}
« no previous file with comments | « services/gfx/compositor/compositor_engine.h ('k') | services/gfx/compositor/graph/node_def.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698