@@ -12,19 +12,6 @@ namespace flutter {
1212
1313class PointerDataDispatcher ;
1414
15- // --------------------------------------------------------------------------
16- // / @brief Signature for constructing PointerDataDispatcher.
17- // /
18- // / @param[in] animator the animator of `Flutter::Engine`
19- // / @param[in] controller the runtime controller of `Flutter::Engine`
20- // / @param[in] task_runners the task runners of `Flutter::Engine`
21- // /
22- using PointerDataDispatcherMaker =
23- std::function<std::unique_ptr<PointerDataDispatcher>(
24- Animator& animator,
25- RuntimeController& runtime_controller,
26- TaskRunners task_runners)>;
27-
2815// ------------------------------------------------------------------------------
2916// / The `Engine` pointer data dispatcher that forwards the packet received from
3017// / `PlatformView::DispatchPointerDataPacket` on the platform thread, to
@@ -52,6 +39,18 @@ using PointerDataDispatcherMaker =
5239// / construction of the `PointerDataDispatcher`.
5340class PointerDataDispatcher {
5441 public:
42+ // / The interface for Engine to implement.
43+ class Delegate {
44+ public:
45+ // / Actually dispatch the packet using Engine's `animator_` and
46+ // / `runtime_controller_`.
47+ virtual void DoDispatchPacket (std::unique_ptr<PointerDataPacket> packet,
48+ uint64_t trace_flow_id) = 0;
49+
50+ // / Get the task runners to schedule tasks on specific threads.
51+ virtual TaskRunners& task_runners () = 0;
52+ };
53+
5554 // ----------------------------------------------------------------------------
5655 // / @brief Signal that `PlatformView` has a packet to be dispatched.
5756 // /
@@ -77,9 +76,7 @@ class PointerDataDispatcher {
7776// /
7877class DefaultPointerDataDispatcher : public PointerDataDispatcher {
7978 public:
80- DefaultPointerDataDispatcher (Animator& animator,
81- RuntimeController& runtime_controller)
82- : runtime_controller_(runtime_controller), animator_(animator) {}
79+ DefaultPointerDataDispatcher (Delegate& delegate) : delegate_(delegate) {}
8380
8481 // |PointerDataDispatcer|
8582 void DispatchPacket (std::unique_ptr<PointerDataPacket> packet,
@@ -91,8 +88,7 @@ class DefaultPointerDataDispatcher : public PointerDataDispatcher {
9188 virtual ~DefaultPointerDataDispatcher ();
9289
9390 protected:
94- RuntimeController& runtime_controller_;
95- Animator& animator_;
91+ Delegate& delegate_;
9692
9793 FML_DISALLOW_COPY_AND_ASSIGN (DefaultPointerDataDispatcher);
9894};
@@ -136,12 +132,8 @@ class DefaultPointerDataDispatcher : public PointerDataDispatcher {
136132// / See also input_events_unittests.cc where we test all our claims above.
137133class SmoothPointerDataDispatcher : public DefaultPointerDataDispatcher {
138134 public:
139- SmoothPointerDataDispatcher (Animator& animator,
140- RuntimeController& runtime_controller,
141- TaskRunners task_runners)
142- : DefaultPointerDataDispatcher(animator, runtime_controller),
143- task_runners_ (task_runners),
144- weak_factory_(this ) {}
135+ SmoothPointerDataDispatcher (Delegate& delegate)
136+ : DefaultPointerDataDispatcher(delegate), weak_factory_(this ) {}
145137
146138 // |PointerDataDispatcer|
147139 void DispatchPacket (std::unique_ptr<PointerDataPacket> packet,
@@ -153,8 +145,6 @@ class SmoothPointerDataDispatcher : public DefaultPointerDataDispatcher {
153145 virtual ~SmoothPointerDataDispatcher ();
154146
155147 private:
156- TaskRunners task_runners_;
157-
158148 // If non-null, this will be a pending pointer data packet for the next frame
159149 // to consume. This is used to smooth out the irregular drag events delivery.
160150 // See also `DispatchPointerDataPacket` and input_events_unittests.cc.
@@ -170,6 +160,15 @@ class SmoothPointerDataDispatcher : public DefaultPointerDataDispatcher {
170160 FML_DISALLOW_COPY_AND_ASSIGN (SmoothPointerDataDispatcher);
171161};
172162
163+ // --------------------------------------------------------------------------
164+ // / @brief Signature for constructing PointerDataDispatcher.
165+ // /
166+ // / @param[in] delegate the `Flutter::Engine`
167+ // /
168+ using PointerDataDispatcherMaker =
169+ std::function<std::unique_ptr<PointerDataDispatcher>(
170+ PointerDataDispatcher::Delegate&)>;
171+
173172} // namespace flutter
174173
175174#endif // POINTER_DATA_DISPATCHER_H_
0 commit comments