├── .editorconfig ├── .gitattributes ├── .github ├── actions │ ├── build │ │ └── action.yml │ └── sign │ │ └── action.yml └── workflows │ └── builds.yml ├── .gitignore ├── .gitmodules ├── .pre-commit-config.yaml ├── LICENSE.md ├── README.md ├── SConstruct ├── addons └── godot-flexbox │ ├── assets.gd │ ├── assets │ ├── dark │ │ ├── AlignContentAroundColumnIcon.svg │ │ ├── AlignContentAroundColumnIcon.svg.import │ │ ├── AlignContentAroundRowIcon.svg │ │ ├── AlignContentAroundRowIcon.svg.import │ │ ├── AlignContentBetweenColumnIcon.svg │ │ ├── AlignContentBetweenColumnIcon.svg.import │ │ ├── AlignContentBetweenRowIcon.svg │ │ ├── AlignContentBetweenRowIcon.svg.import │ │ ├── AlignContentCenterColumnIcon.svg │ │ ├── AlignContentCenterColumnIcon.svg.import │ │ ├── AlignContentCenterRowIcon.svg │ │ ├── AlignContentCenterRowIcon.svg.import │ │ ├── AlignContentEndColumnIcon.svg │ │ ├── AlignContentEndColumnIcon.svg.import │ │ ├── AlignContentEndRowIcon.svg │ │ ├── AlignContentEndRowIcon.svg.import │ │ ├── AlignContentStartColumnIcon.svg │ │ ├── AlignContentStartColumnIcon.svg.import │ │ ├── AlignContentStartRowIcon.svg │ │ ├── AlignContentStartRowIcon.svg.import │ │ ├── AlignContentStretchColumnIcon.svg │ │ ├── AlignContentStretchColumnIcon.svg.import │ │ ├── AlignContentStretchRowIcon.svg │ │ ├── AlignContentStretchRowIcon.svg.import │ │ ├── AlignItemsBaselineColumnIcon.svg │ │ ├── AlignItemsBaselineColumnIcon.svg.import │ │ ├── AlignItemsBaselineRowIcon.svg │ │ ├── AlignItemsBaselineRowIcon.svg.import │ │ ├── AlignItemsCenterColumnIcon.svg │ │ ├── AlignItemsCenterColumnIcon.svg.import │ │ ├── AlignItemsCenterRowIcon.svg │ │ ├── AlignItemsCenterRowIcon.svg.import │ │ ├── AlignItemsEndColumnIcon.svg │ │ ├── AlignItemsEndColumnIcon.svg.import │ │ ├── AlignItemsEndRowIcon.svg │ │ ├── AlignItemsEndRowIcon.svg.import │ │ ├── AlignItemsStartColumnIcon.svg │ │ ├── AlignItemsStartColumnIcon.svg.import │ │ ├── AlignItemsStartRowIcon.svg │ │ ├── AlignItemsStartRowIcon.svg.import │ │ ├── AlignItemsStretchColumnIcon.svg │ │ ├── AlignItemsStretchColumnIcon.svg.import │ │ ├── AlignItemsStretchRowIcon.svg │ │ ├── AlignItemsStretchRowIcon.svg.import │ │ ├── ArrowReverseIcon.svg │ │ ├── ArrowReverseIcon.svg.import │ │ ├── DisplayFlexColumn.svg │ │ ├── DisplayFlexColumn.svg.import │ │ ├── DisplayFlexRow.svg │ │ ├── DisplayFlexRow.svg.import │ │ ├── FlexWrapNoWrapColumnIcon.svg │ │ ├── FlexWrapNoWrapColumnIcon.svg.import │ │ ├── FlexWrapNoWrapRowIcon.svg │ │ ├── FlexWrapNoWrapRowIcon.svg.import │ │ ├── FlexWrapWrapColumnIcon.svg │ │ ├── FlexWrapWrapColumnIcon.svg.import │ │ ├── FlexWrapWrapRowIcon.svg │ │ ├── FlexWrapWrapRowIcon.svg.import │ │ ├── JustifyContentCenterColumnIcon.svg │ │ ├── JustifyContentCenterColumnIcon.svg.import │ │ ├── JustifyContentCenterRowIcon.svg │ │ ├── JustifyContentCenterRowIcon.svg.import │ │ ├── JustifyContentEndColumnIcon.svg │ │ ├── JustifyContentEndColumnIcon.svg.import │ │ ├── JustifyContentEndRowIcon.svg │ │ ├── JustifyContentEndRowIcon.svg.import │ │ ├── JustifyContentSpaceAroundColumnIcon.svg │ │ ├── JustifyContentSpaceAroundColumnIcon.svg.import │ │ ├── JustifyContentSpaceAroundRowIcon.svg │ │ ├── JustifyContentSpaceAroundRowIcon.svg.import │ │ ├── JustifyContentSpaceBetweenColumnIcon.svg │ │ ├── JustifyContentSpaceBetweenColumnIcon.svg.import │ │ ├── JustifyContentSpaceBetweenRowIcon.svg │ │ ├── JustifyContentSpaceBetweenRowIcon.svg.import │ │ ├── JustifyContentSpaceBetweenRowReverseIcon.svg.import │ │ ├── JustifyContentSpaceEvenlyColumnIcon.svg │ │ ├── JustifyContentSpaceEvenlyColumnIcon.svg.import │ │ ├── JustifyContentSpaceEvenlyRowIcon.svg │ │ ├── JustifyContentSpaceEvenlyRowIcon.svg.import │ │ ├── JustifyContentStartColumnIcon.svg │ │ ├── JustifyContentStartColumnIcon.svg.import │ │ ├── JustifyContentStartRowIcon.svg │ │ └── JustifyContentStartRowIcon.svg.import │ └── light │ │ ├── AlignContentAroundColumnIcon.svg │ │ ├── AlignContentAroundColumnIcon.svg.import │ │ ├── AlignContentAroundRowIcon.svg │ │ ├── AlignContentAroundRowIcon.svg.import │ │ ├── AlignContentBetweenColumnIcon.svg │ │ ├── AlignContentBetweenColumnIcon.svg.import │ │ ├── AlignContentBetweenRowIcon.svg │ │ ├── AlignContentBetweenRowIcon.svg.import │ │ ├── AlignContentCenterColumnIcon.svg │ │ ├── AlignContentCenterColumnIcon.svg.import │ │ ├── AlignContentCenterRowIcon.svg │ │ ├── AlignContentCenterRowIcon.svg.import │ │ ├── AlignContentEndColumnIcon.svg │ │ ├── AlignContentEndColumnIcon.svg.import │ │ ├── AlignContentEndRowIcon.svg │ │ ├── AlignContentEndRowIcon.svg.import │ │ ├── AlignContentStartColumnIcon.svg │ │ ├── AlignContentStartColumnIcon.svg.import │ │ ├── AlignContentStartRowIcon.svg │ │ ├── AlignContentStartRowIcon.svg.import │ │ ├── AlignContentStretchColumnIcon.svg │ │ ├── AlignContentStretchColumnIcon.svg.import │ │ ├── AlignContentStretchRowIcon.svg │ │ ├── AlignContentStretchRowIcon.svg.import │ │ ├── AlignItemsBaselineColumnIcon.svg │ │ ├── AlignItemsBaselineColumnIcon.svg.import │ │ ├── AlignItemsBaselineRowIcon.svg │ │ ├── AlignItemsBaselineRowIcon.svg.import │ │ ├── AlignItemsCenterColumnIcon.svg │ │ ├── AlignItemsCenterColumnIcon.svg.import │ │ ├── AlignItemsCenterRowIcon.svg │ │ ├── AlignItemsCenterRowIcon.svg.import │ │ ├── AlignItemsEndColumnIcon.svg │ │ ├── AlignItemsEndColumnIcon.svg.import │ │ ├── AlignItemsEndRowIcon.svg │ │ ├── AlignItemsEndRowIcon.svg.import │ │ ├── AlignItemsStartColumnIcon.svg │ │ ├── AlignItemsStartColumnIcon.svg.import │ │ ├── AlignItemsStartRowIcon.svg │ │ ├── AlignItemsStartRowIcon.svg.import │ │ ├── AlignItemsStretchColumnIcon.svg │ │ ├── AlignItemsStretchColumnIcon.svg.import │ │ ├── AlignItemsStretchRowIcon.svg │ │ ├── AlignItemsStretchRowIcon.svg.import │ │ ├── ArrowReverseIcon.svg │ │ ├── ArrowReverseIcon.svg.import │ │ ├── DisplayFlexColumn.svg │ │ ├── DisplayFlexColumn.svg.import │ │ ├── DisplayFlexRow.svg │ │ ├── DisplayFlexRow.svg.import │ │ ├── FlexWrapNoWrapColumnIcon.svg │ │ ├── FlexWrapNoWrapColumnIcon.svg.import │ │ ├── FlexWrapNoWrapRowIcon.svg │ │ ├── FlexWrapNoWrapRowIcon.svg.import │ │ ├── FlexWrapWrapColumnIcon.svg │ │ ├── FlexWrapWrapColumnIcon.svg.import │ │ ├── FlexWrapWrapRowIcon.svg │ │ ├── FlexWrapWrapRowIcon.svg.import │ │ ├── JustifyContentCenterColumnIcon.svg │ │ ├── JustifyContentCenterColumnIcon.svg.import │ │ ├── JustifyContentCenterRowIcon.svg │ │ ├── JustifyContentCenterRowIcon.svg.import │ │ ├── JustifyContentEndColumnIcon.svg │ │ ├── JustifyContentEndColumnIcon.svg.import │ │ ├── JustifyContentEndRowIcon.svg │ │ ├── JustifyContentEndRowIcon.svg.import │ │ ├── JustifyContentSpaceAroundColumnIcon.svg │ │ ├── JustifyContentSpaceAroundColumnIcon.svg.import │ │ ├── JustifyContentSpaceAroundRowIcon.svg │ │ ├── JustifyContentSpaceAroundRowIcon.svg.import │ │ ├── JustifyContentSpaceBetweenColumnIcon.svg │ │ ├── JustifyContentSpaceBetweenColumnIcon.svg.import │ │ ├── JustifyContentSpaceBetweenRowIcon.svg │ │ ├── JustifyContentSpaceBetweenRowIcon.svg.import │ │ ├── JustifyContentSpaceEvenlyColumnIcon.svg │ │ ├── JustifyContentSpaceEvenlyColumnIcon.svg.import │ │ ├── JustifyContentSpaceEvenlyRowIcon.svg │ │ ├── JustifyContentSpaceEvenlyRowIcon.svg.import │ │ ├── JustifyContentStartColumnIcon.svg │ │ ├── JustifyContentStartColumnIcon.svg.import │ │ ├── JustifyContentStartRowIcon.svg │ │ └── JustifyContentStartRowIcon.svg.import │ ├── flex_container.gd │ ├── flexbox.gdextension │ ├── icon.svg │ ├── icon.svg.import │ ├── inspector │ └── inspector_plugin.gd │ ├── plugin.cfg │ ├── plugin.gd │ └── toolbar.gd ├── build.py ├── clean.py ├── demo ├── .gitkeep ├── ColorRect1.gd ├── addons │ └── addons-link │ │ ├── plugin.cfg │ │ └── plugin.gd ├── api_test.gd ├── api_test.tscn ├── default_env.tres ├── export_presets.cfg ├── playground.gd ├── playground.tscn ├── project.godot ├── setup.bat └── setup.sh ├── docs ├── add-flex-container.png ├── add-flex-container.png.import ├── flex-child-property.png ├── flex-child-property.png.import ├── flex-container-overview.png ├── flex-container-overview.png.import ├── flex-container-property.png ├── flex-container-property.png.import ├── flex-container.gif ├── flexbox-assets-icon.png └── flexbox-assets-icon.png.import ├── icon.png ├── icon.png.import ├── methods.py └── src ├── flexbox.cpp ├── flexbox.h ├── register_types.cpp ├── register_types.h └── yoga ├── BitUtils.h ├── CompactValue.h ├── LICENSE ├── Utils.cpp ├── Utils.h ├── YGConfig.cpp ├── YGConfig.h ├── YGEnums.cpp ├── YGEnums.h ├── YGFloatOptional.h ├── YGLayout.cpp ├── YGLayout.h ├── YGMacros.h ├── YGNode.cpp ├── YGNode.h ├── YGNodePrint.cpp ├── YGNodePrint.h ├── YGStyle.cpp ├── YGStyle.h ├── YGValue.cpp ├── YGValue.h ├── Yoga-internal.h ├── Yoga.cpp ├── Yoga.h ├── event ├── event.cpp └── event.h ├── log.cpp └── log.h /.editorconfig: -------------------------------------------------------------------------------- 1 | [*.{js,py,json}] 2 | indent_style = space 3 | indent_size = 4 4 | [*.{gd,tscn}] 5 | indent_style = tab 6 | [{package.json}] 7 | indent_style = space 8 | indent_size = 2 -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | * linguist-vendored 2 | *.cpp linguist-vendored=false 3 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | 2 | # Godot-specific ignores 3 | .import/ 4 | .godot 5 | # Imported translations (automatically generated from CSV files) 6 | *.translation 7 | build 8 | export 9 | # Mono-specific ignores 10 | .mono/ 11 | data_*/ 12 | mono_crash.*.json 13 | 14 | # System/tool-specific ignores 15 | .directory 16 | *~ 17 | 18 | # Logs and databases # 19 | ###################### 20 | *.log 21 | *.sql 22 | *.sqlite 23 | *.db 24 | # Do not ignore the database that is to be opened in read-only mode! 25 | !data_to_be_packaged.db 26 | 27 | # Compiled source # 28 | ################### 29 | *.com 30 | *.class 31 | *.exe 32 | *.o 33 | *.os 34 | *.obj 35 | *.exp 36 | *.pdb 37 | *.lib 38 | *.bc 39 | 40 | # OS generated files # 41 | ###################### 42 | .DS_Store 43 | .DS_Store? 44 | ._* 45 | .Spotlight-V100 46 | .Trashes 47 | ehthumbs.db 48 | Thumbs.db 49 | 50 | # Etc 51 | .sconsign.dblite 52 | demo/build 53 | test_backup_new.json 54 | test_backup_base64_new.json 55 | 56 | # VS 57 | vsproj/.vs/ 58 | vsproj/Debug/ 59 | vsproj/Release/ 60 | vsproj/x64/ 61 | vsproj/x86/ 62 | vsproj/gdsqlite.vcxproj.* 63 | 64 | .vscode 65 | demo/addons/godot-flexbox 66 | dist 67 | bin 68 | addons/*.dll 69 | demo/.godot -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "godot-cpp"] 2 | path = godot-cpp 3 | url = https://github.com/godotengine/godot-cpp 4 | -------------------------------------------------------------------------------- /.pre-commit-config.yaml: -------------------------------------------------------------------------------- 1 | default_language_version: 2 | python: python3 3 | 4 | exclude: | 5 | (?x)^( 6 | gdextension/extension_api\.json| 7 | gdextension/gdextension_interface\.h 8 | )$ 9 | 10 | repos: 11 | - repo: https://gitclone.com/github.com/pre-commit/mirrors-clang-format 12 | rev: v17.0.6 13 | hooks: 14 | - id: clang-format 15 | 16 | - repo: https://gitclone.com/github.com/astral-sh/ruff-pre-commit 17 | rev: v0.4.4 18 | hooks: 19 | - id: ruff 20 | args: [--fix] 21 | - id: ruff-format 22 | 23 | - repo: https://gitclone.com/github.com/pre-commit/mirrors-mypy 24 | rev: v0.971 25 | hooks: 26 | - id: mypy 27 | files: \.py$ 28 | types_or: [text] 29 | 30 | - repo: https://gitclone.com/github.com/codespell-project/codespell 31 | rev: v2.3.0 32 | hooks: 33 | - id: codespell 34 | additional_dependencies: [tomli] 35 | 36 | - repo: local 37 | hooks: 38 | - id: copyright-headers 39 | name: copyright-headers 40 | language: python 41 | entry: python misc/scripts/copyright_headers.py 42 | files: \.(c|h)pp$ 43 | exclude: ^test/ 44 | 45 | - id: header-guards 46 | name: header-guards 47 | language: python 48 | entry: python misc/scripts/header_guards.py 49 | files: \.hpp$ 50 | exclude: ^test/ 51 | 52 | - id: file-format 53 | name: file-format 54 | language: python 55 | entry: python misc/scripts/file_format.py 56 | types_or: [text] 57 | 58 | - id: check-get-file-list 59 | name: check-get-file-list 60 | language: python 61 | entry: python misc/scripts/check_get_file_list.py 62 | pass_filenames: false 63 | always_run: true 64 | stages: [manual] 65 | -------------------------------------------------------------------------------- /LICENSE.md: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2023 citizenll 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Godot Flexbox Layout 2 | 3 |

4 | flex-container-demo 5 |

6 | 7 |

8 | Flexbox layout for Godot Engine 9 |

10 | 11 | ## New version2.0! 12 | Godot4.1 New Version Support, Enhanced User Experience, Just Like Native Components. 13 | 14 | ## Work in Progress 🧑‍💻 15 | 🎉 Support 4.1 now ! 16 | 17 | | Old Version | Link | 18 | |---------------- |-------------------------------------------------------------------- | 19 | | Godot 4.0 | [Click Here ✔️](https://github.com/citizenll/godot-flexbox/tree/4.0) | 20 | | Godot 3.5 | [Click Here ✔️](https://github.com/citizenll/godot-flexbox/tree/main) | 21 | 22 | This is a work in progress. It can be used with basic functionality, and has been tested on Windows and Android. 23 | 24 | ### Learn About Flexbox 25 | - [A Complete Guide to Flexbox](https://css-tricks.com/snippets/css/a-guide-to-flexbox/) 26 | - [Flexbox Froggy](https://flexboxfroggy.com/) 27 | 28 | ## Getting Started 29 | ### Installation 30 | - Get the latest release from the Godot Asset Library [here](https://godotengine.org/asset-library/asset/1811) 31 | - Clone the repository and copy the `addons` folder into your project 32 | 33 | ### Usage 34 | - Add the `FlexContainer` node to your scene 35 |

36 | flex-container-demo 37 |

