Publish two events for measure callbacks
Summary: Publishing two events will allow us to replace marker functionality completely with events. This also allows us to remove measuring time spent from Yoga itself. Reviewed By: SidharthGuglani Differential Revision: D16049810 fbshipit-source-id: 98628a92ed3c94d479e9fbcd53fac90c5f524087
This commit is contained in:
Родитель
9a84970c35
Коммит
2985ddbc33
|
@ -1642,6 +1642,7 @@ static void YGNodeWithMeasureFuncSetMeasuredDimensions(
|
|||
} else {
|
||||
#ifdef YG_ENABLE_EVENTS
|
||||
auto start = steady_clock::now();
|
||||
Event::publish<Event::MeasureCallbackStart>(node);
|
||||
#endif
|
||||
|
||||
// Measure the text under the current constraints.
|
||||
|
@ -1661,7 +1662,7 @@ static void YGNodeWithMeasureFuncSetMeasuredDimensions(
|
|||
auto measureCallbackDuration =
|
||||
duration_cast<std::chrono::duration<float, std::milli>>(end - start);
|
||||
|
||||
Event::publish<Event::NodeMeasure>(
|
||||
Event::publish<Event::MeasureCallbackEnd>(
|
||||
node,
|
||||
{layoutContext,
|
||||
innerWidth,
|
||||
|
|
|
@ -31,7 +31,8 @@ struct Event {
|
|||
NodeLayout,
|
||||
LayoutPassStart,
|
||||
LayoutPassEnd,
|
||||
NodeMeasure,
|
||||
MeasureCallbackStart,
|
||||
MeasureCallbackEnd,
|
||||
};
|
||||
class Data;
|
||||
using Subscriber = void(const YGNode&, Type, Data);
|
||||
|
@ -93,7 +94,7 @@ struct Event::TypedData<Event::LayoutPassEnd> {
|
|||
};
|
||||
|
||||
template <>
|
||||
struct Event::TypedData<Event::NodeMeasure> {
|
||||
struct Event::TypedData<Event::MeasureCallbackEnd> {
|
||||
void* layoutContext;
|
||||
float width;
|
||||
YGMeasureMode widthMeasureMode;
|
||||
|
|
Загрузка…
Ссылка в новой задаче