提交 d45638fc 编写于 作者: C Chinmay Garde 提交者: GitHub

[content_handler] Make RuntimeHolder convey its viewport metrics to the direct...

[content_handler] Make RuntimeHolder convey its viewport metrics to the direct input instance. (#3367)
上级 a042f575
...@@ -151,8 +151,10 @@ void DirectInput::PerformRead() { ...@@ -151,8 +151,10 @@ void DirectInput::PerformRead() {
pointer_data.kind = blink::PointerData::DeviceKind::kTouch; pointer_data.kind = blink::PointerData::DeviceKind::kTouch;
pointer_data.device = touch_identifier; pointer_data.device = touch_identifier;
pointer_data.physical_x = finger.x / 2.0; pointer_data.physical_x = ((static_cast<float>(finger.x) / ACER12_X_MAX) *
pointer_data.physical_y = finger.y / 2.0; viewport_metrics_.physical_width);
pointer_data.physical_y = ((static_cast<float>(finger.y) / ACER12_Y_MAX) *
viewport_metrics_.physical_height);
bool down = !!acer12_finger_id_tswitch(finger.finger_id); bool down = !!acer12_finger_id_tswitch(finger.finger_id);
...@@ -231,4 +233,8 @@ ftl::UniqueFD DirectInput::GetTouchFileDescriptor() { ...@@ -231,4 +233,8 @@ ftl::UniqueFD DirectInput::GetTouchFileDescriptor() {
return {}; return {};
} }
void DirectInput::SetViewportMetrics(blink::ViewportMetrics metrics) {
viewport_metrics_ = metrics;
}
} // namespace flutter_runner } // namespace flutter_runner
...@@ -10,6 +10,7 @@ ...@@ -10,6 +10,7 @@
#include <vector> #include <vector>
#include "flutter/lib/ui/window/pointer_data_packet.h" #include "flutter/lib/ui/window/pointer_data_packet.h"
#include "flutter/lib/ui/window/viewport_metrics.h"
#include "lib/fidl/c/waiter/async_waiter.h" #include "lib/fidl/c/waiter/async_waiter.h"
#include "lib/ftl/files/unique_fd.h" #include "lib/ftl/files/unique_fd.h"
#include "lib/ftl/macros.h" #include "lib/ftl/macros.h"
...@@ -31,6 +32,8 @@ class DirectInput { ...@@ -31,6 +32,8 @@ class DirectInput {
void CancelWaitForReadAvailability(); void CancelWaitForReadAvailability();
void SetViewportMetrics(blink::ViewportMetrics metrics);
private: private:
DirectInputCallback callback_; DirectInputCallback callback_;
bool valid_; bool valid_;
...@@ -39,6 +42,7 @@ class DirectInput { ...@@ -39,6 +42,7 @@ class DirectInput {
std::vector<uint8_t> read_buffer_; std::vector<uint8_t> read_buffer_;
FidlAsyncWaitID last_wait_; FidlAsyncWaitID last_wait_;
std::set<int64_t> touch_ids_; std::set<int64_t> touch_ids_;
blink::ViewportMetrics viewport_metrics_;
static ftl::UniqueFD GetTouchFileDescriptor(); static ftl::UniqueFD GetTouchFileDescriptor();
......
...@@ -146,6 +146,9 @@ void RuntimeHolder::CreateView( ...@@ -146,6 +146,9 @@ void RuntimeHolder::CreateView(
runtime_ = blink::RuntimeController::Create(this); runtime_ = blink::RuntimeController::Create(this);
runtime_->CreateDartController(script_uri); runtime_->CreateDartController(script_uri);
runtime_->SetViewportMetrics(viewport_metrics_); runtime_->SetViewportMetrics(viewport_metrics_);
#if FLUTTER_ENABLE_VULKAN
direct_input_->SetViewportMetrics(viewport_metrics_);
#endif // FLUTTER_ENABLE_VULKAN
runtime_->dart_controller()->RunFromSnapshot(snapshot.data(), runtime_->dart_controller()->RunFromSnapshot(snapshot.data(),
snapshot.size()); snapshot.size());
} }
...@@ -341,6 +344,11 @@ void RuntimeHolder::OnInvalidation(mozart::ViewInvalidationPtr invalidation, ...@@ -341,6 +344,11 @@ void RuntimeHolder::OnInvalidation(mozart::ViewInvalidationPtr invalidation,
// TODO(abarth): Use view_properties_->display_metrics->device_pixel_ratio // TODO(abarth): Use view_properties_->display_metrics->device_pixel_ratio
// once that's reasonable. // once that's reasonable.
runtime_->SetViewportMetrics(viewport_metrics_); runtime_->SetViewportMetrics(viewport_metrics_);
#if FLUTTER_ENABLE_VULKAN
if (direct_input_) {
direct_input_->SetViewportMetrics(viewport_metrics_);
}
#endif // FLUTTER_ENABLE_VULKAN
} }
// Remember the scene version for rendering. // Remember the scene version for rendering.
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册