38 | 39 | - Change the `FlexDirection` property in the inspector, and you will see the layout change. You can also change the child properties in the child inspector. 40 | 41 | ![inspector](./docs/flex-container-property.png)![inspector](./docs/flex-child-property.png) 42 | 43 | 44 | ## 45 | 46 | ## License 47 | ![](https://img.shields.io/badge/license-MIT-green) 48 | -------------------------------------------------------------------------------- /SConstruct: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | import os 3 | import sys 4 | 5 | from methods import print_error 6 | 7 | 8 | libname = "godot-flexbox" 9 | projectdir = "godot-flexbox" 10 | 11 | localEnv = Environment(tools=["default"], PLATFORM="") 12 | 13 | customs = ["custom.py"] 14 | customs = [os.path.abspath(path) for path in customs] 15 | 16 | opts = Variables(customs, ARGUMENTS) 17 | opts.Update(localEnv) 18 | 19 | Help(opts.GenerateHelpText(localEnv)) 20 | 21 | def add_sources(sources, dir, extension): 22 | for f in os.listdir(dir): 23 | if f.endswith("." + extension): 24 | sources.append(dir + "/" + f) 25 | 26 | env = localEnv.Clone() 27 | 28 | submodule_initialized = False 29 | dir_name = 'godot-cpp' 30 | if os.path.isdir(dir_name): 31 | if os.listdir(dir_name): 32 | submodule_initialized = True 33 | 34 | if not submodule_initialized: 35 | print_error("""godot-cpp is not available within this folder, as Git submodules haven't been initialized. 36 | Run the following command to download godot-cpp: 37 | 38 | git submodule update --init --recursive""") 39 | sys.exit(1) 40 | 41 | env = SConscript("godot-cpp/SConstruct", {"env": env, "customs": customs}) 42 | 43 | env.Append(CPPPATH=["src/"]) 44 | sources = [] 45 | add_sources(sources, "src", "cpp") 46 | add_sources(sources, "src/yoga", "cpp") 47 | add_sources(sources, "src/yoga/event", "cpp") 48 | 49 | if env["target"] in ["editor", "template_debug"]: 50 | try: 51 | doc_data = env.GodotCPPDocData("src/gen/doc_data.gen.cpp", source=Glob("doc_classes/*.xml")) 52 | sources.append(doc_data) 53 | except AttributeError: 54 | print("Not including class reference as we're targeting a pre-4.3 baseline.") 55 | 56 | file = "{}{}{}".format(libname, env["suffix"], env["SHLIBSUFFIX"]) 57 | filepath = "" 58 | 59 | if env["platform"] == "macos" or env["platform"] == "ios": 60 | filepath = "{}.framework/".format(env["platform"]) 61 | file = "{}.{}.{}".format(libname, env["platform"], env["target"]) 62 | 63 | libraryfile = "bin/{}/{}{}".format(env["platform"], filepath, file) 64 | library = env.SharedLibrary( 65 | libraryfile, 66 | source=sources, 67 | ) 68 | 69 | copy = env.InstallAs("{}/bin/{}/{}lib{}".format(projectdir, env["platform"], filepath, file), library) 70 | 71 | default_args = [library, copy] 72 | Default(*default_args) 73 | -------------------------------------------------------------------------------- /addons/godot-flexbox/assets.gd: -------------------------------------------------------------------------------- 1 | class_name IconAssets 2 | 3 | static var icons_map 4 | static var current_theme 5 | static var color_conversion_map = {} 6 | 7 | const flex_icons_sources = [ 8 | "AlignContentAroundRowIcon", 9 | "AlignContentAroundColumnIcon", 10 | "AlignContentBetweenRowIcon", 11 | "AlignContentBetweenColumnIcon", 12 | "AlignContentCenterRowIcon", 13 | "AlignContentCenterColumnIcon", 14 | "AlignContentEndRowIcon", 15 | "AlignContentEndColumnIcon", 16 | "AlignContentStartRowIcon", 17 | "AlignContentStartColumnIcon", 18 | "AlignContentStretchRowIcon", 19 | "AlignContentStretchColumnIcon", 20 | 21 | "AlignItemsBaselineColumnIcon", 22 | "AlignItemsBaselineRowIcon", 23 | "AlignItemsCenterColumnIcon", 24 | "AlignItemsCenterRowIcon", 25 | "AlignItemsEndColumnIcon", 26 | "AlignItemsEndRowIcon", 27 | "AlignItemsStartColumnIcon", 28 | "AlignItemsStartRowIcon", 29 | "AlignItemsStretchColumnIcon", 30 | "AlignItemsStretchRowIcon", 31 | 32 | "DisplayFlexRow", 33 | "DisplayFlexColumn", 34 | "ArrowReverseIcon", 35 | 36 | "FlexWrapNoWrapColumnIcon", 37 | "FlexWrapNoWrapRowIcon", 38 | "FlexWrapWrapColumnIcon", 39 | "FlexWrapWrapRowIcon", 40 | 41 | "JustifyContentCenterColumnIcon", 42 | "JustifyContentCenterRowIcon", 43 | "JustifyContentEndColumnIcon", 44 | "JustifyContentEndRowIcon", 45 | "JustifyContentSpaceAroundColumnIcon", 46 | "JustifyContentSpaceAroundRowIcon", 47 | "JustifyContentSpaceBetweenColumnIcon", 48 | "JustifyContentSpaceBetweenRowIcon", 49 | "JustifyContentSpaceEvenlyColumnIcon", 50 | "JustifyContentSpaceEvenlyRowIcon", 51 | "JustifyContentStartColumnIcon", 52 | "JustifyContentStartRowIcon", 53 | ] 54 | 55 | static func get_icon(icon:String): 56 | return icons_map[current_theme].get(icon) 57 | 58 | 59 | #maybe bugs here, map should be initial here 60 | static func generate_icons(dark_theme): 61 | if icons_map == null: 62 | icons_map = {} 63 | if icons_map.has(dark_theme): 64 | current_theme = dark_theme 65 | return 66 | if current_theme != dark_theme: 67 | current_theme = dark_theme 68 | icons_map[current_theme] = {} 69 | var icon_theme = "dark" if dark_theme else "light" 70 | for icon_name in flex_icons_sources: 71 | icons_map[current_theme][icon_name] = load("res://addons/godot-flexbox/assets/%s/%s.svg" % [icon_theme, icon_name]) 72 | 73 | 74 | static func add_conversion_color_pair(p_from_color:String, p_to_color:String): 75 | color_conversion_map[Color.html(p_from_color)] = Color.html(p_to_color) 76 | 77 | 78 | static func conversion_color_pairs(): 79 | color_conversion_map = {} 80 | add_conversion_color_pair("#d6d6d6", "#474747"); # Highlighted part 81 | add_conversion_color_pair("#474747", "#d6d6d6"); # Background part 82 | -------------------------------------------------------------------------------- /addons/godot-flexbox/assets/dark/AlignContentAroundColumnIcon.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /addons/godot-flexbox/assets/dark/AlignContentAroundColumnIcon.svg.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://d2l1kkssssaxp" 6 | path="res://.godot/imported/AlignContentAroundColumnIcon.svg-17b7bde393ab6adaa268b2798824d09b.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://addons/godot-flexbox/assets/dark/AlignContentAroundColumnIcon.svg" 14 | dest_files=["res://.godot/imported/AlignContentAroundColumnIcon.svg-17b7bde393ab6adaa268b2798824d09b.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | svg/scale=1.0 36 | editor/scale_with_editor_scale=false 37 | editor/convert_colors_with_editor_theme=false 38 | -------------------------------------------------------------------------------- /addons/godot-flexbox/assets/dark/AlignContentAroundRowIcon.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /addons/godot-flexbox/assets/dark/AlignContentAroundRowIcon.svg.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://cb1pyfu0vgkk1" 6 | path="res://.godot/imported/AlignContentAroundRowIcon.svg-cba31d3e2cb2814c6c9754f54ba99e3f.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://addons/godot-flexbox/assets/dark/AlignContentAroundRowIcon.svg" 14 | dest_files=["res://.godot/imported/AlignContentAroundRowIcon.svg-cba31d3e2cb2814c6c9754f54ba99e3f.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | svg/scale=1.0 36 | editor/scale_with_editor_scale=false 37 | editor/convert_colors_with_editor_theme=false 38 | -------------------------------------------------------------------------------- /addons/godot-flexbox/assets/dark/AlignContentBetweenColumnIcon.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /addons/godot-flexbox/assets/dark/AlignContentBetweenColumnIcon.svg.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://1tuprcke6b3q" 6 | path="res://.godot/imported/AlignContentBetweenColumnIcon.svg-9afaff8eb0d52c831e9744a6274140d2.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://addons/godot-flexbox/assets/dark/AlignContentBetweenColumnIcon.svg" 14 | dest_files=["res://.godot/imported/AlignContentBetweenColumnIcon.svg-9afaff8eb0d52c831e9744a6274140d2.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | svg/scale=1.0 36 | editor/scale_with_editor_scale=false 37 | editor/convert_colors_with_editor_theme=false 38 | -------------------------------------------------------------------------------- /addons/godot-flexbox/assets/dark/AlignContentBetweenRowIcon.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /addons/godot-flexbox/assets/dark/AlignContentBetweenRowIcon.svg.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://b3vvj6nsa3elh" 6 | path="res://.godot/imported/AlignContentBetweenRowIcon.svg-158985a6f23611020a314ec7766b2774.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://addons/godot-flexbox/assets/dark/AlignContentBetweenRowIcon.svg" 14 | dest_files=["res://.godot/imported/AlignContentBetweenRowIcon.svg-158985a6f23611020a314ec7766b2774.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | svg/scale=1.0 36 | editor/scale_with_editor_scale=false 37 | editor/convert_colors_with_editor_theme=false 38 | -------------------------------------------------------------------------------- /addons/godot-flexbox/assets/dark/AlignContentCenterColumnIcon.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /addons/godot-flexbox/assets/dark/AlignContentCenterColumnIcon.svg.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://clevjexvw81s2" 6 | path="res://.godot/imported/AlignContentCenterColumnIcon.svg-08aa103afcf470f41a749b0fb2d99d82.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://addons/godot-flexbox/assets/dark/AlignContentCenterColumnIcon.svg" 14 | dest_files=["res://.godot/imported/AlignContentCenterColumnIcon.svg-08aa103afcf470f41a749b0fb2d99d82.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | svg/scale=1.0 36 | editor/scale_with_editor_scale=false 37 | editor/convert_colors_with_editor_theme=false 38 | -------------------------------------------------------------------------------- /addons/godot-flexbox/assets/dark/AlignContentCenterRowIcon.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /addons/godot-flexbox/assets/dark/AlignContentCenterRowIcon.svg.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://cfh1fayri054d" 6 | path="res://.godot/imported/AlignContentCenterRowIcon.svg-b53ff1cff2db32cd9dbc50e9faa97318.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://addons/godot-flexbox/assets/dark/AlignContentCenterRowIcon.svg" 14 | dest_files=["res://.godot/imported/AlignContentCenterRowIcon.svg-b53ff1cff2db32cd9dbc50e9faa97318.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | svg/scale=1.0 36 | editor/scale_with_editor_scale=false 37 | editor/convert_colors_with_editor_theme=false 38 | -------------------------------------------------------------------------------- /addons/godot-flexbox/assets/dark/AlignContentEndColumnIcon.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /addons/godot-flexbox/assets/dark/AlignContentEndColumnIcon.svg.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://buai0bv8miqrx" 6 | path="res://.godot/imported/AlignContentEndColumnIcon.svg-05770fba0491527fd1aa0f93463055f7.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://addons/godot-flexbox/assets/dark/AlignContentEndColumnIcon.svg" 14 | dest_files=["res://.godot/imported/AlignContentEndColumnIcon.svg-05770fba0491527fd1aa0f93463055f7.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | svg/scale=1.0 36 | editor/scale_with_editor_scale=false 37 | editor/convert_colors_with_editor_theme=false 38 | -------------------------------------------------------------------------------- /addons/godot-flexbox/assets/dark/AlignContentEndRowIcon.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /addons/godot-flexbox/assets/dark/AlignContentEndRowIcon.svg.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://dpwkqbay3gfi7" 6 | path="res://.godot/imported/AlignContentEndRowIcon.svg-16c42695d544572c28c7a549c03ef6e5.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://addons/godot-flexbox/assets/dark/AlignContentEndRowIcon.svg" 14 | dest_files=["res://.godot/imported/AlignContentEndRowIcon.svg-16c42695d544572c28c7a549c03ef6e5.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | svg/scale=1.0 36 | editor/scale_with_editor_scale=false 37 | editor/convert_colors_with_editor_theme=false 38 | -------------------------------------------------------------------------------- /addons/godot-flexbox/assets/dark/AlignContentStartColumnIcon.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /addons/godot-flexbox/assets/dark/AlignContentStartColumnIcon.svg.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://bgh1u6p45ydad" 6 | path="res://.godot/imported/AlignContentStartColumnIcon.svg-c7a947a2f05d8cac15b8ee078ffcd394.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://addons/godot-flexbox/assets/dark/AlignContentStartColumnIcon.svg" 14 | dest_files=["res://.godot/imported/AlignContentStartColumnIcon.svg-c7a947a2f05d8cac15b8ee078ffcd394.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | svg/scale=1.0 36 | editor/scale_with_editor_scale=false 37 | editor/convert_colors_with_editor_theme=false 38 | -------------------------------------------------------------------------------- /addons/godot-flexbox/assets/dark/AlignContentStartRowIcon.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /addons/godot-flexbox/assets/dark/AlignContentStartRowIcon.svg.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://b2hof4hdg1idm" 6 | path="res://.godot/imported/AlignContentStartRowIcon.svg-87b04e46a18453a15fb124940ed848bf.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://addons/godot-flexbox/assets/dark/AlignContentStartRowIcon.svg" 14 | dest_files=["res://.godot/imported/AlignContentStartRowIcon.svg-87b04e46a18453a15fb124940ed848bf.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | svg/scale=1.0 36 | editor/scale_with_editor_scale=false 37 | editor/convert_colors_with_editor_theme=false 38 | -------------------------------------------------------------------------------- /addons/godot-flexbox/assets/dark/AlignContentStretchColumnIcon.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /addons/godot-flexbox/assets/dark/AlignContentStretchColumnIcon.svg.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://cn28p8262kj8c" 6 | path="res://.godot/imported/AlignContentStretchColumnIcon.svg-2138f6a1dd3cd0e6c36dc134e4b05be4.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://addons/godot-flexbox/assets/dark/AlignContentStretchColumnIcon.svg" 14 | dest_files=["res://.godot/imported/AlignContentStretchColumnIcon.svg-2138f6a1dd3cd0e6c36dc134e4b05be4.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | svg/scale=1.0 36 | editor/scale_with_editor_scale=false 37 | editor/convert_colors_with_editor_theme=false 38 | -------------------------------------------------------------------------------- /addons/godot-flexbox/assets/dark/AlignContentStretchRowIcon.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /addons/godot-flexbox/assets/dark/AlignContentStretchRowIcon.svg.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://mjhhl7uu0oe4" 6 | path="res://.godot/imported/AlignContentStretchRowIcon.svg-a266e80aa9bb8b02b559638407561029.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://addons/godot-flexbox/assets/dark/AlignContentStretchRowIcon.svg" 14 | dest_files=["res://.godot/imported/AlignContentStretchRowIcon.svg-a266e80aa9bb8b02b559638407561029.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | svg/scale=1.0 36 | editor/scale_with_editor_scale=false 37 | editor/convert_colors_with_editor_theme=false 38 | -------------------------------------------------------------------------------- /addons/godot-flexbox/assets/dark/AlignItemsBaselineColumnIcon.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /addons/godot-flexbox/assets/dark/AlignItemsBaselineColumnIcon.svg.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://cmyap54y4yo35" 6 | path="res://.godot/imported/AlignItemsBaselineColumnIcon.svg-12db9ba8b1c5af2f67b4496f15d2a1b5.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://addons/godot-flexbox/assets/dark/AlignItemsBaselineColumnIcon.svg" 14 | dest_files=["res://.godot/imported/AlignItemsBaselineColumnIcon.svg-12db9ba8b1c5af2f67b4496f15d2a1b5.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | svg/scale=1.0 36 | editor/scale_with_editor_scale=false 37 | editor/convert_colors_with_editor_theme=false 38 | -------------------------------------------------------------------------------- /addons/godot-flexbox/assets/dark/AlignItemsBaselineRowIcon.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /addons/godot-flexbox/assets/dark/AlignItemsBaselineRowIcon.svg.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://daysqt8ngikir" 6 | path="res://.godot/imported/AlignItemsBaselineRowIcon.svg-ee5f5f80c57ab0b9c1bb8a5acf7a7ff6.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://addons/godot-flexbox/assets/dark/AlignItemsBaselineRowIcon.svg" 14 | dest_files=["res://.godot/imported/AlignItemsBaselineRowIcon.svg-ee5f5f80c57ab0b9c1bb8a5acf7a7ff6.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | svg/scale=1.0 36 | editor/scale_with_editor_scale=false 37 | editor/convert_colors_with_editor_theme=false 38 | -------------------------------------------------------------------------------- /addons/godot-flexbox/assets/dark/AlignItemsCenterColumnIcon.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /addons/godot-flexbox/assets/dark/AlignItemsCenterColumnIcon.svg.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://i3yof2smssw7" 6 | path="res://.godot/imported/AlignItemsCenterColumnIcon.svg-ab2ddd42e3b55aa9dcfb797f6664ebbf.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://addons/godot-flexbox/assets/dark/AlignItemsCenterColumnIcon.svg" 14 | dest_files=["res://.godot/imported/AlignItemsCenterColumnIcon.svg-ab2ddd42e3b55aa9dcfb797f6664ebbf.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | svg/scale=1.0 36 | editor/scale_with_editor_scale=false 37 | editor/convert_colors_with_editor_theme=false 38 | -------------------------------------------------------------------------------- /addons/godot-flexbox/assets/dark/AlignItemsCenterRowIcon.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /addons/godot-flexbox/assets/dark/AlignItemsCenterRowIcon.svg.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://dv74mug5v87k6" 6 | path="res://.godot/imported/AlignItemsCenterRowIcon.svg-c0171f6e84379dae8f5d5cca5e70651b.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://addons/godot-flexbox/assets/dark/AlignItemsCenterRowIcon.svg" 14 | dest_files=["res://.godot/imported/AlignItemsCenterRowIcon.svg-c0171f6e84379dae8f5d5cca5e70651b.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | svg/scale=1.0 36 | editor/scale_with_editor_scale=false 37 | editor/convert_colors_with_editor_theme=false 38 | -------------------------------------------------------------------------------- /addons/godot-flexbox/assets/dark/AlignItemsEndColumnIcon.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /addons/godot-flexbox/assets/dark/AlignItemsEndColumnIcon.svg.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://cv0qfpmcerq8t" 6 | path="res://.godot/imported/AlignItemsEndColumnIcon.svg-0b1bec61efada17b6ef38f636a37118d.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://addons/godot-flexbox/assets/dark/AlignItemsEndColumnIcon.svg" 14 | dest_files=["res://.godot/imported/AlignItemsEndColumnIcon.svg-0b1bec61efada17b6ef38f636a37118d.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | svg/scale=1.0 36 | editor/scale_with_editor_scale=false 37 | editor/convert_colors_with_editor_theme=false 38 | -------------------------------------------------------------------------------- /addons/godot-flexbox/assets/dark/AlignItemsEndRowIcon.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /addons/godot-flexbox/assets/dark/AlignItemsEndRowIcon.svg.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://uyy8l6dk5r4k" 6 | path="res://.godot/imported/AlignItemsEndRowIcon.svg-78e2def3804324657d53b0434695fc5d.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://addons/godot-flexbox/assets/dark/AlignItemsEndRowIcon.svg" 14 | dest_files=["res://.godot/imported/AlignItemsEndRowIcon.svg-78e2def3804324657d53b0434695fc5d.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | svg/scale=1.0 36 | editor/scale_with_editor_scale=false 37 | editor/convert_colors_with_editor_theme=false 38 | -------------------------------------------------------------------------------- /addons/godot-flexbox/assets/dark/AlignItemsStartColumnIcon.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /addons/godot-flexbox/assets/dark/AlignItemsStartColumnIcon.svg.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://fwuvoi0hdms0" 6 | path="res://.godot/imported/AlignItemsStartColumnIcon.svg-b03da1dff93ac7771c712ddf441e5466.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://addons/godot-flexbox/assets/dark/AlignItemsStartColumnIcon.svg" 14 | dest_files=["res://.godot/imported/AlignItemsStartColumnIcon.svg-b03da1dff93ac7771c712ddf441e5466.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | svg/scale=1.0 36 | editor/scale_with_editor_scale=false 37 | editor/convert_colors_with_editor_theme=false 38 | -------------------------------------------------------------------------------- /addons/godot-flexbox/assets/dark/AlignItemsStartRowIcon.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /addons/godot-flexbox/assets/dark/AlignItemsStartRowIcon.svg.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://csb7tfc5p5bhm" 6 | path="res://.godot/imported/AlignItemsStartRowIcon.svg-2c1c6961d68a00a806c5094555410a31.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://addons/godot-flexbox/assets/dark/AlignItemsStartRowIcon.svg" 14 | dest_files=["res://.godot/imported/AlignItemsStartRowIcon.svg-2c1c6961d68a00a806c5094555410a31.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | svg/scale=1.0 36 | editor/scale_with_editor_scale=false 37 | editor/convert_colors_with_editor_theme=false 38 | -------------------------------------------------------------------------------- /addons/godot-flexbox/assets/dark/AlignItemsStretchColumnIcon.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /addons/godot-flexbox/assets/dark/AlignItemsStretchColumnIcon.svg.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://cf81mj2tgw2b5" 6 | path="res://.godot/imported/AlignItemsStretchColumnIcon.svg-ecf2a24725ab2745508c65d0c3fa73a7.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://addons/godot-flexbox/assets/dark/AlignItemsStretchColumnIcon.svg" 14 | dest_files=["res://.godot/imported/AlignItemsStretchColumnIcon.svg-ecf2a24725ab2745508c65d0c3fa73a7.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | svg/scale=1.0 36 | editor/scale_with_editor_scale=false 37 | editor/convert_colors_with_editor_theme=false 38 | -------------------------------------------------------------------------------- /addons/godot-flexbox/assets/dark/AlignItemsStretchRowIcon.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /addons/godot-flexbox/assets/dark/AlignItemsStretchRowIcon.svg.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://qw8gc5s41jag" 6 | path="res://.godot/imported/AlignItemsStretchRowIcon.svg-9b7b56f1bb1014d12909ed7e17069829.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://addons/godot-flexbox/assets/dark/AlignItemsStretchRowIcon.svg" 14 | dest_files=["res://.godot/imported/AlignItemsStretchRowIcon.svg-9b7b56f1bb1014d12909ed7e17069829.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | svg/scale=1.0 36 | editor/scale_with_editor_scale=false 37 | editor/convert_colors_with_editor_theme=false 38 | -------------------------------------------------------------------------------- /addons/godot-flexbox/assets/dark/ArrowReverseIcon.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /addons/godot-flexbox/assets/dark/ArrowReverseIcon.svg.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://c5lajpvqkfcv2" 6 | path="res://.godot/imported/ArrowReverseIcon.svg-693bd0370d26679b76ee3608e9c4045e.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://addons/godot-flexbox/assets/dark/ArrowReverseIcon.svg" 14 | dest_files=["res://.godot/imported/ArrowReverseIcon.svg-693bd0370d26679b76ee3608e9c4045e.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | svg/scale=1.0 36 | editor/scale_with_editor_scale=false 37 | editor/convert_colors_with_editor_theme=false 38 | -------------------------------------------------------------------------------- /addons/godot-flexbox/assets/dark/DisplayFlexColumn.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /addons/godot-flexbox/assets/dark/DisplayFlexColumn.svg.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://c8x3hek74tddw" 6 | path="res://.godot/imported/DisplayFlexColumn.svg-9fb088e3aea8789b5fbc455f02b614a7.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://addons/godot-flexbox/assets/dark/DisplayFlexColumn.svg" 14 | dest_files=["res://.godot/imported/DisplayFlexColumn.svg-9fb088e3aea8789b5fbc455f02b614a7.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | svg/scale=1.0 36 | editor/scale_with_editor_scale=false 37 | editor/convert_colors_with_editor_theme=false 38 | -------------------------------------------------------------------------------- /addons/godot-flexbox/assets/dark/DisplayFlexRow.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /addons/godot-flexbox/assets/dark/DisplayFlexRow.svg.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://b2xodbt05umvh" 6 | path="res://.godot/imported/DisplayFlexRow.svg-ef4eb78c813528e12d55e4b37a753a01.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://addons/godot-flexbox/assets/dark/DisplayFlexRow.svg" 14 | dest_files=["res://.godot/imported/DisplayFlexRow.svg-ef4eb78c813528e12d55e4b37a753a01.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | svg/scale=1.0 36 | editor/scale_with_editor_scale=false 37 | editor/convert_colors_with_editor_theme=false 38 | -------------------------------------------------------------------------------- /addons/godot-flexbox/assets/dark/FlexWrapNoWrapColumnIcon.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /addons/godot-flexbox/assets/dark/FlexWrapNoWrapColumnIcon.svg.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://cfpwpkwc4qfsc" 6 | path="res://.godot/imported/FlexWrapNoWrapColumnIcon.svg-1a0c68d7c077fa1651c1c62b2c35e0f5.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://addons/godot-flexbox/assets/dark/FlexWrapNoWrapColumnIcon.svg" 14 | dest_files=["res://.godot/imported/FlexWrapNoWrapColumnIcon.svg-1a0c68d7c077fa1651c1c62b2c35e0f5.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | svg/scale=1.0 36 | editor/scale_with_editor_scale=false 37 | editor/convert_colors_with_editor_theme=false 38 | -------------------------------------------------------------------------------- /addons/godot-flexbox/assets/dark/FlexWrapNoWrapRowIcon.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /addons/godot-flexbox/assets/dark/FlexWrapNoWrapRowIcon.svg.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://dqhbh3ko4igdy" 6 | path="res://.godot/imported/FlexWrapNoWrapRowIcon.svg-6a6e67f3589c8062f614346cb3b32d5a.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://addons/godot-flexbox/assets/dark/FlexWrapNoWrapRowIcon.svg" 14 | dest_files=["res://.godot/imported/FlexWrapNoWrapRowIcon.svg-6a6e67f3589c8062f614346cb3b32d5a.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | svg/scale=1.0 36 | editor/scale_with_editor_scale=false 37 | editor/convert_colors_with_editor_theme=false 38 | -------------------------------------------------------------------------------- /addons/godot-flexbox/assets/dark/FlexWrapWrapColumnIcon.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /addons/godot-flexbox/assets/dark/FlexWrapWrapColumnIcon.svg.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://shf5a4lgmjli" 6 | path="res://.godot/imported/FlexWrapWrapColumnIcon.svg-9cc96abc98f89b3767c8fffe67a41432.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://addons/godot-flexbox/assets/dark/FlexWrapWrapColumnIcon.svg" 14 | dest_files=["res://.godot/imported/FlexWrapWrapColumnIcon.svg-9cc96abc98f89b3767c8fffe67a41432.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | svg/scale=1.0 36 | editor/scale_with_editor_scale=false 37 | editor/convert_colors_with_editor_theme=false 38 | -------------------------------------------------------------------------------- /addons/godot-flexbox/assets/dark/FlexWrapWrapRowIcon.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /addons/godot-flexbox/assets/dark/FlexWrapWrapRowIcon.svg.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://8n0yyxrr1pno" 6 | path="res://.godot/imported/FlexWrapWrapRowIcon.svg-0f7b98c48acc1634f334dae13a7ee95b.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://addons/godot-flexbox/assets/dark/FlexWrapWrapRowIcon.svg" 14 | dest_files=["res://.godot/imported/FlexWrapWrapRowIcon.svg-0f7b98c48acc1634f334dae13a7ee95b.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | svg/scale=1.0 36 | editor/scale_with_editor_scale=false 37 | editor/convert_colors_with_editor_theme=false 38 | -------------------------------------------------------------------------------- /addons/godot-flexbox/assets/dark/JustifyContentCenterColumnIcon.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /addons/godot-flexbox/assets/dark/JustifyContentCenterColumnIcon.svg.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://bsx27gd0ja8lw" 6 | path="res://.godot/imported/JustifyContentCenterColumnIcon.svg-accf8e59f9796ffb1efa272c77c23e10.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://addons/godot-flexbox/assets/dark/JustifyContentCenterColumnIcon.svg" 14 | dest_files=["res://.godot/imported/JustifyContentCenterColumnIcon.svg-accf8e59f9796ffb1efa272c77c23e10.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | svg/scale=1.0 36 | editor/scale_with_editor_scale=false 37 | editor/convert_colors_with_editor_theme=false 38 | -------------------------------------------------------------------------------- /addons/godot-flexbox/assets/dark/JustifyContentCenterRowIcon.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /addons/godot-flexbox/assets/dark/JustifyContentCenterRowIcon.svg.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://bi5kl220r8lv0" 6 | path="res://.godot/imported/JustifyContentCenterRowIcon.svg-3e0a34413a4f54b2eadecd6a77c23b7c.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://addons/godot-flexbox/assets/dark/JustifyContentCenterRowIcon.svg" 14 | dest_files=["res://.godot/imported/JustifyContentCenterRowIcon.svg-3e0a34413a4f54b2eadecd6a77c23b7c.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | svg/scale=1.0 36 | editor/scale_with_editor_scale=false 37 | editor/convert_colors_with_editor_theme=false 38 | -------------------------------------------------------------------------------- /addons/godot-flexbox/assets/dark/JustifyContentEndColumnIcon.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /addons/godot-flexbox/assets/dark/JustifyContentEndColumnIcon.svg.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://dljvexaavrypt" 6 | path="res://.godot/imported/JustifyContentEndColumnIcon.svg-24bea85f06d9bb753047b623509c4165.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://addons/godot-flexbox/assets/dark/JustifyContentEndColumnIcon.svg" 14 | dest_files=["res://.godot/imported/JustifyContentEndColumnIcon.svg-24bea85f06d9bb753047b623509c4165.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | svg/scale=1.0 36 | editor/scale_with_editor_scale=false 37 | editor/convert_colors_with_editor_theme=false 38 | -------------------------------------------------------------------------------- /addons/godot-flexbox/assets/dark/JustifyContentEndRowIcon.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /addons/godot-flexbox/assets/dark/JustifyContentEndRowIcon.svg.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://ddqsn7agtl6pn" 6 | path="res://.godot/imported/JustifyContentEndRowIcon.svg-ce50017de708c2f87254fa5076d636a0.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://addons/godot-flexbox/assets/dark/JustifyContentEndRowIcon.svg" 14 | dest_files=["res://.godot/imported/JustifyContentEndRowIcon.svg-ce50017de708c2f87254fa5076d636a0.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | svg/scale=1.0 36 | editor/scale_with_editor_scale=false 37 | editor/convert_colors_with_editor_theme=false 38 | -------------------------------------------------------------------------------- /addons/godot-flexbox/assets/dark/JustifyContentSpaceAroundColumnIcon.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /addons/godot-flexbox/assets/dark/JustifyContentSpaceAroundColumnIcon.svg.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://pu6etw6b3oba" 6 | path="res://.godot/imported/JustifyContentSpaceAroundColumnIcon.svg-bdb07b48ea99ef0796b795f21084c1c5.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://addons/godot-flexbox/assets/dark/JustifyContentSpaceAroundColumnIcon.svg" 14 | dest_files=["res://.godot/imported/JustifyContentSpaceAroundColumnIcon.svg-bdb07b48ea99ef0796b795f21084c1c5.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | svg/scale=1.0 36 | editor/scale_with_editor_scale=false 37 | editor/convert_colors_with_editor_theme=false 38 | -------------------------------------------------------------------------------- /addons/godot-flexbox/assets/dark/JustifyContentSpaceAroundRowIcon.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /addons/godot-flexbox/assets/dark/JustifyContentSpaceAroundRowIcon.svg.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://be7eq58hdnrc6" 6 | path="res://.godot/imported/JustifyContentSpaceAroundRowIcon.svg-977089142de0b372b82d9e3ac5adc4d2.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://addons/godot-flexbox/assets/dark/JustifyContentSpaceAroundRowIcon.svg" 14 | dest_files=["res://.godot/imported/JustifyContentSpaceAroundRowIcon.svg-977089142de0b372b82d9e3ac5adc4d2.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | svg/scale=1.0 36 | editor/scale_with_editor_scale=false 37 | editor/convert_colors_with_editor_theme=false 38 | -------------------------------------------------------------------------------- /addons/godot-flexbox/assets/dark/JustifyContentSpaceBetweenColumnIcon.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /addons/godot-flexbox/assets/dark/JustifyContentSpaceBetweenColumnIcon.svg.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://t3r0ja1j3ipq" 6 | path="res://.godot/imported/JustifyContentSpaceBetweenColumnIcon.svg-d4fa6a9009ecb6fc68cd7018813cabd8.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://addons/godot-flexbox/assets/dark/JustifyContentSpaceBetweenColumnIcon.svg" 14 | dest_files=["res://.godot/imported/JustifyContentSpaceBetweenColumnIcon.svg-d4fa6a9009ecb6fc68cd7018813cabd8.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | svg/scale=1.0 36 | editor/scale_with_editor_scale=false 37 | editor/convert_colors_with_editor_theme=false 38 | -------------------------------------------------------------------------------- /addons/godot-flexbox/assets/dark/JustifyContentSpaceBetweenRowIcon.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /addons/godot-flexbox/assets/dark/JustifyContentSpaceBetweenRowIcon.svg.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://nc21g00imy6k" 6 | path="res://.godot/imported/JustifyContentSpaceBetweenRowIcon.svg-51ac13a232d207876cb9aed9df479a5a.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://addons/godot-flexbox/assets/dark/JustifyContentSpaceBetweenRowIcon.svg" 14 | dest_files=["res://.godot/imported/JustifyContentSpaceBetweenRowIcon.svg-51ac13a232d207876cb9aed9df479a5a.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | svg/scale=1.0 36 | editor/scale_with_editor_scale=false 37 | editor/convert_colors_with_editor_theme=false 38 | -------------------------------------------------------------------------------- /addons/godot-flexbox/assets/dark/JustifyContentSpaceBetweenRowReverseIcon.svg.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://cvs4qsfsqpvdo" 6 | path="res://.godot/imported/JustifyContentSpaceBetweenRowReverseIcon.svg-ea218c8437e61b23243e4acc0ffdd760.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://addons/godot-flexbox/assets/dark/JustifyContentSpaceBetweenRowReverseIcon.svg" 14 | dest_files=["res://.godot/imported/JustifyContentSpaceBetweenRowReverseIcon.svg-ea218c8437e61b23243e4acc0ffdd760.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | svg/scale=1.0 36 | editor/scale_with_editor_scale=false 37 | editor/convert_colors_with_editor_theme=false 38 | -------------------------------------------------------------------------------- /addons/godot-flexbox/assets/dark/JustifyContentSpaceEvenlyColumnIcon.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /addons/godot-flexbox/assets/dark/JustifyContentSpaceEvenlyColumnIcon.svg.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://6cpoxpuuluhq" 6 | path="res://.godot/imported/JustifyContentSpaceEvenlyColumnIcon.svg-828d3d44bb7e20a750fc80286a4c29a1.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://addons/godot-flexbox/assets/dark/JustifyContentSpaceEvenlyColumnIcon.svg" 14 | dest_files=["res://.godot/imported/JustifyContentSpaceEvenlyColumnIcon.svg-828d3d44bb7e20a750fc80286a4c29a1.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | svg/scale=1.0 36 | editor/scale_with_editor_scale=false 37 | editor/convert_colors_with_editor_theme=false 38 | -------------------------------------------------------------------------------- /addons/godot-flexbox/assets/dark/JustifyContentSpaceEvenlyRowIcon.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /addons/godot-flexbox/assets/dark/JustifyContentSpaceEvenlyRowIcon.svg.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://hy2b0jjtf120" 6 | path="res://.godot/imported/JustifyContentSpaceEvenlyRowIcon.svg-55792a1a344c0bae9dfa4608ef3c49af.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://addons/godot-flexbox/assets/dark/JustifyContentSpaceEvenlyRowIcon.svg" 14 | dest_files=["res://.godot/imported/JustifyContentSpaceEvenlyRowIcon.svg-55792a1a344c0bae9dfa4608ef3c49af.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | svg/scale=1.0 36 | editor/scale_with_editor_scale=false 37 | editor/convert_colors_with_editor_theme=false 38 | -------------------------------------------------------------------------------- /addons/godot-flexbox/assets/dark/JustifyContentStartColumnIcon.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /addons/godot-flexbox/assets/dark/JustifyContentStartColumnIcon.svg.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://cgtp50lsbar7i" 6 | path="res://.godot/imported/JustifyContentStartColumnIcon.svg-e155c63c747389449d93300660a29fb2.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://addons/godot-flexbox/assets/dark/JustifyContentStartColumnIcon.svg" 14 | dest_files=["res://.godot/imported/JustifyContentStartColumnIcon.svg-e155c63c747389449d93300660a29fb2.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | svg/scale=1.0 36 | editor/scale_with_editor_scale=false 37 | editor/convert_colors_with_editor_theme=false 38 | -------------------------------------------------------------------------------- /addons/godot-flexbox/assets/dark/JustifyContentStartRowIcon.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /addons/godot-flexbox/assets/dark/JustifyContentStartRowIcon.svg.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://d4kospxdnt1ss" 6 | path="res://.godot/imported/JustifyContentStartRowIcon.svg-ed628b132e62e7d60864ebcf338cc71e.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://addons/godot-flexbox/assets/dark/JustifyContentStartRowIcon.svg" 14 | dest_files=["res://.godot/imported/JustifyContentStartRowIcon.svg-ed628b132e62e7d60864ebcf338cc71e.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | svg/scale=1.0 36 | editor/scale_with_editor_scale=false 37 | editor/convert_colors_with_editor_theme=false 38 | -------------------------------------------------------------------------------- /addons/godot-flexbox/assets/light/AlignContentAroundColumnIcon.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /addons/godot-flexbox/assets/light/AlignContentAroundColumnIcon.svg.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://dwf2gmw5ef1a6" 6 | path="res://.godot/imported/AlignContentAroundColumnIcon.svg-3ea92ccb0a5e10d911d8c6fad36c2755.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://addons/godot-flexbox/assets/light/AlignContentAroundColumnIcon.svg" 14 | dest_files=["res://.godot/imported/AlignContentAroundColumnIcon.svg-3ea92ccb0a5e10d911d8c6fad36c2755.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | svg/scale=1.0 36 | editor/scale_with_editor_scale=false 37 | editor/convert_colors_with_editor_theme=false 38 | -------------------------------------------------------------------------------- /addons/godot-flexbox/assets/light/AlignContentAroundRowIcon.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /addons/godot-flexbox/assets/light/AlignContentAroundRowIcon.svg.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://0o1dl3dq7r0q" 6 | path="res://.godot/imported/AlignContentAroundRowIcon.svg-a4a15f8d1b096bf115f3f8045152e9a5.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://addons/godot-flexbox/assets/light/AlignContentAroundRowIcon.svg" 14 | dest_files=["res://.godot/imported/AlignContentAroundRowIcon.svg-a4a15f8d1b096bf115f3f8045152e9a5.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | svg/scale=1.0 36 | editor/scale_with_editor_scale=false 37 | editor/convert_colors_with_editor_theme=false 38 | -------------------------------------------------------------------------------- /addons/godot-flexbox/assets/light/AlignContentBetweenColumnIcon.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /addons/godot-flexbox/assets/light/AlignContentBetweenColumnIcon.svg.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://c3s1xi2ljjm0f" 6 | path="res://.godot/imported/AlignContentBetweenColumnIcon.svg-bbcbfdd5124dbdf8a84cb94e56e12d36.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://addons/godot-flexbox/assets/light/AlignContentBetweenColumnIcon.svg" 14 | dest_files=["res://.godot/imported/AlignContentBetweenColumnIcon.svg-bbcbfdd5124dbdf8a84cb94e56e12d36.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | svg/scale=1.0 36 | editor/scale_with_editor_scale=false 37 | editor/convert_colors_with_editor_theme=false 38 | -------------------------------------------------------------------------------- /addons/godot-flexbox/assets/light/AlignContentBetweenRowIcon.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /addons/godot-flexbox/assets/light/AlignContentBetweenRowIcon.svg.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://ejmot13uuytk" 6 | path="res://.godot/imported/AlignContentBetweenRowIcon.svg-df085cce35426975e3ef1d29dcd64b20.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://addons/godot-flexbox/assets/light/AlignContentBetweenRowIcon.svg" 14 | dest_files=["res://.godot/imported/AlignContentBetweenRowIcon.svg-df085cce35426975e3ef1d29dcd64b20.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | svg/scale=1.0 36 | editor/scale_with_editor_scale=false 37 | editor/convert_colors_with_editor_theme=false 38 | -------------------------------------------------------------------------------- /addons/godot-flexbox/assets/light/AlignContentCenterColumnIcon.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /addons/godot-flexbox/assets/light/AlignContentCenterColumnIcon.svg.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://vlre2d4yi842" 6 | path="res://.godot/imported/AlignContentCenterColumnIcon.svg-9451ddf6211502b718814951b3b90bea.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://addons/godot-flexbox/assets/light/AlignContentCenterColumnIcon.svg" 14 | dest_files=["res://.godot/imported/AlignContentCenterColumnIcon.svg-9451ddf6211502b718814951b3b90bea.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | svg/scale=1.0 36 | editor/scale_with_editor_scale=false 37 | editor/convert_colors_with_editor_theme=false 38 | -------------------------------------------------------------------------------- /addons/godot-flexbox/assets/light/AlignContentCenterRowIcon.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /addons/godot-flexbox/assets/light/AlignContentCenterRowIcon.svg.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://12u57fprrlsf" 6 | path="res://.godot/imported/AlignContentCenterRowIcon.svg-7cc7d9074a68f1087717d62bbf28e09a.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://addons/godot-flexbox/assets/light/AlignContentCenterRowIcon.svg" 14 | dest_files=["res://.godot/imported/AlignContentCenterRowIcon.svg-7cc7d9074a68f1087717d62bbf28e09a.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | svg/scale=1.0 36 | editor/scale_with_editor_scale=false 37 | editor/convert_colors_with_editor_theme=false 38 | -------------------------------------------------------------------------------- /addons/godot-flexbox/assets/light/AlignContentEndColumnIcon.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /addons/godot-flexbox/assets/light/AlignContentEndColumnIcon.svg.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://cc7ilnsoah6ya" 6 | path="res://.godot/imported/AlignContentEndColumnIcon.svg-1243f80b28d6ba1248d2074ef8d6eb7a.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://addons/godot-flexbox/assets/light/AlignContentEndColumnIcon.svg" 14 | dest_files=["res://.godot/imported/AlignContentEndColumnIcon.svg-1243f80b28d6ba1248d2074ef8d6eb7a.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | svg/scale=1.0 36 | editor/scale_with_editor_scale=false 37 | editor/convert_colors_with_editor_theme=false 38 | -------------------------------------------------------------------------------- /addons/godot-flexbox/assets/light/AlignContentEndRowIcon.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /addons/godot-flexbox/assets/light/AlignContentEndRowIcon.svg.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://c6spio46jyikj" 6 | path="res://.godot/imported/AlignContentEndRowIcon.svg-17dbdb69df46fc66bce931323d971c10.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://addons/godot-flexbox/assets/light/AlignContentEndRowIcon.svg" 14 | dest_files=["res://.godot/imported/AlignContentEndRowIcon.svg-17dbdb69df46fc66bce931323d971c10.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | svg/scale=1.0 36 | editor/scale_with_editor_scale=false 37 | editor/convert_colors_with_editor_theme=false 38 | -------------------------------------------------------------------------------- /addons/godot-flexbox/assets/light/AlignContentStartColumnIcon.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /addons/godot-flexbox/assets/light/AlignContentStartColumnIcon.svg.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://bdd6j2o78lve" 6 | path="res://.godot/imported/AlignContentStartColumnIcon.svg-bde962a851687447e11ab92a23dce797.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://addons/godot-flexbox/assets/light/AlignContentStartColumnIcon.svg" 14 | dest_files=["res://.godot/imported/AlignContentStartColumnIcon.svg-bde962a851687447e11ab92a23dce797.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | svg/scale=1.0 36 | editor/scale_with_editor_scale=false 37 | editor/convert_colors_with_editor_theme=false 38 | -------------------------------------------------------------------------------- /addons/godot-flexbox/assets/light/AlignContentStartRowIcon.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /addons/godot-flexbox/assets/light/AlignContentStartRowIcon.svg.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://c5q3e5woxt5r8" 6 | path="res://.godot/imported/AlignContentStartRowIcon.svg-654c06687c8dd91fe18681e2bb4559fc.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://addons/godot-flexbox/assets/light/AlignContentStartRowIcon.svg" 14 | dest_files=["res://.godot/imported/AlignContentStartRowIcon.svg-654c06687c8dd91fe18681e2bb4559fc.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | svg/scale=1.0 36 | editor/scale_with_editor_scale=false 37 | editor/convert_colors_with_editor_theme=false 38 | -------------------------------------------------------------------------------- /addons/godot-flexbox/assets/light/AlignContentStretchColumnIcon.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /addons/godot-flexbox/assets/light/AlignContentStretchColumnIcon.svg.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://dgt2dmdb00ena" 6 | path="res://.godot/imported/AlignContentStretchColumnIcon.svg-1921be1743acca4b889db4406ef95a9c.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://addons/godot-flexbox/assets/light/AlignContentStretchColumnIcon.svg" 14 | dest_files=["res://.godot/imported/AlignContentStretchColumnIcon.svg-1921be1743acca4b889db4406ef95a9c.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | svg/scale=1.0 36 | editor/scale_with_editor_scale=false 37 | editor/convert_colors_with_editor_theme=false 38 | -------------------------------------------------------------------------------- /addons/godot-flexbox/assets/light/AlignContentStretchRowIcon.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /addons/godot-flexbox/assets/light/AlignContentStretchRowIcon.svg.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://c5iamewhnaiob" 6 | path="res://.godot/imported/AlignContentStretchRowIcon.svg-fadb6f7c1d0ae91835a95e57c2c4e422.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://addons/godot-flexbox/assets/light/AlignContentStretchRowIcon.svg" 14 | dest_files=["res://.godot/imported/AlignContentStretchRowIcon.svg-fadb6f7c1d0ae91835a95e57c2c4e422.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | svg/scale=1.0 36 | editor/scale_with_editor_scale=false 37 | editor/convert_colors_with_editor_theme=false 38 | -------------------------------------------------------------------------------- /addons/godot-flexbox/assets/light/AlignItemsBaselineColumnIcon.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /addons/godot-flexbox/assets/light/AlignItemsBaselineColumnIcon.svg.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://douc6t0i76xpb" 6 | path="res://.godot/imported/AlignItemsBaselineColumnIcon.svg-ef60cd22084bb2282f76f6a33bd94d69.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://addons/godot-flexbox/assets/light/AlignItemsBaselineColumnIcon.svg" 14 | dest_files=["res://.godot/imported/AlignItemsBaselineColumnIcon.svg-ef60cd22084bb2282f76f6a33bd94d69.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | svg/scale=1.0 36 | editor/scale_with_editor_scale=false 37 | editor/convert_colors_with_editor_theme=false 38 | -------------------------------------------------------------------------------- /addons/godot-flexbox/assets/light/AlignItemsBaselineRowIcon.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /addons/godot-flexbox/assets/light/AlignItemsBaselineRowIcon.svg.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://cmyqq61xro30v" 6 | path="res://.godot/imported/AlignItemsBaselineRowIcon.svg-1c7350620fa51fb2e3054a3efbc058f4.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://addons/godot-flexbox/assets/light/AlignItemsBaselineRowIcon.svg" 14 | dest_files=["res://.godot/imported/AlignItemsBaselineRowIcon.svg-1c7350620fa51fb2e3054a3efbc058f4.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | svg/scale=1.0 36 | editor/scale_with_editor_scale=false 37 | editor/convert_colors_with_editor_theme=false 38 | -------------------------------------------------------------------------------- /addons/godot-flexbox/assets/light/AlignItemsCenterColumnIcon.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /addons/godot-flexbox/assets/light/AlignItemsCenterColumnIcon.svg.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://bv1t4i51mmyuw" 6 | path="res://.godot/imported/AlignItemsCenterColumnIcon.svg-39679053db07d6e8788f63fe5ab47a5b.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://addons/godot-flexbox/assets/light/AlignItemsCenterColumnIcon.svg" 14 | dest_files=["res://.godot/imported/AlignItemsCenterColumnIcon.svg-39679053db07d6e8788f63fe5ab47a5b.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | svg/scale=1.0 36 | editor/scale_with_editor_scale=false 37 | editor/convert_colors_with_editor_theme=false 38 | -------------------------------------------------------------------------------- /addons/godot-flexbox/assets/light/AlignItemsCenterRowIcon.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /addons/godot-flexbox/assets/light/AlignItemsCenterRowIcon.svg.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://duoaus1q6obl6" 6 | path="res://.godot/imported/AlignItemsCenterRowIcon.svg-8c16e2fc5c1187b65c35367221ec857f.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://addons/godot-flexbox/assets/light/AlignItemsCenterRowIcon.svg" 14 | dest_files=["res://.godot/imported/AlignItemsCenterRowIcon.svg-8c16e2fc5c1187b65c35367221ec857f.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | svg/scale=1.0 36 | editor/scale_with_editor_scale=false 37 | editor/convert_colors_with_editor_theme=false 38 | -------------------------------------------------------------------------------- /addons/godot-flexbox/assets/light/AlignItemsEndColumnIcon.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /addons/godot-flexbox/assets/light/AlignItemsEndColumnIcon.svg.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://bnf0tuggk6dsq" 6 | path="res://.godot/imported/AlignItemsEndColumnIcon.svg-83a61ea4a0e19695198bcf92464355ee.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://addons/godot-flexbox/assets/light/AlignItemsEndColumnIcon.svg" 14 | dest_files=["res://.godot/imported/AlignItemsEndColumnIcon.svg-83a61ea4a0e19695198bcf92464355ee.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | svg/scale=1.0 36 | editor/scale_with_editor_scale=false 37 | editor/convert_colors_with_editor_theme=false 38 | -------------------------------------------------------------------------------- /addons/godot-flexbox/assets/light/AlignItemsEndRowIcon.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /addons/godot-flexbox/assets/light/AlignItemsEndRowIcon.svg.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://dbwiny8ijxiqd" 6 | path="res://.godot/imported/AlignItemsEndRowIcon.svg-1055863e9fd1b56e7d7cc6dac08865d2.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://addons/godot-flexbox/assets/light/AlignItemsEndRowIcon.svg" 14 | dest_files=["res://.godot/imported/AlignItemsEndRowIcon.svg-1055863e9fd1b56e7d7cc6dac08865d2.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | svg/scale=1.0 36 | editor/scale_with_editor_scale=false 37 | editor/convert_colors_with_editor_theme=false 38 | -------------------------------------------------------------------------------- /addons/godot-flexbox/assets/light/AlignItemsStartColumnIcon.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /addons/godot-flexbox/assets/light/AlignItemsStartColumnIcon.svg.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://fvtmxf6mivad" 6 | path="res://.godot/imported/AlignItemsStartColumnIcon.svg-aa652fd0edd7b240d3f4e4ea33f02800.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://addons/godot-flexbox/assets/light/AlignItemsStartColumnIcon.svg" 14 | dest_files=["res://.godot/imported/AlignItemsStartColumnIcon.svg-aa652fd0edd7b240d3f4e4ea33f02800.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | svg/scale=1.0 36 | editor/scale_with_editor_scale=false 37 | editor/convert_colors_with_editor_theme=false 38 | -------------------------------------------------------------------------------- /addons/godot-flexbox/assets/light/AlignItemsStartRowIcon.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /addons/godot-flexbox/assets/light/AlignItemsStartRowIcon.svg.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://bwdqqtveo4xi8" 6 | path="res://.godot/imported/AlignItemsStartRowIcon.svg-abb581aeb298ed6357897bf5bd185b45.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://addons/godot-flexbox/assets/light/AlignItemsStartRowIcon.svg" 14 | dest_files=["res://.godot/imported/AlignItemsStartRowIcon.svg-abb581aeb298ed6357897bf5bd185b45.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | svg/scale=1.0 36 | editor/scale_with_editor_scale=false 37 | editor/convert_colors_with_editor_theme=false 38 | -------------------------------------------------------------------------------- /addons/godot-flexbox/assets/light/AlignItemsStretchColumnIcon.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /addons/godot-flexbox/assets/light/AlignItemsStretchColumnIcon.svg.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://qvvegx8t7xaq" 6 | path="res://.godot/imported/AlignItemsStretchColumnIcon.svg-63b7a2726e18be64ae7c913f522b2dce.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://addons/godot-flexbox/assets/light/AlignItemsStretchColumnIcon.svg" 14 | dest_files=["res://.godot/imported/AlignItemsStretchColumnIcon.svg-63b7a2726e18be64ae7c913f522b2dce.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | svg/scale=1.0 36 | editor/scale_with_editor_scale=false 37 | editor/convert_colors_with_editor_theme=false 38 | -------------------------------------------------------------------------------- /addons/godot-flexbox/assets/light/AlignItemsStretchRowIcon.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /addons/godot-flexbox/assets/light/AlignItemsStretchRowIcon.svg.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://dpy2ak84quhbo" 6 | path="res://.godot/imported/AlignItemsStretchRowIcon.svg-db5ad2c2cbf0334cf61557c308632908.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://addons/godot-flexbox/assets/light/AlignItemsStretchRowIcon.svg" 14 | dest_files=["res://.godot/imported/AlignItemsStretchRowIcon.svg-db5ad2c2cbf0334cf61557c308632908.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | svg/scale=1.0 36 | editor/scale_with_editor_scale=false 37 | editor/convert_colors_with_editor_theme=false 38 | -------------------------------------------------------------------------------- /addons/godot-flexbox/assets/light/ArrowReverseIcon.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /addons/godot-flexbox/assets/light/ArrowReverseIcon.svg.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://chniyubocatpq" 6 | path="res://.godot/imported/ArrowReverseIcon.svg-3753ebed3e03bd38a747b235f0f283e7.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://addons/godot-flexbox/assets/light/ArrowReverseIcon.svg" 14 | dest_files=["res://.godot/imported/ArrowReverseIcon.svg-3753ebed3e03bd38a747b235f0f283e7.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | svg/scale=1.0 36 | editor/scale_with_editor_scale=false 37 | editor/convert_colors_with_editor_theme=false 38 | -------------------------------------------------------------------------------- /addons/godot-flexbox/assets/light/DisplayFlexColumn.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /addons/godot-flexbox/assets/light/DisplayFlexColumn.svg.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://cqnllhfyc4pk" 6 | path="res://.godot/imported/DisplayFlexColumn.svg-5a04fd917c6058c68b9b6265010d5332.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://addons/godot-flexbox/assets/light/DisplayFlexColumn.svg" 14 | dest_files=["res://.godot/imported/DisplayFlexColumn.svg-5a04fd917c6058c68b9b6265010d5332.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | svg/scale=1.0 36 | editor/scale_with_editor_scale=false 37 | editor/convert_colors_with_editor_theme=false 38 | -------------------------------------------------------------------------------- /addons/godot-flexbox/assets/light/DisplayFlexRow.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /addons/godot-flexbox/assets/light/DisplayFlexRow.svg.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://bhgxno550h00q" 6 | path="res://.godot/imported/DisplayFlexRow.svg-4e36f287e538c23f8d6dc10c42e94313.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://addons/godot-flexbox/assets/light/DisplayFlexRow.svg" 14 | dest_files=["res://.godot/imported/DisplayFlexRow.svg-4e36f287e538c23f8d6dc10c42e94313.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | svg/scale=1.0 36 | editor/scale_with_editor_scale=false 37 | editor/convert_colors_with_editor_theme=false 38 | -------------------------------------------------------------------------------- /addons/godot-flexbox/assets/light/FlexWrapNoWrapColumnIcon.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /addons/godot-flexbox/assets/light/FlexWrapNoWrapColumnIcon.svg.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://bu1715ds2ijp1" 6 | path="res://.godot/imported/FlexWrapNoWrapColumnIcon.svg-08d118e903573a13793678e2d4f452bc.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://addons/godot-flexbox/assets/light/FlexWrapNoWrapColumnIcon.svg" 14 | dest_files=["res://.godot/imported/FlexWrapNoWrapColumnIcon.svg-08d118e903573a13793678e2d4f452bc.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | svg/scale=1.0 36 | editor/scale_with_editor_scale=false 37 | editor/convert_colors_with_editor_theme=false 38 | -------------------------------------------------------------------------------- /addons/godot-flexbox/assets/light/FlexWrapNoWrapRowIcon.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /addons/godot-flexbox/assets/light/FlexWrapNoWrapRowIcon.svg.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://b0wedewsjpy25" 6 | path="res://.godot/imported/FlexWrapNoWrapRowIcon.svg-8e02a04c352769d6b71ae7aa2004749f.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://addons/godot-flexbox/assets/light/FlexWrapNoWrapRowIcon.svg" 14 | dest_files=["res://.godot/imported/FlexWrapNoWrapRowIcon.svg-8e02a04c352769d6b71ae7aa2004749f.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | svg/scale=1.0 36 | editor/scale_with_editor_scale=false 37 | editor/convert_colors_with_editor_theme=false 38 | -------------------------------------------------------------------------------- /addons/godot-flexbox/assets/light/FlexWrapWrapColumnIcon.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /addons/godot-flexbox/assets/light/FlexWrapWrapColumnIcon.svg.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://ccbxhj7unowvu" 6 | path="res://.godot/imported/FlexWrapWrapColumnIcon.svg-897aa98e7a65bee2aaa5144fa18e8438.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://addons/godot-flexbox/assets/light/FlexWrapWrapColumnIcon.svg" 14 | dest_files=["res://.godot/imported/FlexWrapWrapColumnIcon.svg-897aa98e7a65bee2aaa5144fa18e8438.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | svg/scale=1.0 36 | editor/scale_with_editor_scale=false 37 | editor/convert_colors_with_editor_theme=false 38 | -------------------------------------------------------------------------------- /addons/godot-flexbox/assets/light/FlexWrapWrapRowIcon.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /addons/godot-flexbox/assets/light/FlexWrapWrapRowIcon.svg.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://bjawca18kmi6o" 6 | path="res://.godot/imported/FlexWrapWrapRowIcon.svg-799e135e506dfdab754419131fce3ec8.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://addons/godot-flexbox/assets/light/FlexWrapWrapRowIcon.svg" 14 | dest_files=["res://.godot/imported/FlexWrapWrapRowIcon.svg-799e135e506dfdab754419131fce3ec8.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | svg/scale=1.0 36 | editor/scale_with_editor_scale=false 37 | editor/convert_colors_with_editor_theme=false 38 | -------------------------------------------------------------------------------- /addons/godot-flexbox/assets/light/JustifyContentCenterColumnIcon.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /addons/godot-flexbox/assets/light/JustifyContentCenterColumnIcon.svg.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://br6d2cdh6brb8" 6 | path="res://.godot/imported/JustifyContentCenterColumnIcon.svg-390bf37d831b72d167acb189e98f3f3b.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://addons/godot-flexbox/assets/light/JustifyContentCenterColumnIcon.svg" 14 | dest_files=["res://.godot/imported/JustifyContentCenterColumnIcon.svg-390bf37d831b72d167acb189e98f3f3b.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | svg/scale=1.0 36 | editor/scale_with_editor_scale=false 37 | editor/convert_colors_with_editor_theme=false 38 | -------------------------------------------------------------------------------- /addons/godot-flexbox/assets/light/JustifyContentCenterRowIcon.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /addons/godot-flexbox/assets/light/JustifyContentCenterRowIcon.svg.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://do6glmq7p1j5f" 6 | path="res://.godot/imported/JustifyContentCenterRowIcon.svg-423f3e579c6a82a36cf6f44b3c41b0f4.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://addons/godot-flexbox/assets/light/JustifyContentCenterRowIcon.svg" 14 | dest_files=["res://.godot/imported/JustifyContentCenterRowIcon.svg-423f3e579c6a82a36cf6f44b3c41b0f4.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | svg/scale=1.0 36 | editor/scale_with_editor_scale=false 37 | editor/convert_colors_with_editor_theme=false 38 | -------------------------------------------------------------------------------- /addons/godot-flexbox/assets/light/JustifyContentEndColumnIcon.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /addons/godot-flexbox/assets/light/JustifyContentEndColumnIcon.svg.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://cxvwsi7j32d5n" 6 | path="res://.godot/imported/JustifyContentEndColumnIcon.svg-ca61604f07e9d9b3d2fa28bd212e3cda.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://addons/godot-flexbox/assets/light/JustifyContentEndColumnIcon.svg" 14 | dest_files=["res://.godot/imported/JustifyContentEndColumnIcon.svg-ca61604f07e9d9b3d2fa28bd212e3cda.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | svg/scale=1.0 36 | editor/scale_with_editor_scale=false 37 | editor/convert_colors_with_editor_theme=false 38 | -------------------------------------------------------------------------------- /addons/godot-flexbox/assets/light/JustifyContentEndRowIcon.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /addons/godot-flexbox/assets/light/JustifyContentEndRowIcon.svg.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://btiem8644whxi" 6 | path="res://.godot/imported/JustifyContentEndRowIcon.svg-13153e78a3cae8ea754e6eefef410197.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://addons/godot-flexbox/assets/light/JustifyContentEndRowIcon.svg" 14 | dest_files=["res://.godot/imported/JustifyContentEndRowIcon.svg-13153e78a3cae8ea754e6eefef410197.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | svg/scale=1.0 36 | editor/scale_with_editor_scale=false 37 | editor/convert_colors_with_editor_theme=false 38 | -------------------------------------------------------------------------------- /addons/godot-flexbox/assets/light/JustifyContentSpaceAroundColumnIcon.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /addons/godot-flexbox/assets/light/JustifyContentSpaceAroundColumnIcon.svg.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://c838yxs5geabp" 6 | path="res://.godot/imported/JustifyContentSpaceAroundColumnIcon.svg-a1752d3652544978545669e8c13ed236.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://addons/godot-flexbox/assets/light/JustifyContentSpaceAroundColumnIcon.svg" 14 | dest_files=["res://.godot/imported/JustifyContentSpaceAroundColumnIcon.svg-a1752d3652544978545669e8c13ed236.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | svg/scale=1.0 36 | editor/scale_with_editor_scale=false 37 | editor/convert_colors_with_editor_theme=false 38 | -------------------------------------------------------------------------------- /addons/godot-flexbox/assets/light/JustifyContentSpaceAroundRowIcon.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /addons/godot-flexbox/assets/light/JustifyContentSpaceAroundRowIcon.svg.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://cvowf4uv4i1bg" 6 | path="res://.godot/imported/JustifyContentSpaceAroundRowIcon.svg-a003e4485b6d05998c604153368fd5a1.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://addons/godot-flexbox/assets/light/JustifyContentSpaceAroundRowIcon.svg" 14 | dest_files=["res://.godot/imported/JustifyContentSpaceAroundRowIcon.svg-a003e4485b6d05998c604153368fd5a1.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | svg/scale=1.0 36 | editor/scale_with_editor_scale=false 37 | editor/convert_colors_with_editor_theme=false 38 | -------------------------------------------------------------------------------- /addons/godot-flexbox/assets/light/JustifyContentSpaceBetweenColumnIcon.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /addons/godot-flexbox/assets/light/JustifyContentSpaceBetweenColumnIcon.svg.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://0ta308u84l7g" 6 | path="res://.godot/imported/JustifyContentSpaceBetweenColumnIcon.svg-eb4ab78e07a17e0471de6af795e3ab98.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://addons/godot-flexbox/assets/light/JustifyContentSpaceBetweenColumnIcon.svg" 14 | dest_files=["res://.godot/imported/JustifyContentSpaceBetweenColumnIcon.svg-eb4ab78e07a17e0471de6af795e3ab98.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | svg/scale=1.0 36 | editor/scale_with_editor_scale=false 37 | editor/convert_colors_with_editor_theme=false 38 | -------------------------------------------------------------------------------- /addons/godot-flexbox/assets/light/JustifyContentSpaceBetweenRowIcon.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /addons/godot-flexbox/assets/light/JustifyContentSpaceBetweenRowIcon.svg.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://cdlghjoe0wfc3" 6 | path="res://.godot/imported/JustifyContentSpaceBetweenRowIcon.svg-56d9c467f96858dcc38727d0fa25a3f4.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://addons/godot-flexbox/assets/light/JustifyContentSpaceBetweenRowIcon.svg" 14 | dest_files=["res://.godot/imported/JustifyContentSpaceBetweenRowIcon.svg-56d9c467f96858dcc38727d0fa25a3f4.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | svg/scale=1.0 36 | editor/scale_with_editor_scale=false 37 | editor/convert_colors_with_editor_theme=false 38 | -------------------------------------------------------------------------------- /addons/godot-flexbox/assets/light/JustifyContentSpaceEvenlyColumnIcon.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /addons/godot-flexbox/assets/light/JustifyContentSpaceEvenlyColumnIcon.svg.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://dghgma1uugkkv" 6 | path="res://.godot/imported/JustifyContentSpaceEvenlyColumnIcon.svg-c1370d16a2a695b912e62a5e88f2d1bd.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://addons/godot-flexbox/assets/light/JustifyContentSpaceEvenlyColumnIcon.svg" 14 | dest_files=["res://.godot/imported/JustifyContentSpaceEvenlyColumnIcon.svg-c1370d16a2a695b912e62a5e88f2d1bd.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | svg/scale=1.0 36 | editor/scale_with_editor_scale=false 37 | editor/convert_colors_with_editor_theme=false 38 | -------------------------------------------------------------------------------- /addons/godot-flexbox/assets/light/JustifyContentSpaceEvenlyRowIcon.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /addons/godot-flexbox/assets/light/JustifyContentSpaceEvenlyRowIcon.svg.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://cgddk0163vw2m" 6 | path="res://.godot/imported/JustifyContentSpaceEvenlyRowIcon.svg-3afbb2e488279492b81ef1719fa912b0.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://addons/godot-flexbox/assets/light/JustifyContentSpaceEvenlyRowIcon.svg" 14 | dest_files=["res://.godot/imported/JustifyContentSpaceEvenlyRowIcon.svg-3afbb2e488279492b81ef1719fa912b0.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | svg/scale=1.0 36 | editor/scale_with_editor_scale=false 37 | editor/convert_colors_with_editor_theme=false 38 | -------------------------------------------------------------------------------- /addons/godot-flexbox/assets/light/JustifyContentStartColumnIcon.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /addons/godot-flexbox/assets/light/JustifyContentStartColumnIcon.svg.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://j73twgpgjc32" 6 | path="res://.godot/imported/JustifyContentStartColumnIcon.svg-1c676288e2f9edbecba870621c642405.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://addons/godot-flexbox/assets/light/JustifyContentStartColumnIcon.svg" 14 | dest_files=["res://.godot/imported/JustifyContentStartColumnIcon.svg-1c676288e2f9edbecba870621c642405.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | svg/scale=1.0 36 | editor/scale_with_editor_scale=false 37 | editor/convert_colors_with_editor_theme=false 38 | -------------------------------------------------------------------------------- /addons/godot-flexbox/assets/light/JustifyContentStartRowIcon.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /addons/godot-flexbox/assets/light/JustifyContentStartRowIcon.svg.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://bnndo335w1m1k" 6 | path="res://.godot/imported/JustifyContentStartRowIcon.svg-feaab4a130e05227746ef6ed928c810b.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://addons/godot-flexbox/assets/light/JustifyContentStartRowIcon.svg" 14 | dest_files=["res://.godot/imported/JustifyContentStartRowIcon.svg-feaab4a130e05227746ef6ed928c810b.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | svg/scale=1.0 36 | editor/scale_with_editor_scale=false 37 | editor/convert_colors_with_editor_theme=false 38 | -------------------------------------------------------------------------------- /addons/godot-flexbox/flexbox.gdextension: -------------------------------------------------------------------------------- 1 | [configuration] 2 | entry_symbol = "flexbox_library_init" 3 | compatibility_minimum = "4.1" 4 | 5 | [libraries] 6 | macos = "res://addons/godot-flexbox/bin/macos/macos.framework/libgodot-flexbox.macos.template_release" 7 | ios = "res://addons/godot-flexbox/bin/ios/ios.framework/libgodot-flexbox.ios.template_release" 8 | windows.x86_32 = "res://addons/godot-flexbox/bin/windows/godot-flexbox.windows.template_release.double.x86_32.dll" 9 | windows.x86_64 = "res://addons/godot-flexbox/bin/windows/godot-flexbox.windows.template_release.double.x86_64.dll" 10 | linux.x86_64 = "res://addons/godot-flexbox/bin/linux/libgodot-flexbox.linux.template_release.x86_64.so" 11 | linux.arm64 = "res://addons/godot-flexbox/bin/linux/libgodot-flexbox.linux.template_release.arm64.so" 12 | linux.rv64 = "res://addons/godot-flexbox/bin/linux/libgodot-flexbox.linux.template_release.rv64.so" 13 | android.x86_64 = "res://addons/godot-flexbox/bin/android/libgodot-flexbox.android.template_release.double.x86_64.so" 14 | android.arm64 = "res://addons/godot-flexbox/bin/android/libgodot-flexbox.android.template_release.double.arm64.so" 15 | web = "res://addons/godot-flexbox/bin/web/libgodot-flexbox.web.template_release.double.wasm32.wasm" -------------------------------------------------------------------------------- /addons/godot-flexbox/icon.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /addons/godot-flexbox/icon.svg.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://cpeevwk1slij1" 6 | path="res://.godot/imported/icon.svg-d062089409224d02255159d3049da05a.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://addons/godot-flexbox/icon.svg" 14 | dest_files=["res://.godot/imported/icon.svg-d062089409224d02255159d3049da05a.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | svg/scale=1.0 36 | editor/scale_with_editor_scale=false 37 | editor/convert_colors_with_editor_theme=false 38 | -------------------------------------------------------------------------------- /addons/godot-flexbox/plugin.cfg: -------------------------------------------------------------------------------- 1 | [plugin] 2 | 3 | name="Godot Flexbox" 4 | description="GDNative wrapper for Flexbox (Godot 3.2+), making it possible to use flexbox layout in all your future games." 5 | author="citizenl" 6 | version="2.0.1" 7 | script="plugin.gd" 8 | -------------------------------------------------------------------------------- /addons/godot-flexbox/plugin.gd: -------------------------------------------------------------------------------- 1 | # ############################################################################ # 2 | # Copyright 2016-2023 citizenl 3 | # MIT License. 4 | # ############################################################################ # 5 | 6 | @tool 7 | extends EditorPlugin 8 | # 9 | const Icon = preload("icon.svg") 10 | const FlexContainer = preload("flex_container.gd") 11 | const InspectorPlugin = preload("inspector/inspector_plugin.gd") 12 | var _inspector_plugin 13 | var _toolbar:EditorToolbar 14 | var _interface 15 | 16 | func _enter_tree(): 17 | IconAssets.generate_icons(is_dark_theme()) 18 | _inspector_plugin = InspectorPlugin.new() 19 | var EDSCALE = get_editor_interface().get_editor_scale() 20 | var image = Icon.get_image() 21 | image.resize(20*EDSCALE, 20*EDSCALE,Image.INTERPOLATE_NEAREST) 22 | var icon = ImageTexture.new().create_from_image(image) 23 | add_custom_type("FlexContainer", "Container", FlexContainer, icon) 24 | add_inspector_plugin(_inspector_plugin) 25 | get_window().theme_changed.connect(_theme_changed) 26 | _interface = get_editor_interface() 27 | create_toolbar(EDSCALE) 28 | 29 | 30 | func _exit_tree(): 31 | remove_inspector_plugin(_inspector_plugin) 32 | remove_custom_type("FlexContainer") 33 | remove_control_from_container(EditorPlugin.CONTAINER_CANVAS_EDITOR_MENU, _toolbar) 34 | _inspector_plugin = null 35 | _toolbar = null 36 | 37 | 38 | func create_toolbar(EDSCALE): 39 | _toolbar = EditorToolbar.new(EDSCALE) 40 | _toolbar.plugin = self 41 | _toolbar.undo_redo = get_undo_redo() 42 | _toolbar.hide() 43 | add_control_to_container(EditorPlugin.CONTAINER_CANVAS_EDITOR_MENU, _toolbar) 44 | 45 | 46 | func is_dark_theme(): 47 | var settings = get_editor_interface().get_editor_settings() as EditorSettings 48 | var AUTO_COLOR = 0; 49 | var LIGHT_COLOR = 2; 50 | var base_color = settings.get("interface/theme/base_color"); 51 | var icon_font_color_setting = settings.get("interface/theme/icon_and_font_color"); 52 | return (icon_font_color_setting == AUTO_COLOR && base_color.get_luminance() < 0.5) || icon_font_color_setting == LIGHT_COLOR; 53 | 54 | 55 | func _theme_changed(): 56 | IconAssets.generate_icons(is_dark_theme()) 57 | -------------------------------------------------------------------------------- /build.py: -------------------------------------------------------------------------------- 1 | import sys 2 | import os 3 | import shutil 4 | import subprocess 5 | import multiprocessing 6 | 7 | script_path = os.path.abspath(__file__) 8 | 9 | def replace_word(file_name, target_str, replace_str): 10 | text = "" 11 | with open(file_name, "r") as file: 12 | text = file.read() 13 | 14 | text = text.replace(target_str, replace_str) 15 | 16 | with open(file_name, "w") as file: 17 | file.write(text) 18 | 19 | def import_generate_bindings(): 20 | binding_generator = __import__("godot-cpp.binding_generator").binding_generator 21 | cwd = os.getcwd() 22 | os.chdir(os.path.join(os.path.dirname(script_path), "godot-cpp")) 23 | binding_generator.generate_bindings("gdextension/extension_api.json", False) 24 | os.chdir(cwd) 25 | 26 | import_generate_bindings() 27 | 28 | os.chdir(os.path.dirname(script_path)) 29 | 30 | job_opt = " -j" + str(multiprocessing.cpu_count()) 31 | 32 | if "platform=windows" in sys.argv: 33 | replace_word("godot-cpp/Sconstruct", "/MD", "/MT") 34 | 35 | subprocess.run("scons platform=windows bits=32 target=release" + job_opt, shell = True) 36 | subprocess.run("scons platform=windows bits=64 target=release" + job_opt, shell = True) 37 | 38 | os.makedirs("addons/godot-flexbox/bin/windows", exist_ok = True) 39 | 40 | shutil.copy2("bin/libgdflexbox.x86_32.dll", "addons/godot-flexbox/bin/windows/") 41 | shutil.copy2("bin/libgdflexbox.x86_64.dll", "addons/godot-flexbox/bin/windows/") 42 | 43 | elif "platform=macos" in sys.argv: 44 | subprocess.run("scons platform=macos bits=64 target=release" + job_opt, shell = True) 45 | 46 | os.makedirs("addons/godot-flexbox/bin/macos", exist_ok = True) 47 | 48 | shutil.copy2("bin/libgdflexbox.dylib", "addons/godot-flexbox/bin/macos/") 49 | 50 | elif "platform=android" in sys.argv: 51 | subprocess.run("scons platform=android android_arch=armv7 target=release" + job_opt, shell = True) 52 | subprocess.run("scons platform=android android_arch=arm64v8 target=release" + job_opt, shell = True) 53 | subprocess.run("scons platform=android android_arch=x86 target=release" + job_opt, shell = True) 54 | subprocess.run("scons platform=android android_arch=x86_64 target=release" + job_opt, shell = True) 55 | 56 | os.makedirs("addons/godot-flexbox/bin/android", exist_ok = True) 57 | 58 | shutil.copy2("bin/libgdflexbox.arm32.so", "addons/godot-flexbox/bin/android/") 59 | shutil.copy2("bin/libgdflexbox.arm64.so", "addons/godot-flexbox/bin/android/") 60 | shutil.copy2("bin/libgdflexbox.x86_32.so", "addons/godot-flexbox/bin/android/") 61 | shutil.copy2("bin/libgdflexbox.x86_64.so", "addons/godot-flexbox/bin/android/") 62 | 63 | elif "platform=ios" in sys.argv: 64 | subprocess.run("scons platform=ios ios_arch=arm64 target=release" + job_opt, shell = True) 65 | # subprocess.run("scons platform=ios ios_arch=x86_64 target=release" + job_opt, shell = True) 66 | 67 | subprocess.run("lipo -create bin/libgdflexbox.arm64.dylib -output bin/libgdflexbox.dylib", shell = True) 68 | # subprocess.run("lipo -create bin/libgdflexbox.arm64.dylib bin/libgdflexbox.x86_64.dylib -output bin/libgdflexbox.dylib", shell = True) 69 | 70 | os.makedirs("addons/godot-flexbox/bin/ios", exist_ok = True) 71 | 72 | shutil.copy2("bin/libgdflexbox.dylib", "addons/godot-flexbox/bin/ios/") 73 | 74 | elif "platform=linux" in sys.argv: 75 | subprocess.run("scons platform=linux bits=32 target=release use_llvm=1" + job_opt, shell = True) 76 | subprocess.run("scons platform=linux bits=64 target=release use_llvm=1" + job_opt, shell = True) 77 | 78 | os.makedirs("addons/godot-flexbox/bin/linux", exist_ok = True) 79 | 80 | shutil.copy2("bin/libgdflexbox.x86_32.so", "addons/godot-flexbox/bin/linux/") 81 | shutil.copy2("bin/libgdflexbox.x86_64.so", "addons/godot-flexbox/bin/linux/") 82 | 83 | elif "platform=web" in sys.argv: 84 | subprocess.run("scons platform=web bits=32 target=release" + job_opt, shell = True) 85 | 86 | os.makedirs("addons/godot-flexbox/bin/web", exist_ok = True) 87 | 88 | shutil.copy2("bin/libgdflexbox.wasm", "addons/godot-flexbox/bin/web/") 89 | -------------------------------------------------------------------------------- /clean.py: -------------------------------------------------------------------------------- 1 | import os 2 | import glob 3 | 4 | files = glob.glob("src/**/*.obj", recursive=True) 5 | for file in files: 6 | print(file) 7 | os.remove(file) 8 | 9 | files = glob.glob("src/**/*.os", recursive=True) 10 | for file in files: 11 | print(file) 12 | os.remove(file) 13 | 14 | files = glob.glob("src/**/*.bc", recursive=True) 15 | for file in files: 16 | print(file) 17 | os.remove(file) 18 | -------------------------------------------------------------------------------- /demo/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/citizenll/godot-flexbox/a60a61a21315bf7dac7cf0b12a94494173c25a21/demo/.gitkeep -------------------------------------------------------------------------------- /demo/ColorRect1.gd: -------------------------------------------------------------------------------- 1 | extends ColorRect 2 | @export var test = 1 3 | 4 | # Called when the node enters the scene tree for the first time. 5 | func _ready(): 6 | pass # Replace with function body. 7 | 8 | 9 | # Called every frame. 'delta' is the elapsed time since the previous frame. 10 | func _process(delta): 11 | pass 12 | -------------------------------------------------------------------------------- /demo/addons/addons-link/plugin.cfg: -------------------------------------------------------------------------------- 1 | [plugin] 2 | 3 | name="addons-link" 4 | description="initial addons folder link" 5 | author="citizenl" 6 | version="" 7 | script="plugin.gd" 8 | -------------------------------------------------------------------------------- /demo/addons/addons-link/plugin.gd: -------------------------------------------------------------------------------- 1 | @tool 2 | extends EditorPlugin 3 | 4 | 5 | func _enter_tree(): 6 | check_link() 7 | 8 | func check_link(): 9 | var dir = DirAccess.open("res://addons") 10 | if dir.dir_exists("./godot-flexbox"):return 11 | if OS.get_name()=="Windows": 12 | OS.execute("./setup.bat",[]) 13 | else: 14 | OS.execute("sh",["./setup.sh"]) 15 | OS.alert("addons copy suceess, will restart eidtor") 16 | EditorInterface.restart_editor(true) 17 | -------------------------------------------------------------------------------- /demo/api_test.gd: -------------------------------------------------------------------------------- 1 | extends Control 2 | 3 | const TOTAL_COUNT = 1000 4 | # Called when the node enters the scene tree for the first time. 5 | func _ready(): 6 | var s = Time.get_ticks_usec() 7 | var root = Flexbox.new() 8 | root.set_width(500) 9 | root.set_height(300) 10 | var childs = {} 11 | for i in range(TOTAL_COUNT): 12 | var child = Flexbox.new() 13 | child.set_min_width(50) 14 | child.set_min_height(100) 15 | childs[child.get_instance_id()] = child #need have a reference here, or else error because of child freed 16 | root.insert_child(child, i) 17 | 18 | #child.set_measure_func(Callable(self, "measure")) 19 | var calc = Time.get_ticks_usec() 20 | print("create time>",calc-s, " avg:", (calc-s) / TOTAL_COUNT) 21 | root.calculate_layout(NAN,NAN,1) 22 | var e = Time.get_ticks_usec() 23 | print("layout time>",e-calc) 24 | print("total time>",e-s, " avg:", (e-s) / TOTAL_COUNT) 25 | 26 | 27 | func measure(width, widthMode,height, heightMode): 28 | print("mesure:", width, widthMode,height, heightMode) 29 | return {width=112,height=130} 30 | -------------------------------------------------------------------------------- /demo/api_test.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=4 format=3 uid="uid://b3ooljt4sjxsd"] 2 | 3 | [ext_resource type="Script" path="res://api_test.gd" id="1_0rrja"] 4 | [ext_resource type="Script" path="res://addons/godot-flexbox/flex_container.gd" id="2_51528"] 5 | [ext_resource type="Script" path="res://ColorRect1.gd" id="3_tnhjb"] 6 | 7 | [node name="root" type="Control"] 8 | layout_mode = 3 9 | anchors_preset = 15 10 | anchor_right = 1.0 11 | anchor_bottom = 1.0 12 | grow_horizontal = 2 13 | grow_vertical = 2 14 | script = ExtResource("1_0rrja") 15 | 16 | [node name="ChilContainer" type="Container" parent="."] 17 | custom_minimum_size = Vector2(100, 100) 18 | layout_mode = 0 19 | script = ExtResource("2_51528") 20 | debug_draw = true 21 | justify_content = 1 22 | align_items = 2 23 | metadata/_flex_child = 1 24 | metadata/_flex_metas = { 25 | "grow": 1.0 26 | } 27 | 28 | [node name="ColorRect1" type="ColorRect" parent="ChilContainer"] 29 | custom_minimum_size = Vector2(30, 30) 30 | layout_mode = 2 31 | script = ExtResource("3_tnhjb") 32 | metadata/flex_metas = { 33 | "align_self": 1 34 | } 35 | 36 | [node name="ColorRect2" type="ColorRect" parent="ChilContainer"] 37 | custom_minimum_size = Vector2(30, 30) 38 | layout_mode = 2 39 | 40 | [node name="ColorRect3" type="ColorRect" parent="ChilContainer"] 41 | custom_minimum_size = Vector2(30, 30) 42 | layout_mode = 2 43 | metadata/flex_metas = { 44 | "align_self": 3 45 | } 46 | -------------------------------------------------------------------------------- /demo/default_env.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="Environment" load_steps=2 format=2] 2 | 3 | [sub_resource type="Sky" id=1] 4 | 5 | [resource] 6 | background_mode = 2 7 | background_sky = SubResource( 1 ) 8 | -------------------------------------------------------------------------------- /demo/playground.gd: -------------------------------------------------------------------------------- 1 | extends Control 2 | 3 | func _ready(): 4 | pass 5 | -------------------------------------------------------------------------------- /demo/playground.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=3 format=3 uid="uid://dhvh3x81ere1s"] 2 | 3 | [ext_resource type="Script" path="res://addons/godot-flexbox/flex_container.gd" id="1"] 4 | [ext_resource type="Script" path="res://playground.gd" id="1_8a2fn"] 5 | 6 | [node name="FlexDemo" type="Control"] 7 | layout_mode = 3 8 | anchors_preset = 15 9 | anchor_right = 1.0 10 | anchor_bottom = 1.0 11 | grow_horizontal = 2 12 | grow_vertical = 2 13 | script = ExtResource("1_8a2fn") 14 | 15 | [node name="FlexContainer" type="Container" parent="."] 16 | layout_mode = 1 17 | anchors_preset = 15 18 | anchor_right = 1.0 19 | anchor_bottom = 1.0 20 | grow_horizontal = 2 21 | grow_vertical = 2 22 | script = ExtResource("1") 23 | 24 | [node name="ColorRect1" type="ColorRect" parent="FlexContainer"] 25 | custom_minimum_size = Vector2(100, 100) 26 | layout_mode = 2 27 | color = Color(0, 0.796078, 0.486275, 1) 28 | metadata/flex_metas = { 29 | "align_self": 0, 30 | "grow": 0.0, 31 | "margin": [0.0, 0, 0.0, 0] 32 | } 33 | 34 | [node name="Label" type="Label" parent="FlexContainer/ColorRect1"] 35 | layout_mode = 1 36 | anchors_preset = 15 37 | anchor_right = 1.0 38 | anchor_bottom = 1.0 39 | grow_horizontal = 2 40 | grow_vertical = 2 41 | theme_override_colors/font_color = Color(0, 0, 0, 1) 42 | text = "1" 43 | 44 | [node name="ColorRect2" type="ColorRect" parent="FlexContainer"] 45 | custom_minimum_size = Vector2(100, 100) 46 | layout_mode = 2 47 | color = Color(0.952941, 0.329412, 0.329412, 1) 48 | metadata/flex_metas = { 49 | "align_self": 0, 50 | "margin": [0.0, 10.0, 0, 10.0] 51 | } 52 | 53 | [node name="Label" type="Label" parent="FlexContainer/ColorRect2"] 54 | layout_mode = 0 55 | anchor_right = 1.0 56 | anchor_bottom = 1.0 57 | text = "2" 58 | 59 | [node name="ColorRect3" type="ColorRect" parent="FlexContainer"] 60 | custom_minimum_size = Vector2(100, 100) 61 | layout_mode = 2 62 | color = Color(0.431373, 0.764706, 0.419608, 1) 63 | 64 | [node name="Label" type="Label" parent="FlexContainer/ColorRect3"] 65 | layout_mode = 0 66 | anchor_right = 1.0 67 | anchor_bottom = 1.0 68 | offset_left = 5.0 69 | offset_right = 5.0 70 | text = "3" 71 | 72 | [node name="ColorRect4" type="ColorRect" parent="FlexContainer"] 73 | custom_minimum_size = Vector2(100, 100) 74 | layout_mode = 2 75 | color = Color(0.470588, 0.498039, 0.952941, 1) 76 | 77 | [node name="Label" type="Label" parent="FlexContainer/ColorRect4"] 78 | layout_mode = 0 79 | anchor_right = 1.0 80 | anchor_bottom = 1.0 81 | offset_left = 5.0 82 | offset_right = 5.0 83 | text = "4" 84 | -------------------------------------------------------------------------------- /demo/project.godot: -------------------------------------------------------------------------------- 1 | ; Engine configuration file. 2 | ; It's best edited using the editor UI and not directly, 3 | ; since the parameters that go here are not all obvious. 4 | ; 5 | ; Format: 6 | ; [section] ; section goes between [] 7 | ; param=value ; assign values to parameters 8 | 9 | config_version=5 10 | 11 | [application] 12 | 13 | config/name="Flexbox" 14 | config/features=PackedStringArray("4.3") 15 | boot_splash/bg_color=Color(0.141176, 0.141176, 0.141176, 1) 16 | config/icon="res://icon.png" 17 | 18 | [editor_plugins] 19 | 20 | enabled=PackedStringArray("res://addons/addons-link/plugin.cfg", "res://addons/godot-flexbox/plugin.cfg") 21 | 22 | [gui] 23 | 24 | common/drop_mouse_on_gui_input_disabled=true 25 | 26 | [physics] 27 | 28 | common/enable_pause_aware_picking=true 29 | 30 | [rendering] 31 | 32 | renderer/rendering_method="mobile" 33 | textures/vram_compression/import_etc2_astc=true 34 | environment/default_environment="res://default_env.tres" 35 | -------------------------------------------------------------------------------- /demo/setup.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | xcopy /E /I "..\addons\godot-flexbox" ".\addons\godot-flexbox\" -------------------------------------------------------------------------------- /demo/setup.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | if [ ! -d "./addons/godot-flexbox" ]; then 3 | cp -R ../addons/godot-flexbox ./addons/ 4 | fi 5 | -------------------------------------------------------------------------------- /docs/add-flex-container.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/citizenll/godot-flexbox/a60a61a21315bf7dac7cf0b12a94494173c25a21/docs/add-flex-container.png -------------------------------------------------------------------------------- /docs/add-flex-container.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://14qqhiq53pg8" 6 | path="res://.godot/imported/add-flex-container.png-204d6a7113a829c0f3fb9b1f8251d82f.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://docs/add-flex-container.png" 14 | dest_files=["res://.godot/imported/add-flex-container.png-204d6a7113a829c0f3fb9b1f8251d82f.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | -------------------------------------------------------------------------------- /docs/flex-child-property.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/citizenll/godot-flexbox/a60a61a21315bf7dac7cf0b12a94494173c25a21/docs/flex-child-property.png -------------------------------------------------------------------------------- /docs/flex-child-property.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://dxgx21utte3u4" 6 | path="res://.godot/imported/flex-child-property.png-72c357b3e42dfcb498dac19de7cb7874.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://docs/flex-child-property.png" 14 | dest_files=["res://.godot/imported/flex-child-property.png-72c357b3e42dfcb498dac19de7cb7874.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | -------------------------------------------------------------------------------- /docs/flex-container-overview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/citizenll/godot-flexbox/a60a61a21315bf7dac7cf0b12a94494173c25a21/docs/flex-container-overview.png -------------------------------------------------------------------------------- /docs/flex-container-overview.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://cn1mayfx6038a" 6 | path="res://.godot/imported/flex-container-overview.png-381b8193761aefd1ffb632b239bfc517.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://docs/flex-container-overview.png" 14 | dest_files=["res://.godot/imported/flex-container-overview.png-381b8193761aefd1ffb632b239bfc517.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | -------------------------------------------------------------------------------- /docs/flex-container-property.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/citizenll/godot-flexbox/a60a61a21315bf7dac7cf0b12a94494173c25a21/docs/flex-container-property.png -------------------------------------------------------------------------------- /docs/flex-container-property.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://by6al3f73ihp2" 6 | path="res://.godot/imported/flex-container-property.png-b48f8a68f4f24ec51de54d14e0474cb9.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://docs/flex-container-property.png" 14 | dest_files=["res://.godot/imported/flex-container-property.png-b48f8a68f4f24ec51de54d14e0474cb9.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | -------------------------------------------------------------------------------- /docs/flex-container.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/citizenll/godot-flexbox/a60a61a21315bf7dac7cf0b12a94494173c25a21/docs/flex-container.gif -------------------------------------------------------------------------------- /docs/flexbox-assets-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/citizenll/godot-flexbox/a60a61a21315bf7dac7cf0b12a94494173c25a21/docs/flexbox-assets-icon.png -------------------------------------------------------------------------------- /docs/flexbox-assets-icon.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://lh8jbtyd773w" 6 | path="res://.godot/imported/flexbox-assets-icon.png-9786932b5478e64c6364e7334e044a8a.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://docs/flexbox-assets-icon.png" 14 | dest_files=["res://.godot/imported/flexbox-assets-icon.png-9786932b5478e64c6364e7334e044a8a.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | -------------------------------------------------------------------------------- /icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/citizenll/godot-flexbox/a60a61a21315bf7dac7cf0b12a94494173c25a21/icon.png -------------------------------------------------------------------------------- /icon.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://c7l34cdahfafc" 6 | path="res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://icon.png" 14 | dest_files=["res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | -------------------------------------------------------------------------------- /methods.py: -------------------------------------------------------------------------------- 1 | import os 2 | import sys 3 | from enum import Enum 4 | 5 | # Colors are disabled in non-TTY environments such as pipes. This means 6 | # that if output is redirected to a file, it won't contain color codes. 7 | # Colors are always enabled on continuous integration. 8 | _colorize = bool(sys.stdout.isatty() or os.environ.get("CI")) 9 | 10 | 11 | class ANSI(Enum): 12 | """ 13 | Enum class for adding ansi colorcodes directly into strings. 14 | Automatically converts values to strings representing their 15 | internal value, or an empty string in a non-colorized scope. 16 | """ 17 | 18 | RESET = "\x1b[0m" 19 | 20 | BOLD = "\x1b[1m" 21 | ITALIC = "\x1b[3m" 22 | UNDERLINE = "\x1b[4m" 23 | STRIKETHROUGH = "\x1b[9m" 24 | REGULAR = "\x1b[22;23;24;29m" 25 | 26 | BLACK = "\x1b[30m" 27 | RED = "\x1b[31m" 28 | GREEN = "\x1b[32m" 29 | YELLOW = "\x1b[33m" 30 | BLUE = "\x1b[34m" 31 | MAGENTA = "\x1b[35m" 32 | CYAN = "\x1b[36m" 33 | WHITE = "\x1b[37m" 34 | 35 | PURPLE = "\x1b[38;5;93m" 36 | PINK = "\x1b[38;5;206m" 37 | ORANGE = "\x1b[38;5;214m" 38 | GRAY = "\x1b[38;5;244m" 39 | 40 | def __str__(self) -> str: 41 | global _colorize 42 | return str(self.value) if _colorize else "" 43 | 44 | 45 | def print_warning(*values: object) -> None: 46 | """Prints a warning message with formatting.""" 47 | print(f"{ANSI.YELLOW}{ANSI.BOLD}WARNING:{ANSI.REGULAR}", *values, ANSI.RESET, file=sys.stderr) 48 | 49 | 50 | def print_error(*values: object) -> None: 51 | """Prints an error message with formatting.""" 52 | print(f"{ANSI.RED}{ANSI.BOLD}ERROR:{ANSI.REGULAR}", *values, ANSI.RESET, file=sys.stderr) 53 | -------------------------------------------------------------------------------- /src/register_types.cpp: -------------------------------------------------------------------------------- 1 | 2 | #include "register_types.h" 3 | 4 | #include 5 | 6 | #include 7 | #include 8 | #include 9 | 10 | #include "flexbox.h" 11 | 12 | using namespace godot; 13 | 14 | void initialize_flexbox_module(ModuleInitializationLevel p_level) 15 | { 16 | if (p_level != MODULE_INITIALIZATION_LEVEL_SCENE) 17 | { 18 | return; 19 | } 20 | 21 | ClassDB::register_class(); 22 | } 23 | 24 | void uninitialize_flexbox_module(ModuleInitializationLevel p_level) 25 | { 26 | if (p_level != MODULE_INITIALIZATION_LEVEL_SCENE) 27 | { 28 | return; 29 | } 30 | } 31 | 32 | extern "C" 33 | { 34 | // Initialization. 35 | GDExtensionBool GDE_EXPORT flexbox_library_init(const GDExtensionInterfaceGetProcAddress p_get_proc_address, GDExtensionClassLibraryPtr p_library, GDExtensionInitialization *r_initialization) 36 | { 37 | godot::GDExtensionBinding::InitObject init_obj(p_get_proc_address, p_library, r_initialization); 38 | 39 | init_obj.register_initializer(initialize_flexbox_module); 40 | init_obj.register_terminator(uninitialize_flexbox_module); 41 | init_obj.set_minimum_library_initialization_level(MODULE_INITIALIZATION_LEVEL_SCENE); 42 | 43 | return init_obj.init(); 44 | } 45 | } 46 | -------------------------------------------------------------------------------- /src/register_types.h: -------------------------------------------------------------------------------- 1 | 2 | 3 | #ifndef FLEXBOX_REGISTER_TYPES_H 4 | #define FLEXBOX_REGISTER_TYPES_H 5 | 6 | #include 7 | using namespace godot; 8 | 9 | void initialize_flexbox_module(ModuleInitializationLevel p_level); 10 | void uninitialize_flexbox_module(ModuleInitializationLevel p_level); 11 | 12 | #endif // FLEXBOX_REGISTER_TYPES_H 13 | -------------------------------------------------------------------------------- /src/yoga/BitUtils.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) Meta Platforms, Inc. and affiliates. 3 | * 4 | * This source code is licensed under the MIT license found in the 5 | * LICENSE file in the root directory of this source tree. 6 | */ 7 | 8 | #pragma once 9 | 10 | #ifdef __cplusplus 11 | 12 | #include 13 | #include 14 | #include "YGEnums.h" 15 | 16 | namespace facebook { 17 | namespace yoga { 18 | 19 | namespace detail { 20 | 21 | constexpr size_t log2ceilFn(size_t n) { 22 | return n < 1 ? 0 : (1 + log2ceilFn(n / 2)); 23 | } 24 | 25 | constexpr int mask(size_t bitWidth, size_t index) { 26 | return ((1 << bitWidth) - 1) << index; 27 | } 28 | 29 | // The number of bits necessary to represent enums defined with YG_ENUM_SEQ_DECL 30 | template 31 | constexpr size_t bitWidthFn() { 32 | static_assert( 33 | enums::count() > 0, "Enums must have at least one entries"); 34 | return log2ceilFn(enums::count() - 1); 35 | } 36 | 37 | template 38 | constexpr Enum getEnumData(int flags, size_t index) { 39 | return static_cast((flags & mask(bitWidthFn(), index)) >> index); 40 | } 41 | 42 | template 43 | void setEnumData(uint32_t& flags, size_t index, int newValue) { 44 | flags = (flags & ~mask(bitWidthFn(), index)) | 45 | ((newValue << index) & (mask(bitWidthFn(), index))); 46 | } 47 | 48 | template 49 | void setEnumData(uint8_t& flags, size_t index, int newValue) { 50 | flags = (flags & ~static_cast(mask(bitWidthFn(), index))) | 51 | ((newValue << index) & 52 | (static_cast(mask(bitWidthFn(), index)))); 53 | } 54 | 55 | constexpr bool getBooleanData(int flags, size_t index) { 56 | return (flags >> index) & 1; 57 | } 58 | 59 | inline void setBooleanData(uint8_t& flags, size_t index, bool value) { 60 | if (value) { 61 | flags |= 1 << index; 62 | } else { 63 | flags &= ~(1 << index); 64 | } 65 | } 66 | 67 | } // namespace detail 68 | } // namespace yoga 69 | } // namespace facebook 70 | 71 | #endif 72 | -------------------------------------------------------------------------------- /src/yoga/LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) Facebook, Inc. and its affiliates. 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. -------------------------------------------------------------------------------- /src/yoga/Utils.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) Meta Platforms, Inc. and affiliates. 3 | * 4 | * This source code is licensed under the MIT license found in the 5 | * LICENSE file in the root directory of this source tree. 6 | */ 7 | 8 | #include "Utils.h" 9 | #include 10 | 11 | using namespace facebook; 12 | 13 | YGFlexDirection YGFlexDirectionCross( 14 | const YGFlexDirection flexDirection, 15 | const YGDirection direction) { 16 | return YGFlexDirectionIsColumn(flexDirection) 17 | ? YGResolveFlexDirection(YGFlexDirectionRow, direction) 18 | : YGFlexDirectionColumn; 19 | } 20 | 21 | float YGFloatMax(const float a, const float b) { 22 | if (!yoga::isUndefined(a) && !yoga::isUndefined(b)) { 23 | return fmaxf(a, b); 24 | } 25 | return yoga::isUndefined(a) ? b : a; 26 | } 27 | 28 | float YGFloatMin(const float a, const float b) { 29 | if (!yoga::isUndefined(a) && !yoga::isUndefined(b)) { 30 | return fminf(a, b); 31 | } 32 | 33 | return yoga::isUndefined(a) ? b : a; 34 | } 35 | 36 | bool YGValueEqual(const YGValue& a, const YGValue& b) { 37 | if (a.unit != b.unit) { 38 | return false; 39 | } 40 | 41 | if (a.unit == YGUnitUndefined || 42 | (yoga::isUndefined(a.value) && yoga::isUndefined(b.value))) { 43 | return true; 44 | } 45 | 46 | return fabs(a.value - b.value) < 0.0001f; 47 | } 48 | 49 | bool YGFloatsEqual(const float a, const float b) { 50 | if (!yoga::isUndefined(a) && !yoga::isUndefined(b)) { 51 | return fabs(a - b) < 0.0001f; 52 | } 53 | return yoga::isUndefined(a) && yoga::isUndefined(b); 54 | } 55 | 56 | bool YGDoubleEqual(const double a, const double b) { 57 | if (!yoga::isUndefined(a) && !yoga::isUndefined(b)) { 58 | return fabs(a - b) < 0.0001; 59 | } 60 | return yoga::isUndefined(a) && yoga::isUndefined(b); 61 | } 62 | 63 | float YGFloatSanitize(const float val) { 64 | return yoga::isUndefined(val) ? 0 : val; 65 | } 66 | 67 | YGFloatOptional YGFloatOptionalMax(YGFloatOptional op1, YGFloatOptional op2) { 68 | if (op1 >= op2) { 69 | return op1; 70 | } 71 | if (op2 > op1) { 72 | return op2; 73 | } 74 | return op1.isUndefined() ? op2 : op1; 75 | } 76 | 77 | void yoga::throwLogicalErrorWithMessage(const char* message) { 78 | #if defined(__cpp_exceptions) 79 | throw std::logic_error(message); 80 | #else // !defined(__cpp_exceptions) 81 | std::terminate(); 82 | #endif // defined(__cpp_exceptions) 83 | } 84 | -------------------------------------------------------------------------------- /src/yoga/YGConfig.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) Meta Platforms, Inc. and affiliates. 3 | * 4 | * This source code is licensed under the MIT license found in the 5 | * LICENSE file in the root directory of this source tree. 6 | */ 7 | 8 | #include "YGConfig.h" 9 | 10 | YGConfig::YGConfig(YGLogger logger) : cloneNodeCallback_{nullptr} { 11 | logger_.noContext = logger; 12 | loggerUsesContext_ = false; 13 | } 14 | 15 | void YGConfig::log( 16 | YGConfig* config, 17 | YGNode* node, 18 | YGLogLevel logLevel, 19 | void* logContext, 20 | const char* format, 21 | va_list args) { 22 | if (loggerUsesContext_) { 23 | logger_.withContext(config, node, logLevel, logContext, format, args); 24 | } else { 25 | logger_.noContext(config, node, logLevel, format, args); 26 | } 27 | } 28 | 29 | YGNodeRef YGConfig::cloneNode( 30 | YGNodeRef node, 31 | YGNodeRef owner, 32 | int childIndex, 33 | void* cloneContext) { 34 | YGNodeRef clone = nullptr; 35 | if (cloneNodeCallback_.noContext != nullptr) { 36 | clone = cloneNodeUsesContext_ 37 | ? cloneNodeCallback_.withContext(node, owner, childIndex, cloneContext) 38 | : cloneNodeCallback_.noContext(node, owner, childIndex); 39 | } 40 | if (clone == nullptr) { 41 | clone = YGNodeClone(node); 42 | } 43 | return clone; 44 | } 45 | -------------------------------------------------------------------------------- /src/yoga/YGConfig.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) Meta Platforms, Inc. and affiliates. 3 | * 4 | * This source code is licensed under the MIT license found in the 5 | * LICENSE file in the root directory of this source tree. 6 | */ 7 | 8 | #pragma once 9 | 10 | #ifdef __cplusplus 11 | 12 | #include "Yoga-internal.h" 13 | #include "Yoga.h" 14 | 15 | struct YOGA_EXPORT YGConfig { 16 | using LogWithContextFn = int (*)( 17 | YGConfigRef config, 18 | YGNodeRef node, 19 | YGLogLevel level, 20 | void* context, 21 | const char* format, 22 | va_list args); 23 | using CloneWithContextFn = YGNodeRef (*)( 24 | YGNodeRef node, 25 | YGNodeRef owner, 26 | int childIndex, 27 | void* cloneContext); 28 | 29 | private: 30 | union { 31 | CloneWithContextFn withContext; 32 | YGCloneNodeFunc noContext; 33 | } cloneNodeCallback_; 34 | union { 35 | LogWithContextFn withContext; 36 | YGLogger noContext; 37 | } logger_; 38 | bool cloneNodeUsesContext_; 39 | bool loggerUsesContext_; 40 | 41 | public: 42 | bool useWebDefaults = false; 43 | bool useLegacyStretchBehaviour = false; 44 | bool shouldDiffLayoutWithoutLegacyStretchBehaviour = false; 45 | bool printTree = false; 46 | float pointScaleFactor = 1.0f; 47 | std::array()> 48 | experimentalFeatures = {}; 49 | void* context = nullptr; 50 | 51 | YGConfig(YGLogger logger); 52 | void log(YGConfig*, YGNode*, YGLogLevel, void*, const char*, va_list); 53 | void setLogger(YGLogger logger) { 54 | logger_.noContext = logger; 55 | loggerUsesContext_ = false; 56 | } 57 | void setLogger(LogWithContextFn logger) { 58 | logger_.withContext = logger; 59 | loggerUsesContext_ = true; 60 | } 61 | void setLogger(std::nullptr_t) { setLogger(YGLogger{nullptr}); } 62 | 63 | YGNodeRef cloneNode( 64 | YGNodeRef node, 65 | YGNodeRef owner, 66 | int childIndex, 67 | void* cloneContext); 68 | void setCloneNodeCallback(YGCloneNodeFunc cloneNode) { 69 | cloneNodeCallback_.noContext = cloneNode; 70 | cloneNodeUsesContext_ = false; 71 | } 72 | void setCloneNodeCallback(CloneWithContextFn cloneNode) { 73 | cloneNodeCallback_.withContext = cloneNode; 74 | cloneNodeUsesContext_ = true; 75 | } 76 | void setCloneNodeCallback(std::nullptr_t) { 77 | setCloneNodeCallback(YGCloneNodeFunc{nullptr}); 78 | } 79 | }; 80 | 81 | #endif 82 | -------------------------------------------------------------------------------- /src/yoga/YGEnums.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) Meta Platforms, Inc. and affiliates. 3 | * 4 | * This source code is licensed under the MIT license found in the 5 | * LICENSE file in the root directory of this source tree. 6 | */ 7 | 8 | // @generated by enums.py 9 | 10 | #pragma once 11 | #include "YGMacros.h" 12 | 13 | // clang-format off 14 | 15 | 16 | YG_EXTERN_C_BEGIN 17 | 18 | YG_ENUM_SEQ_DECL( 19 | YGAlign, 20 | YGAlignAuto, 21 | YGAlignFlexStart, 22 | YGAlignCenter, 23 | YGAlignFlexEnd, 24 | YGAlignStretch, 25 | YGAlignBaseline, 26 | YGAlignSpaceBetween, 27 | YGAlignSpaceAround) 28 | 29 | YG_ENUM_SEQ_DECL( 30 | YGDimension, 31 | YGDimensionWidth, 32 | YGDimensionHeight) 33 | 34 | YG_ENUM_SEQ_DECL( 35 | YGDirection, 36 | YGDirectionInherit, 37 | YGDirectionLTR, 38 | YGDirectionRTL) 39 | 40 | YG_ENUM_SEQ_DECL( 41 | YGDisplay, 42 | YGDisplayFlex, 43 | YGDisplayNone) 44 | 45 | YG_ENUM_SEQ_DECL( 46 | YGEdge, 47 | YGEdgeLeft, 48 | YGEdgeTop, 49 | YGEdgeRight, 50 | YGEdgeBottom, 51 | YGEdgeStart, 52 | YGEdgeEnd, 53 | YGEdgeHorizontal, 54 | YGEdgeVertical, 55 | YGEdgeAll) 56 | 57 | YG_ENUM_SEQ_DECL( 58 | YGExperimentalFeature, 59 | YGExperimentalFeatureWebFlexBasis) 60 | 61 | YG_ENUM_SEQ_DECL( 62 | YGFlexDirection, 63 | YGFlexDirectionColumn, 64 | YGFlexDirectionColumnReverse, 65 | YGFlexDirectionRow, 66 | YGFlexDirectionRowReverse) 67 | 68 | YG_ENUM_SEQ_DECL( 69 | YGGutter, 70 | YGGutterColumn, 71 | YGGutterRow, 72 | YGGutterAll) 73 | 74 | YG_ENUM_SEQ_DECL( 75 | YGJustify, 76 | YGJustifyFlexStart, 77 | YGJustifyCenter, 78 | YGJustifyFlexEnd, 79 | YGJustifySpaceBetween, 80 | YGJustifySpaceAround, 81 | YGJustifySpaceEvenly) 82 | 83 | YG_ENUM_SEQ_DECL( 84 | YGLogLevel, 85 | YGLogLevelError, 86 | YGLogLevelWarn, 87 | YGLogLevelInfo, 88 | YGLogLevelDebug, 89 | YGLogLevelVerbose, 90 | YGLogLevelFatal) 91 | 92 | YG_ENUM_SEQ_DECL( 93 | YGMeasureMode, 94 | YGMeasureModeUndefined, 95 | YGMeasureModeExactly, 96 | YGMeasureModeAtMost) 97 | 98 | YG_ENUM_SEQ_DECL( 99 | YGNodeType, 100 | YGNodeTypeDefault, 101 | YGNodeTypeText) 102 | 103 | YG_ENUM_SEQ_DECL( 104 | YGOverflow, 105 | YGOverflowVisible, 106 | YGOverflowHidden, 107 | YGOverflowScroll) 108 | 109 | YG_ENUM_SEQ_DECL( 110 | YGPositionType, 111 | YGPositionTypeStatic, 112 | YGPositionTypeRelative, 113 | YGPositionTypeAbsolute) 114 | 115 | YG_ENUM_DECL( 116 | YGPrintOptions, 117 | YGPrintOptionsLayout = 1, 118 | YGPrintOptionsStyle = 2, 119 | YGPrintOptionsChildren = 4) 120 | 121 | YG_ENUM_SEQ_DECL( 122 | YGUnit, 123 | YGUnitUndefined, 124 | YGUnitPoint, 125 | YGUnitPercent, 126 | YGUnitAuto) 127 | 128 | YG_ENUM_SEQ_DECL( 129 | YGWrap, 130 | YGWrapNoWrap, 131 | YGWrapWrap, 132 | YGWrapWrapReverse) 133 | 134 | YG_EXTERN_C_END 135 | -------------------------------------------------------------------------------- /src/yoga/YGFloatOptional.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) Meta Platforms, Inc. and affiliates. 3 | * 4 | * This source code is licensed under the MIT license found in the 5 | * LICENSE file in the root directory of this source tree. 6 | */ 7 | 8 | #pragma once 9 | 10 | #ifdef __cplusplus 11 | 12 | #include 13 | #include 14 | #include "Yoga-internal.h" 15 | 16 | struct YGFloatOptional { 17 | private: 18 | float value_ = std::numeric_limits::quiet_NaN(); 19 | 20 | public: 21 | explicit constexpr YGFloatOptional(float value) : value_(value) {} 22 | constexpr YGFloatOptional() = default; 23 | 24 | // returns the wrapped value, or a value x with YGIsUndefined(x) == true 25 | constexpr float unwrap() const { return value_; } 26 | 27 | bool isUndefined() const { return std::isnan(value_); } 28 | }; 29 | 30 | // operators take YGFloatOptional by value, as it is a 32bit value 31 | 32 | inline bool operator==(YGFloatOptional lhs, YGFloatOptional rhs) { 33 | return lhs.unwrap() == rhs.unwrap() || 34 | (lhs.isUndefined() && rhs.isUndefined()); 35 | } 36 | inline bool operator!=(YGFloatOptional lhs, YGFloatOptional rhs) { 37 | return !(lhs == rhs); 38 | } 39 | 40 | inline bool operator==(YGFloatOptional lhs, float rhs) { 41 | return lhs == YGFloatOptional{rhs}; 42 | } 43 | inline bool operator!=(YGFloatOptional lhs, float rhs) { 44 | return !(lhs == rhs); 45 | } 46 | 47 | inline bool operator==(float lhs, YGFloatOptional rhs) { 48 | return rhs == lhs; 49 | } 50 | inline bool operator!=(float lhs, YGFloatOptional rhs) { 51 | return !(lhs == rhs); 52 | } 53 | 54 | inline YGFloatOptional operator+(YGFloatOptional lhs, YGFloatOptional rhs) { 55 | return YGFloatOptional{lhs.unwrap() + rhs.unwrap()}; 56 | } 57 | 58 | inline bool operator>(YGFloatOptional lhs, YGFloatOptional rhs) { 59 | return lhs.unwrap() > rhs.unwrap(); 60 | } 61 | 62 | inline bool operator<(YGFloatOptional lhs, YGFloatOptional rhs) { 63 | return lhs.unwrap() < rhs.unwrap(); 64 | } 65 | 66 | inline bool operator>=(YGFloatOptional lhs, YGFloatOptional rhs) { 67 | return lhs > rhs || lhs == rhs; 68 | } 69 | 70 | inline bool operator<=(YGFloatOptional lhs, YGFloatOptional rhs) { 71 | return lhs < rhs || lhs == rhs; 72 | } 73 | 74 | #endif 75 | -------------------------------------------------------------------------------- /src/yoga/YGLayout.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) Meta Platforms, Inc. and affiliates. 3 | * 4 | * This source code is licensed under the MIT license found in the 5 | * LICENSE file in the root directory of this source tree. 6 | */ 7 | 8 | #include "YGLayout.h" 9 | #include "Utils.h" 10 | 11 | using namespace facebook; 12 | 13 | bool YGLayout::operator==(YGLayout layout) const { 14 | bool isEqual = YGFloatArrayEqual(position, layout.position) && 15 | YGFloatArrayEqual(dimensions, layout.dimensions) && 16 | YGFloatArrayEqual(margin, layout.margin) && 17 | YGFloatArrayEqual(border, layout.border) && 18 | YGFloatArrayEqual(padding, layout.padding) && 19 | direction() == layout.direction() && 20 | hadOverflow() == layout.hadOverflow() && 21 | lastOwnerDirection == layout.lastOwnerDirection && 22 | nextCachedMeasurementsIndex == layout.nextCachedMeasurementsIndex && 23 | cachedLayout == layout.cachedLayout && 24 | computedFlexBasis == layout.computedFlexBasis; 25 | 26 | for (uint32_t i = 0; i < YG_MAX_CACHED_RESULT_COUNT && isEqual; ++i) { 27 | isEqual = isEqual && cachedMeasurements[i] == layout.cachedMeasurements[i]; 28 | } 29 | 30 | if (!yoga::isUndefined(measuredDimensions[0]) || 31 | !yoga::isUndefined(layout.measuredDimensions[0])) { 32 | isEqual = 33 | isEqual && (measuredDimensions[0] == layout.measuredDimensions[0]); 34 | } 35 | if (!yoga::isUndefined(measuredDimensions[1]) || 36 | !yoga::isUndefined(layout.measuredDimensions[1])) { 37 | isEqual = 38 | isEqual && (measuredDimensions[1] == layout.measuredDimensions[1]); 39 | } 40 | 41 | return isEqual; 42 | } 43 | -------------------------------------------------------------------------------- /src/yoga/YGLayout.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) Meta Platforms, Inc. and affiliates. 3 | * 4 | * This source code is licensed under the MIT license found in the 5 | * LICENSE file in the root directory of this source tree. 6 | */ 7 | 8 | #pragma once 9 | 10 | #ifdef __cplusplus 11 | 12 | #include "BitUtils.h" 13 | #include "YGFloatOptional.h" 14 | #include "Yoga-internal.h" 15 | 16 | struct YGLayout { 17 | std::array position = {}; 18 | std::array dimensions = {{YGUndefined, YGUndefined}}; 19 | std::array margin = {}; 20 | std::array border = {}; 21 | std::array padding = {}; 22 | 23 | private: 24 | static constexpr size_t directionOffset = 0; 25 | static constexpr size_t didUseLegacyFlagOffset = 26 | directionOffset + facebook::yoga::detail::bitWidthFn(); 27 | static constexpr size_t doesLegacyStretchFlagAffectsLayoutOffset = 28 | didUseLegacyFlagOffset + 1; 29 | static constexpr size_t hadOverflowOffset = 30 | doesLegacyStretchFlagAffectsLayoutOffset + 1; 31 | uint8_t flags = 0; 32 | 33 | public: 34 | uint32_t computedFlexBasisGeneration = 0; 35 | YGFloatOptional computedFlexBasis = {}; 36 | 37 | // Instead of recomputing the entire layout every single time, we cache some 38 | // information to break early when nothing changed 39 | uint32_t generationCount = 0; 40 | YGDirection lastOwnerDirection = YGDirectionInherit; 41 | 42 | uint32_t nextCachedMeasurementsIndex = 0; 43 | std::array 44 | cachedMeasurements = {}; 45 | std::array measuredDimensions = {{YGUndefined, YGUndefined}}; 46 | 47 | YGCachedMeasurement cachedLayout = YGCachedMeasurement(); 48 | 49 | YGDirection direction() const { 50 | return facebook::yoga::detail::getEnumData( 51 | flags, directionOffset); 52 | } 53 | 54 | void setDirection(YGDirection direction) { 55 | facebook::yoga::detail::setEnumData( 56 | flags, directionOffset, direction); 57 | } 58 | 59 | bool didUseLegacyFlag() const { 60 | return facebook::yoga::detail::getBooleanData( 61 | flags, didUseLegacyFlagOffset); 62 | } 63 | 64 | void setDidUseLegacyFlag(bool val) { 65 | facebook::yoga::detail::setBooleanData(flags, didUseLegacyFlagOffset, val); 66 | } 67 | 68 | bool doesLegacyStretchFlagAffectsLayout() const { 69 | return facebook::yoga::detail::getBooleanData( 70 | flags, doesLegacyStretchFlagAffectsLayoutOffset); 71 | } 72 | 73 | void setDoesLegacyStretchFlagAffectsLayout(bool val) { 74 | facebook::yoga::detail::setBooleanData( 75 | flags, doesLegacyStretchFlagAffectsLayoutOffset, val); 76 | } 77 | 78 | bool hadOverflow() const { 79 | return facebook::yoga::detail::getBooleanData(flags, hadOverflowOffset); 80 | } 81 | void setHadOverflow(bool hadOverflow) { 82 | facebook::yoga::detail::setBooleanData( 83 | flags, hadOverflowOffset, hadOverflow); 84 | } 85 | 86 | bool operator==(YGLayout layout) const; 87 | bool operator!=(YGLayout layout) const { return !(*this == layout); } 88 | }; 89 | 90 | #endif 91 | -------------------------------------------------------------------------------- /src/yoga/YGMacros.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) Meta Platforms, Inc. and affiliates. 3 | * 4 | * This source code is licensed under the MIT license found in the 5 | * LICENSE file in the root directory of this source tree. 6 | */ 7 | 8 | #pragma once 9 | 10 | #ifdef __cplusplus 11 | #define YG_EXTERN_C_BEGIN extern "C" { 12 | #define YG_EXTERN_C_END } 13 | #else 14 | #define YG_EXTERN_C_BEGIN 15 | #define YG_EXTERN_C_END 16 | #endif 17 | 18 | #ifdef _WINDLL 19 | #define WIN_EXPORT __declspec(dllexport) 20 | #else 21 | #define WIN_EXPORT 22 | #endif 23 | 24 | #ifndef YOGA_EXPORT 25 | #ifdef _MSC_VER 26 | #define YOGA_EXPORT 27 | #else 28 | #define YOGA_EXPORT __attribute__((visibility("default"))) 29 | #endif 30 | #endif 31 | 32 | #ifdef NS_ENUM 33 | // Cannot use NSInteger as NSInteger has a different size than int (which is the 34 | // default type of a enum). Therefor when linking the Yoga C library into obj-c 35 | // the header is a missmatch for the Yoga ABI. 36 | #define YG_ENUM_BEGIN(name) NS_ENUM(int, name) 37 | #define YG_ENUM_END(name) 38 | #else 39 | #define YG_ENUM_BEGIN(name) enum name 40 | #define YG_ENUM_END(name) name 41 | #endif 42 | 43 | #ifdef __cplusplus 44 | namespace facebook { 45 | namespace yoga { 46 | namespace enums { 47 | 48 | template 49 | constexpr int count(); // can't use `= delete` due to a defect in clang < 3.9 50 | 51 | namespace detail { 52 | template 53 | constexpr int n() { 54 | return sizeof...(xs); 55 | } 56 | } // namespace detail 57 | 58 | } // namespace enums 59 | } // namespace yoga 60 | } // namespace facebook 61 | #endif 62 | 63 | #define YG_ENUM_DECL(NAME, ...) \ 64 | typedef YG_ENUM_BEGIN(NAME){__VA_ARGS__} YG_ENUM_END(NAME); \ 65 | WIN_EXPORT const char* NAME##ToString(NAME); 66 | 67 | #ifdef __cplusplus 68 | #define YG_ENUM_SEQ_DECL(NAME, ...) \ 69 | YG_ENUM_DECL(NAME, __VA_ARGS__) \ 70 | YG_EXTERN_C_END \ 71 | namespace facebook { \ 72 | namespace yoga { \ 73 | namespace enums { \ 74 | template <> \ 75 | constexpr int count() { \ 76 | return detail::n<__VA_ARGS__>(); \ 77 | } \ 78 | } \ 79 | } \ 80 | } \ 81 | YG_EXTERN_C_BEGIN 82 | #else 83 | #define YG_ENUM_SEQ_DECL YG_ENUM_DECL 84 | #endif 85 | 86 | #ifdef __GNUC__ 87 | #define YG_DEPRECATED __attribute__((deprecated)) 88 | #elif defined(_MSC_VER) 89 | #define YG_DEPRECATED __declspec(deprecated) 90 | #elif __cplusplus >= 201402L 91 | #if defined(__has_cpp_attribute) 92 | #if __has_cpp_attribute(deprecated) 93 | #define YG_DEPRECATED [[deprecated]] 94 | #endif 95 | #endif 96 | #endif 97 | -------------------------------------------------------------------------------- /src/yoga/YGNodePrint.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) Meta Platforms, Inc. and affiliates. 3 | * 4 | * This source code is licensed under the MIT license found in the 5 | * LICENSE file in the root directory of this source tree. 6 | */ 7 | 8 | #ifdef DEBUG 9 | 10 | #pragma once 11 | 12 | #ifdef __cplusplus 13 | 14 | #include 15 | 16 | #include "Yoga.h" 17 | 18 | namespace facebook { 19 | namespace yoga { 20 | 21 | void YGNodeToString( 22 | std::string& str, 23 | YGNodeRef node, 24 | YGPrintOptions options, 25 | uint32_t level); 26 | 27 | } // namespace yoga 28 | } // namespace facebook 29 | 30 | #endif 31 | 32 | #endif 33 | -------------------------------------------------------------------------------- /src/yoga/YGStyle.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) Meta Platforms, Inc. and affiliates. 3 | * 4 | * This source code is licensed under the MIT license found in the 5 | * LICENSE file in the root directory of this source tree. 6 | */ 7 | 8 | #include "YGStyle.h" 9 | #include "Utils.h" 10 | 11 | // Yoga specific properties, not compatible with flexbox specification 12 | bool operator==(const YGStyle& lhs, const YGStyle& rhs) { 13 | bool areNonFloatValuesEqual = lhs.direction() == rhs.direction() && 14 | lhs.flexDirection() == rhs.flexDirection() && 15 | lhs.justifyContent() == rhs.justifyContent() && 16 | lhs.alignContent() == rhs.alignContent() && 17 | lhs.alignItems() == rhs.alignItems() && 18 | lhs.alignSelf() == rhs.alignSelf() && 19 | lhs.positionType() == rhs.positionType() && 20 | lhs.flexWrap() == rhs.flexWrap() && lhs.overflow() == rhs.overflow() && 21 | lhs.display() == rhs.display() && 22 | YGValueEqual(lhs.flexBasis(), rhs.flexBasis()) && 23 | lhs.margin() == rhs.margin() && lhs.position() == rhs.position() && 24 | lhs.padding() == rhs.padding() && lhs.border() == rhs.border() && 25 | lhs.gap() == rhs.gap() && lhs.dimensions() == rhs.dimensions() && 26 | lhs.minDimensions() == rhs.minDimensions() && 27 | lhs.maxDimensions() == rhs.maxDimensions(); 28 | 29 | areNonFloatValuesEqual = areNonFloatValuesEqual && 30 | lhs.flex().isUndefined() == rhs.flex().isUndefined(); 31 | if (areNonFloatValuesEqual && !lhs.flex().isUndefined() && 32 | !rhs.flex().isUndefined()) { 33 | areNonFloatValuesEqual = areNonFloatValuesEqual && lhs.flex() == rhs.flex(); 34 | } 35 | 36 | areNonFloatValuesEqual = areNonFloatValuesEqual && 37 | lhs.flexGrow().isUndefined() == rhs.flexGrow().isUndefined(); 38 | if (areNonFloatValuesEqual && !lhs.flexGrow().isUndefined()) { 39 | areNonFloatValuesEqual = 40 | areNonFloatValuesEqual && lhs.flexGrow() == rhs.flexGrow(); 41 | } 42 | 43 | areNonFloatValuesEqual = areNonFloatValuesEqual && 44 | lhs.flexShrink().isUndefined() == rhs.flexShrink().isUndefined(); 45 | if (areNonFloatValuesEqual && !rhs.flexShrink().isUndefined()) { 46 | areNonFloatValuesEqual = 47 | areNonFloatValuesEqual && lhs.flexShrink() == rhs.flexShrink(); 48 | } 49 | 50 | if (!(lhs.aspectRatio().isUndefined() && rhs.aspectRatio().isUndefined())) { 51 | areNonFloatValuesEqual = 52 | areNonFloatValuesEqual && lhs.aspectRatio() == rhs.aspectRatio(); 53 | } 54 | 55 | return areNonFloatValuesEqual; 56 | } 57 | -------------------------------------------------------------------------------- /src/yoga/YGValue.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) Meta Platforms, Inc. and affiliates. 3 | * 4 | * This source code is licensed under the MIT license found in the 5 | * LICENSE file in the root directory of this source tree. 6 | */ 7 | 8 | #include "YGValue.h" 9 | 10 | const YGValue YGValueZero = {0, YGUnitPoint}; 11 | const YGValue YGValueUndefined = {YGUndefined, YGUnitUndefined}; 12 | const YGValue YGValueAuto = {YGUndefined, YGUnitAuto}; 13 | -------------------------------------------------------------------------------- /src/yoga/YGValue.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) Meta Platforms, Inc. and affiliates. 3 | * 4 | * This source code is licensed under the MIT license found in the 5 | * LICENSE file in the root directory of this source tree. 6 | */ 7 | 8 | #pragma once 9 | 10 | #include 11 | #include "YGEnums.h" 12 | #include "YGMacros.h" 13 | 14 | #if defined(_MSC_VER) && defined(__clang__) 15 | #define COMPILING_WITH_CLANG_ON_WINDOWS 16 | #endif 17 | #if defined(COMPILING_WITH_CLANG_ON_WINDOWS) 18 | #include 19 | constexpr float YGUndefined = std::numeric_limits::quiet_NaN(); 20 | #else 21 | YG_EXTERN_C_BEGIN 22 | 23 | // Not defined in MSVC++ 24 | #ifndef NAN 25 | static const uint32_t __nan = 0x7fc00000; 26 | #define NAN (*(const float*) __nan) 27 | #endif 28 | 29 | #define YGUndefined NAN 30 | #endif 31 | 32 | typedef struct YGValue { 33 | float value; 34 | YGUnit unit; 35 | } YGValue; 36 | 37 | YOGA_EXPORT extern const YGValue YGValueAuto; 38 | YOGA_EXPORT extern const YGValue YGValueUndefined; 39 | YOGA_EXPORT extern const YGValue YGValueZero; 40 | 41 | #if !defined(COMPILING_WITH_CLANG_ON_WINDOWS) 42 | YG_EXTERN_C_END 43 | #endif 44 | #undef COMPILING_WITH_CLANG_ON_WINDOWS 45 | 46 | #ifdef __cplusplus 47 | 48 | inline bool operator==(const YGValue& lhs, const YGValue& rhs) { 49 | if (lhs.unit != rhs.unit) { 50 | return false; 51 | } 52 | 53 | switch (lhs.unit) { 54 | case YGUnitUndefined: 55 | case YGUnitAuto: 56 | return true; 57 | case YGUnitPoint: 58 | case YGUnitPercent: 59 | return lhs.value == rhs.value; 60 | } 61 | 62 | return false; 63 | } 64 | 65 | inline bool operator!=(const YGValue& lhs, const YGValue& rhs) { 66 | return !(lhs == rhs); 67 | } 68 | 69 | inline YGValue operator-(const YGValue& value) { 70 | return {-value.value, value.unit}; 71 | } 72 | 73 | namespace facebook { 74 | namespace yoga { 75 | namespace literals { 76 | 77 | inline YGValue operator"" _pt(long double value) { 78 | return YGValue{static_cast(value), YGUnitPoint}; 79 | } 80 | inline YGValue operator"" _pt(unsigned long long value) { 81 | return operator"" _pt(static_cast(value)); 82 | } 83 | 84 | inline YGValue operator"" _percent(long double value) { 85 | return YGValue{static_cast(value), YGUnitPercent}; 86 | } 87 | inline YGValue operator"" _percent(unsigned long long value) { 88 | return operator"" _percent(static_cast(value)); 89 | } 90 | 91 | } // namespace literals 92 | } // namespace yoga 93 | } // namespace facebook 94 | 95 | #endif 96 | -------------------------------------------------------------------------------- /src/yoga/event/event.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) Meta Platforms, Inc. and affiliates. 3 | * 4 | * This source code is licensed under the MIT license found in the 5 | * LICENSE file in the root directory of this source tree. 6 | */ 7 | 8 | #include "event.h" 9 | #include 10 | #include 11 | 12 | namespace facebook { 13 | namespace yoga { 14 | 15 | const char* LayoutPassReasonToString(const LayoutPassReason value) { 16 | switch (value) { 17 | case LayoutPassReason::kInitial: 18 | return "initial"; 19 | case LayoutPassReason::kAbsLayout: 20 | return "abs_layout"; 21 | case LayoutPassReason::kStretch: 22 | return "stretch"; 23 | case LayoutPassReason::kMultilineStretch: 24 | return "multiline_stretch"; 25 | case LayoutPassReason::kFlexLayout: 26 | return "flex_layout"; 27 | case LayoutPassReason::kMeasureChild: 28 | return "measure"; 29 | case LayoutPassReason::kAbsMeasureChild: 30 | return "abs_measure"; 31 | case LayoutPassReason::kFlexMeasure: 32 | return "flex_measure"; 33 | default: 34 | return "unknown"; 35 | } 36 | } 37 | 38 | namespace { 39 | 40 | struct Node { 41 | std::function subscriber = nullptr; 42 | Node* next = nullptr; 43 | 44 | Node(std::function&& subscriber) 45 | : subscriber{std::move(subscriber)} {} 46 | }; 47 | 48 | std::atomic subscribers{nullptr}; 49 | 50 | Node* push(Node* newHead) { 51 | Node* oldHead; 52 | do { 53 | oldHead = subscribers.load(std::memory_order_relaxed); 54 | if (newHead != nullptr) { 55 | newHead->next = oldHead; 56 | } 57 | } while (!subscribers.compare_exchange_weak( 58 | oldHead, newHead, std::memory_order_release, std::memory_order_relaxed)); 59 | return oldHead; 60 | } 61 | 62 | } // namespace 63 | 64 | void Event::reset() { 65 | auto head = push(nullptr); 66 | while (head != nullptr) { 67 | auto current = head; 68 | head = head->next; 69 | delete current; 70 | } 71 | } 72 | 73 | void Event::subscribe(std::function&& subscriber) { 74 | push(new Node{std::move(subscriber)}); 75 | } 76 | 77 | void Event::publish(const YGNode& node, Type eventType, const Data& eventData) { 78 | for (auto subscriber = subscribers.load(std::memory_order_relaxed); 79 | subscriber != nullptr; 80 | subscriber = subscriber->next) { 81 | subscriber->subscriber(node, eventType, eventData); 82 | } 83 | } 84 | 85 | } // namespace yoga 86 | } // namespace facebook 87 | -------------------------------------------------------------------------------- /src/yoga/event/event.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) Meta Platforms, Inc. and affiliates. 3 | * 4 | * This source code is licensed under the MIT license found in the 5 | * LICENSE file in the root directory of this source tree. 6 | */ 7 | 8 | #pragma once 9 | 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include "../YGEnums.h" 15 | 16 | struct YGConfig; 17 | struct YGNode; 18 | 19 | namespace facebook { 20 | namespace yoga { 21 | 22 | enum struct LayoutType : int { 23 | kLayout = 0, 24 | kMeasure = 1, 25 | kCachedLayout = 2, 26 | kCachedMeasure = 3 27 | }; 28 | 29 | enum struct LayoutPassReason : int { 30 | kInitial = 0, 31 | kAbsLayout = 1, 32 | kStretch = 2, 33 | kMultilineStretch = 3, 34 | kFlexLayout = 4, 35 | kMeasureChild = 5, 36 | kAbsMeasureChild = 6, 37 | kFlexMeasure = 7, 38 | COUNT 39 | }; 40 | 41 | struct LayoutData { 42 | int layouts; 43 | int measures; 44 | int maxMeasureCache; 45 | int cachedLayouts; 46 | int cachedMeasures; 47 | int measureCallbacks; 48 | std::array(LayoutPassReason::COUNT)> 49 | measureCallbackReasonsCount; 50 | }; 51 | 52 | const char* LayoutPassReasonToString(const LayoutPassReason value); 53 | 54 | struct YOGA_EXPORT Event { 55 | enum Type { 56 | NodeAllocation, 57 | NodeDeallocation, 58 | NodeLayout, 59 | LayoutPassStart, 60 | LayoutPassEnd, 61 | MeasureCallbackStart, 62 | MeasureCallbackEnd, 63 | NodeBaselineStart, 64 | NodeBaselineEnd, 65 | }; 66 | class Data; 67 | using Subscriber = void(const YGNode&, Type, Data); 68 | using Subscribers = std::vector>; 69 | 70 | template 71 | struct TypedData {}; 72 | 73 | class Data { 74 | const void* data_; 75 | 76 | public: 77 | template 78 | Data(const TypedData& data) : data_{&data} {} 79 | 80 | template 81 | const TypedData& get() const { 82 | return *static_cast*>(data_); 83 | }; 84 | }; 85 | 86 | static void reset(); 87 | 88 | static void subscribe(std::function&& subscriber); 89 | 90 | template 91 | static void publish(const YGNode& node, const TypedData& eventData = {}) { 92 | #ifdef YG_ENABLE_EVENTS 93 | publish(node, E, Data{eventData}); 94 | #else 95 | (void) node; 96 | (void) eventData; 97 | #endif 98 | } 99 | 100 | template 101 | static void publish(const YGNode* node, const TypedData& eventData = {}) { 102 | publish(*node, eventData); 103 | } 104 | 105 | private: 106 | static void publish(const YGNode&, Type, const Data&); 107 | }; 108 | 109 | template <> 110 | struct Event::TypedData { 111 | YGConfig* config; 112 | }; 113 | 114 | template <> 115 | struct Event::TypedData { 116 | YGConfig* config; 117 | }; 118 | 119 | template <> 120 | struct Event::TypedData { 121 | void* layoutContext; 122 | }; 123 | 124 | template <> 125 | struct Event::TypedData { 126 | void* layoutContext; 127 | LayoutData* layoutData; 128 | }; 129 | 130 | template <> 131 | struct Event::TypedData { 132 | void* layoutContext; 133 | float width; 134 | YGMeasureMode widthMeasureMode; 135 | float height; 136 | YGMeasureMode heightMeasureMode; 137 | float measuredWidth; 138 | float measuredHeight; 139 | const LayoutPassReason reason; 140 | }; 141 | 142 | template <> 143 | struct Event::TypedData { 144 | LayoutType layoutType; 145 | void* layoutContext; 146 | }; 147 | 148 | } // namespace yoga 149 | } // namespace facebook 150 | -------------------------------------------------------------------------------- /src/yoga/log.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) Meta Platforms, Inc. and affiliates. 3 | * 4 | * This source code is licensed under the MIT license found in the 5 | * LICENSE file in the root directory of this source tree. 6 | */ 7 | 8 | #include "log.h" 9 | 10 | #include "Yoga.h" 11 | #include "YGConfig.h" 12 | #include "YGNode.h" 13 | 14 | namespace facebook { 15 | namespace yoga { 16 | namespace detail { 17 | 18 | namespace { 19 | 20 | void vlog( 21 | YGConfig* config, 22 | YGNode* node, 23 | YGLogLevel level, 24 | void* context, 25 | const char* format, 26 | va_list args) { 27 | YGConfig* logConfig = config != nullptr ? config : YGConfigGetDefault(); 28 | logConfig->log(logConfig, node, level, context, format, args); 29 | } 30 | } // namespace 31 | 32 | YOGA_EXPORT void Log::log( 33 | YGNode* node, 34 | YGLogLevel level, 35 | void* context, 36 | const char* format, 37 | ...) noexcept { 38 | va_list args; 39 | va_start(args, format); 40 | vlog( 41 | node == nullptr ? nullptr : node->getConfig(), 42 | node, 43 | level, 44 | context, 45 | format, 46 | args); 47 | va_end(args); 48 | } 49 | 50 | void Log::log( 51 | YGConfig* config, 52 | YGLogLevel level, 53 | void* context, 54 | const char* format, 55 | ...) noexcept { 56 | va_list args; 57 | va_start(args, format); 58 | vlog(config, nullptr, level, context, format, args); 59 | va_end(args); 60 | } 61 | 62 | } // namespace detail 63 | } // namespace yoga 64 | } // namespace facebook 65 | -------------------------------------------------------------------------------- /src/yoga/log.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) Meta Platforms, Inc. and affiliates. 3 | * 4 | * This source code is licensed under the MIT license found in the 5 | * LICENSE file in the root directory of this source tree. 6 | */ 7 | 8 | #pragma once 9 | 10 | #ifdef __cplusplus 11 | 12 | #include "YGEnums.h" 13 | 14 | struct YGNode; 15 | struct YGConfig; 16 | 17 | namespace facebook { 18 | namespace yoga { 19 | 20 | namespace detail { 21 | 22 | struct Log { 23 | static void log( 24 | YGNode* node, 25 | YGLogLevel level, 26 | void*, 27 | const char* message, 28 | ...) noexcept; 29 | 30 | static void log( 31 | YGConfig* config, 32 | YGLogLevel level, 33 | void*, 34 | const char* format, 35 | ...) noexcept; 36 | }; 37 | 38 | } // namespace detail 39 | } // namespace yoga 40 | } // namespace facebook 41 | 42 | #endif 43 | --------------------------------------------------------------------------------