/
githubmr
/
facebook-react-native
Обзор
Документация
Войти
/
githubmr
/
facebook-react-native
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
main
packages/react-native/ReactCommon/react/renderer/graphics/LinearGradient.h
67 строк
2 KB
Nick Lefever
Fix binary size regression for BackgroundImage (#54126)
14 окт 2025, 20:46
14 окт 2025, 20:46
93278d5
Код
Авторство
О чём код?
/* * 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 <react/renderer/graphics/ColorStop.h> #include <react/renderer/graphics/Float.h> #include <react/renderer/graphics/ValueUnit.h> #include <stdexcept> #include <string> #include <variant> #include <vector> namespace facebook::react { enum class GradientDirectionType { Angle, Keyword }; enum class GradientKeyword { ToTopRight, ToBottomRight, ToTopLeft, ToBottomLeft, }; struct GradientDirection { GradientDirectionType type; std::variant<Float, GradientKeyword> value; bool operator==(const GradientDirection& other) const { return type == other.type && value == other.value; } #ifdef RN_SERIALIZABLE_STATE folly::dynamic toDynamic() const; #endif }; struct LinearGradient { GradientDirection direction; std::vector<ColorStop> colorStops; bool operator==(const LinearGradient& other) const { return direction == other.direction && colorStops == other.colorStops; } #ifdef RN_SERIALIZABLE_STATE folly::dynamic toDynamic() const; #endif }; inline GradientKeyword parseGradientKeyword(const std::string& keyword) { if (keyword == "to top right") return GradientKeyword::ToTopRight; if (keyword == "to bottom right") return GradientKeyword::ToBottomRight; if (keyword == "to top left") return GradientKeyword::ToTopLeft; if (keyword == "to bottom left") return GradientKeyword::ToBottomLeft; throw std::invalid_argument("Invalid gradient keyword: " + keyword); } }; // namespace facebook::react