1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- /**
- * Copyright (c) Facebook, Inc. and its 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 "YGFloatOptional.h"
- #include "Yoga-internal.h"
- constexpr std::array<float, 2> kYGDefaultDimensionValues = {
- {YGUndefined, YGUndefined}};
- struct YGLayout {
- std::array<float, 4> position = {};
- std::array<float, 2> dimensions = kYGDefaultDimensionValues;
- std::array<float, 6> margin = {};
- std::array<float, 6> border = {};
- std::array<float, 6> padding = {};
- YGDirection direction : 2;
- bool didUseLegacyFlag : 1;
- bool doesLegacyStretchFlagAffectsLayout : 1;
- bool hadOverflow : 1;
- uint32_t computedFlexBasisGeneration = 0;
- YGFloatOptional computedFlexBasis = {};
- // Instead of recomputing the entire layout every single time, we cache some
- // information to break early when nothing changed
- uint32_t generationCount = 0;
- YGDirection lastOwnerDirection = (YGDirection) -1;
- uint32_t nextCachedMeasurementsIndex = 0;
- std::array<YGCachedMeasurement, YG_MAX_CACHED_RESULT_COUNT>
- cachedMeasurements = {};
- std::array<float, 2> measuredDimensions = kYGDefaultDimensionValues;
- YGCachedMeasurement cachedLayout = YGCachedMeasurement();
- YGLayout()
- : direction(YGDirectionInherit),
- didUseLegacyFlag(false),
- doesLegacyStretchFlagAffectsLayout(false),
- hadOverflow(false) {}
- bool operator==(YGLayout layout) const;
- bool operator!=(YGLayout layout) const {
- return !(*this == layout);
- }
- };
|