Summary: X-link: https://github.com/facebook/react-native/pull/39452 Pull Request resolved: https://github.com/facebook/yoga/pull/1389 This converts usages of YGMeasureMode to MeasureMode Reviewed By: rozele Differential Revision: D49271165 fbshipit-source-id: a6ab7509a3f74bc6e1c42c0ce3376e1e7447f4dd
54 lines
1.5 KiB
C++
54 lines
1.5 KiB
C++
/*
|
|
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
*
|
|
* This source code is licensed under the MIT license found in the
|
|
* LICENSE file in the root directory of this source tree.
|
|
*/
|
|
|
|
#pragma once
|
|
|
|
#include <cmath>
|
|
|
|
#include <yoga/Yoga.h>
|
|
|
|
#include <yoga/enums/MeasureMode.h>
|
|
#include <yoga/numeric/Comparison.h>
|
|
|
|
namespace facebook::yoga {
|
|
|
|
struct CachedMeasurement {
|
|
float availableWidth{-1};
|
|
float availableHeight{-1};
|
|
MeasureMode widthMeasureMode{MeasureMode::Undefined};
|
|
MeasureMode heightMeasureMode{MeasureMode::Undefined};
|
|
|
|
float computedWidth{-1};
|
|
float computedHeight{-1};
|
|
|
|
bool operator==(CachedMeasurement measurement) const {
|
|
bool isEqual = widthMeasureMode == measurement.widthMeasureMode &&
|
|
heightMeasureMode == measurement.heightMeasureMode;
|
|
|
|
if (!yoga::isUndefined(availableWidth) ||
|
|
!yoga::isUndefined(measurement.availableWidth)) {
|
|
isEqual = isEqual && availableWidth == measurement.availableWidth;
|
|
}
|
|
if (!yoga::isUndefined(availableHeight) ||
|
|
!yoga::isUndefined(measurement.availableHeight)) {
|
|
isEqual = isEqual && availableHeight == measurement.availableHeight;
|
|
}
|
|
if (!yoga::isUndefined(computedWidth) ||
|
|
!yoga::isUndefined(measurement.computedWidth)) {
|
|
isEqual = isEqual && computedWidth == measurement.computedWidth;
|
|
}
|
|
if (!yoga::isUndefined(computedHeight) ||
|
|
!yoga::isUndefined(measurement.computedHeight)) {
|
|
isEqual = isEqual && computedHeight == measurement.computedHeight;
|
|
}
|
|
|
|
return isEqual;
|
|
}
|
|
};
|
|
|
|
} // namespace facebook::yoga
|