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

Unified Diff: components/viz/client/client_layer_tree_frame_sink.cc

Issue 2972963002: [mus+ash] Implements hit-test client in Aura (Closed)
Patch Set: [mus ash] Implements hit-test client in Aura (rebased) Created 3 years, 5 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
Index: components/viz/client/client_layer_tree_frame_sink.cc
diff --git a/components/viz/client/client_layer_tree_frame_sink.cc b/components/viz/client/client_layer_tree_frame_sink.cc
index 795f7d2581b48eeb69c138a73b68b80a06154b39..3c5cd39ed6e995da585b31ce32913b969102cbcb 100644
--- a/components/viz/client/client_layer_tree_frame_sink.cc
+++ b/components/viz/client/client_layer_tree_frame_sink.cc
@@ -9,6 +9,7 @@
#include "cc/output/begin_frame_args.h"
#include "cc/output/compositor_frame.h"
#include "cc/output/layer_tree_frame_sink_client.h"
+#include "components/viz/client/hit_test_data_provider.h"
#include "components/viz/client/local_surface_id_provider.h"
namespace viz {
@@ -21,12 +22,14 @@ ClientLayerTreeFrameSink::ClientLayerTreeFrameSink(
std::unique_ptr<cc::SyntheticBeginFrameSource> synthetic_begin_frame_source,
cc::mojom::CompositorFrameSinkPtrInfo compositor_frame_sink_info,
cc::mojom::CompositorFrameSinkClientRequest client_request,
+ std::unique_ptr<HitTestDataProvider> hit_test_data_provider,
std::unique_ptr<LocalSurfaceIdProvider> local_surface_id_provider,
bool enable_surface_synchronization)
: cc::LayerTreeFrameSink(std::move(context_provider),
std::move(worker_context_provider),
gpu_memory_buffer_manager,
shared_bitmap_manager),
+ hit_test_data_provider_(std::move(hit_test_data_provider)),
local_surface_id_provider_(std::move(local_surface_id_provider)),
synthetic_begin_frame_source_(std::move(synthetic_begin_frame_source)),
compositor_frame_sink_info_(std::move(compositor_frame_sink_info)),
@@ -42,9 +45,11 @@ ClientLayerTreeFrameSink::ClientLayerTreeFrameSink(
std::unique_ptr<cc::SyntheticBeginFrameSource> synthetic_begin_frame_source,
cc::mojom::CompositorFrameSinkPtrInfo compositor_frame_sink_info,
cc::mojom::CompositorFrameSinkClientRequest client_request,
+ std::unique_ptr<HitTestDataProvider> hit_test_data_provider,
std::unique_ptr<LocalSurfaceIdProvider> local_surface_id_provider,
bool enable_surface_synchronization)
: cc::LayerTreeFrameSink(std::move(vulkan_context_provider)),
+ hit_test_data_provider_(std::move(hit_test_data_provider)),
local_surface_id_provider_(std::move(local_surface_id_provider)),
synthetic_begin_frame_source_(std::move(synthetic_begin_frame_source)),
compositor_frame_sink_info_(std::move(compositor_frame_sink_info)),
@@ -114,6 +119,21 @@ void ClientLayerTreeFrameSink::SubmitCompositorFrame(
local_surface_id_provider_->GetLocalSurfaceIdForFrame(frame);
}
+ if (hit_test_data_provider_) {
+ std::unique_ptr<HitTestDataProvider::HitTestRegionList> hit_test_data =
+ hit_test_data_provider_->GetHitTestData();
+ if (!hit_test_data->empty()) {
+ LOG(ERROR) << __FUNCTION__ << "--- " << hit_test_data->size() << " ---";
+ int i = 0;
+ for (const auto& region : *hit_test_data) {
+ LOG(ERROR) << __FUNCTION__ << "[" << i++ << "] flags=" << region.flags
+ << " cid=" << region.frame_sink_id.client_id()
+ << " sid=" << region.frame_sink_id.sink_id()
+ << " wid=" << (region.window_id & 0xFFFF)
+ << " rect=" << region.rect.ToString();
+ }
+ }
+ }
compositor_frame_sink_->SubmitCompositorFrame(local_surface_id_,
std::move(frame));
}
« no previous file with comments | « components/viz/client/client_layer_tree_frame_sink.h ('k') | components/viz/client/hit_test_data_provider.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698