Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
459 commits
Select commit Hold shift + click to select a range
78644f2
feat(document-windows): add restore/save/Memento to components
iMeaNz Apr 28, 2025
e4339b8
refactor(document-windows): now use a map of type index to component …
iMeaNz Apr 28, 2025
12dc602
feat(document-windows): add action management for undo/redo
iMeaNz Apr 28, 2025
cede59d
feat(document-windows): add undo/redo handling
iMeaNz Apr 28, 2025
b4b3353
chore(document-windows): add source files
iMeaNz Apr 28, 2025
3674e28
refactor(document-windows): move some function impl in source file
iMeaNz Apr 28, 2025
8bfac14
refactor(document-windows): split editor scene into multiple source file
iMeaNz Apr 28, 2025
d0c5ddf
refactor(document-windows): split asset manager window into multiple …
iMeaNz Apr 28, 2025
2129356
style(document-windows): change comment for more clarity
iMeaNz Apr 28, 2025
5ce2f82
refactor(document-windows): split console window into multiple source…
iMeaNz Apr 28, 2025
44276d1
refactor(document-windows): split inspector window and material inspe…
iMeaNz Apr 28, 2025
91cbdaa
refactor(document-windows): split scene tree window into multiple sou…
iMeaNz Apr 28, 2025
9addf14
refactor(document-windows): now using builder pattern for command sbo…
iMeaNz Apr 28, 2025
017c48b
feat(document-windows): add str uid for bottom bar
iMeaNz Apr 28, 2025
8001e20
refactor(document-windows): split into multiple method + fix: bottom …
iMeaNz Apr 28, 2025
b03c95d
feat(document-windows): add shortcuts for scene tree window
iMeaNz Apr 29, 2025
c2e1880
fix(document-windows): viewport now correspond to scene viewport when…
iMeaNz Apr 29, 2025
225a0ae
fix(document-windows): fix strange blip when cancelling the camera cr…
iMeaNz Apr 29, 2025
230a8a2
refactor(document-windows): add entity is now handled via a popup
iMeaNz Apr 29, 2025
19f698a
feat(document-windows): add expand/collapse shortcut + add entity sho…
iMeaNz Apr 29, 2025
66bf660
fix(document-windows): fix camera not working when creating scene
iMeaNz Apr 29, 2025
58c4554
fix(document-windows): add export compile commands for zed editor
iMeaNz Apr 29, 2025
bb10683
refactor(document-windows): add a check for window visiblity when it …
iMeaNz Apr 30, 2025
5b6eec2
fix(document-windows): camera not moving when switching scene
iMeaNz Apr 30, 2025
fbd4559
chore(document-windows): add source files
iMeaNz Apr 30, 2025
27bacea
fix(document-windows): now only using quat from the transfrom for cam…
iMeaNz Apr 30, 2025
cc43cd6
refactor(document-windows): add SceneInfo struct to pass to the run f…
iMeaNz Apr 30, 2025
b398870
refactor(document-windows): centralized the window pos/size and conte…
iMeaNz Apr 30, 2025
9ccce74
fix(document-windows): now use the viewport bounds for the gizmo rect…
iMeaNz Apr 30, 2025
5ce7f82
fix(document-windows): now properly retrieve the viewport bounds base…
iMeaNz Apr 30, 2025
56916f4
fix(document-windows): now pass viewport bounds to the engine to prop…
iMeaNz Apr 30, 2025
f3fcdb3
fix(document-windows): properly project the mouse position into the w…
iMeaNz Apr 30, 2025
7064c19
feat(document-windows): add utils function to check if 2D pos is with…
iMeaNz Apr 30, 2025
f184c4d
fix(document-windows): add header include for msvc
iMeaNz May 4, 2025
256bb6c
Merge pull request #155 from NexoEngine/refactor/document-windows
iMeaNz May 4, 2025
e4984cc
init(document-windows): init branch
iMeaNz Mar 25, 2025
ffb9a90
feat(asset-ecs): implement ModelImporter class for 3D model asset han…
Thyodas Apr 13, 2025
4f4bec4
feat(asset-ecs): add handling of textures with less than 3 channels i…
Thyodas Apr 13, 2025
818975f
refactor(asset-ecs): change Texture2D creation methods to return uniq…
Thyodas Apr 13, 2025
53a7904
refactor(asset-ecs): move implementation of TextureImporter to .cpp file
Thyodas Apr 13, 2025
e36795d
fix(asset-ecs): compilation on tests, change texture variable declara…
Thyodas Apr 13, 2025
2489a56
Revert "refactor(asset-ecs): change Texture2D creation methods to ret…
Thyodas Apr 13, 2025
a3b421f
Revert "fix(asset-ecs): compilation on tests, change texture variable…
Thyodas Apr 13, 2025
6d68fe2
refactor(asset-ecs): remove unused functions and commented code from …
Thyodas Apr 14, 2025
690ee4e
feat(asset-ecs): implement material and textures assets in ECS
Thyodas Apr 14, 2025
8084638
refactor(asset-ecs): rename Material to InternalMaterial and update r…
Thyodas Apr 14, 2025
39e450f
refactor(renderer): update Material references to use renderer::Mater…
Thyodas Apr 14, 2025
c90aa8f
refactor(asset-ecs): rename Renderer classes to add Nx* prefix
Thyodas Apr 24, 2025
42c5e1e
refactor(asset-ecs): update Model and Textures import
Thyodas Apr 24, 2025
9010e04
refactor(asset-ecs): rename exception class in test
Thyodas Apr 24, 2025
3ae61dc
refactor(asset-ecs): modify document-windows code after rebase
Thyodas Apr 25, 2025
b1ac596
feat(asset-ecs): finish migrating to new AssetRef after rebase
Thyodas Apr 25, 2025
74f965f
fix(asset-ecs): invalid image format on load
Thyodas Apr 25, 2025
a847467
refactor(asset-ecs): remove unused Render3D component include, better…
Thyodas Apr 25, 2025
3fb1583
refactor(asset-ecs): add new constructors to Texture asset, improve T…
Thyodas Apr 26, 2025
3b82ed3
feat(asset-ecs): add ModelImporter tests and improve texture format c…
Thyodas Apr 26, 2025
03a68d5
feat(asset-ecs): add comparison operators for GenericAssetRef
Thyodas Apr 27, 2025
22fce71
refactor(asset-ecs): fix warning for if indentation
Thyodas Apr 27, 2025
f897795
refactor(asset-ecs): describe texel buffer as bottom-left starting in…
Thyodas Apr 27, 2025
75b65ac
feat(asset-ecs): fix assimp hint handling, fix roughness
Thyodas Apr 27, 2025
16942c1
feat(asset-ecs): enhance ModelImporter tests with OpenGL context and …
Thyodas Apr 27, 2025
bf6c95d
test(asset-ecs): change GLFW skip to fail on initialization errors
Thyodas Apr 27, 2025
3709679
ci(asset-ecs): add workflow_dispatch support with optional debug inpu…
Thyodas Apr 27, 2025
77f4255
test(asset-ecs): fix segv reorder TearDown to ensure OpenGL cleanup o…
Thyodas Apr 27, 2025
a3deb1c
feat(asset-ecs): add ARGB8 to RGBA8 conversion and enhance texture fo…
Thyodas Apr 27, 2025
a2a3b15
refactor(asset-ecs): remove redundant const qualifiers from getter me…
Thyodas Apr 27, 2025
12906a9
feat(asset-ecs): enhance logging callbacks to include source location…
Thyodas Apr 27, 2025
9157415
refactor(asset-ecs): convert IAsset methods to pure virtual functions…
Thyodas Apr 27, 2025
523c413
feat(asset-ecs): update TextureButton to return modified status and o…
Thyodas Apr 27, 2025
1b3416c
feat(asset-ecs): enhance error handling with message box for fatal ex…
Thyodas Apr 27, 2025
02a0b1d
refactor(asset-ecs): add memchr with strlen for safer validation
Thyodas Apr 28, 2025
d4d5827
fix(asset-ecs): images and textures flipped UVs #237
Thyodas Apr 29, 2025
95c763e
refactor(asset-ecs): replace raw pointers with unique_ptr for asset d…
Thyodas Apr 29, 2025
279ed32
feat(asset-ecs): bump vcpkg submodule and baseline + bump tinyfd
Thyodas Apr 29, 2025
df8242b
feat(asset-ecs): change factory for Models to take AssetRef
Thyodas Apr 29, 2025
3f68fa1
fix(asset-ecs): renderer names from rebase
Thyodas Apr 30, 2025
bf48533
fix(asset-ecs): reapply changes in DocumentWindows after rebase
Thyodas Apr 30, 2025
f399a91
fix(asset-ecs): missing include
Thyodas Apr 30, 2025
c50e579
Merge pull request #243 from NexoEngine/feat/asset-ecs
iMeaNz May 4, 2025
057884b
chore(license): add copyright and license files for various dependencies
Thyodas Apr 15, 2025
dc08082
chore(license): update copyright and license information for various …
Thyodas Apr 15, 2025
e723229
feat(license): add installation of license files and components in NS…
Thyodas Apr 15, 2025
af9e0fd
feat(license): force license installation process, remove optional li…
Thyodas Apr 15, 2025
d26fe6a
feat(license): make NSIS installer DPI aware, less blurry
Thyodas Apr 15, 2025
b1058ba
docs(license): add license to README.md, add tutorial on how to use C…
Thyodas Apr 15, 2025
fea7823
docs(license): add line breaks, add mail contact info
Thyodas Apr 15, 2025
b0ee833
ci(vcpkg-binary-cache): add binary caching for vcpkg
Thyodas May 16, 2025
b641dd0
fix(vcpkg-binary-cache): invalid script for vcpkg bin on linux
Thyodas May 16, 2025
c6a32d5
ci(vcpkg-binary-cache): add vcpkg binary cache to codeql action
Thyodas May 16, 2025
240b561
ci(vcpkg-binary-cache): update NuGet source fetching for non-Windows …
Thyodas May 16, 2025
7befba1
fix(vcpkg-binary-cache): move job env to step env
Thyodas May 16, 2025
890b6b3
Merge pull request #204 from NexoEngine/chore/license
Thyodas May 20, 2025
476fc6c
Merge branch 'dev' into ci/vcpkg-binary-cache
Thyodas May 20, 2025
c8e0638
Merge pull request #287 from NexoEngine/ci/vcpkg-binary-cache
Thyodas May 20, 2025
bc66687
Merge branch 'dev' into dependabot/github_actions/langroodi/doxygeniz…
Thyodas May 20, 2025
2a93f6e
chore(deps): bump langroodi/doxygenize from 1.6.1 to 1.7.0 (#91)
Thyodas May 20, 2025
6581e13
feat(asset-ecs): finish migrating to new AssetRef after rebase
Thyodas Apr 25, 2025
f17d032
refactor(undo-redo): restore method now in components themselves rath…
iMeaNz Apr 30, 2025
1a11fa5
refactor(undo-redo): fix the meta helper + not using anymore lambdas …
iMeaNz Apr 30, 2025
66ed8ae
feat(undo-redo): add component restore factory
iMeaNz Apr 30, 2025
47803e3
refactor(undo-redo): create and delete actions now use component rest…
iMeaNz Apr 30, 2025
64b6698
chore(undo-redo): add source file
iMeaNz Apr 30, 2025
8a9d139
chore(undo-redo): remove useless print
iMeaNz Apr 30, 2025
96a67d0
refactor(undo-redo): add a way to clear a certain number of undoable …
iMeaNz Apr 30, 2025
bb4c0f0
feat(undo-redo): add final actions in the editor scene
iMeaNz Apr 30, 2025
8e668ea
chore(undo-redo): remove useless print + function
iMeaNz Apr 30, 2025
ee3c4be
feat(undo-redo): add undo/redo action for ambient light property
iMeaNz Apr 30, 2025
97b4c79
refactor(undo-redo): improve undo/redo logic of the ambient light pro…
iMeaNz Apr 30, 2025
5fe7c06
refactor(undo-redo): moved the ambient property to ImNexo entity prop…
iMeaNz Apr 30, 2025
9cb1b40
feat(undo-redo): add undo/redo on camera controller modification
iMeaNz Apr 30, 2025
5cf3cf0
feat(undo-redo): add isActive,isActivated,isDeactivaed util method
iMeaNz May 1, 2025
093c4e1
feat(undo-redo): use the set item active/deactive/activated in the Ro…
iMeaNz May 1, 2025
5595a28
refactor(undo-redo): not passing the memento anymore to CameraControl…
iMeaNz May 1, 2025
f7e4732
feat(undo-redo): add active/deactive/activated function to color editor
iMeaNz May 1, 2025
3767086
refactor(undo-redo): not passing the memento anymore + feat: add came…
iMeaNz May 1, 2025
ed6ce31
refactor(undo-redo): now use the new isActive... methods to register …
iMeaNz May 1, 2025
e864589
feat(undo-redo): add undo/redo on camera property
iMeaNz May 1, 2025
0b4823a
fix(undo-redo): now block resize when the camera viewport is locked
iMeaNz May 1, 2025
3229411
chore(undo-redo): add source file
iMeaNz May 1, 2025
96bf24c
fix(undo-redo): now call the resize func in the restore func of the c…
iMeaNz May 1, 2025
85a05af
fix(undo-redo): remove useless copy
iMeaNz May 1, 2025
383945c
feat(undo-redo): add camera target property
iMeaNz May 1, 2025
3bcefc9
feat(undo-reo): add active/activated/deactivated to RowEntityDropdown…
iMeaNz May 1, 2025
b422009
refactor(undo-redo): made the specific item state reset func internal
iMeaNz May 1, 2025
7d72b92
feat(undo-redo): add undo/redo on directional light property
iMeaNz May 1, 2025
7e95ea2
feat(undo-redo): add undo/redo for the point light property
iMeaNz May 1, 2025
f48a049
feat(undo-redo): add undo/redo for render component
iMeaNz May 1, 2025
6d91704
feat(undo-redo): add undo/redo for spot light property
iMeaNz May 1, 2025
338555d
feat(undo-redo): add undo/redo for transform property
iMeaNz May 1, 2025
af251b1
feat(undo-redo): add undo/redo on entity deletion in the scene tree
iMeaNz May 1, 2025
87523ab
feat(undo-redo): add func to duplicate an entity
iMeaNz May 1, 2025
e0c6c05
feat(undo-redo): add undo/redo on scene tree entity duplication
iMeaNz May 1, 2025
56a75b1
refactor(undo-redo): remove useless func
iMeaNz May 1, 2025
1840c2d
feat(uno-redo): add undo/redo on entity creation in the scene tree
iMeaNz May 1, 2025
aa36261
feat(undo-redo): add function to retrieve stack size
iMeaNz May 1, 2025
594fa7e
feat(undo-redo): add component add/remove actions
iMeaNz May 1, 2025
2c40197
feat(undo-redo): add undo redo for the camera inspector
iMeaNz May 1, 2025
9bc1bb0
fix(undo-redo): fix sonar cloud issues
iMeaNz May 1, 2025
0ac99c7
fix(undo-redo): fix hotspot issue sonar
iMeaNz May 1, 2025
33d7083
fix(undo-reo): better fix for sonar
iMeaNz May 1, 2025
ee33047
fix(undo-redo): fix sonar issues
iMeaNz May 1, 2025
7793f96
fix(undo-redo): fix sonar issues
iMeaNz May 1, 2025
36ffae1
fix(undo-redo): fix compile windows
iMeaNz May 1, 2025
89da3d9
fix(undo-redo): fix sonar issues
iMeaNz May 2, 2025
4fb73c6
fix(undo-redo): fix sonar issues
iMeaNz May 4, 2025
c21c7bc
fix(undo-redo): fix sonar issues
iMeaNz May 4, 2025
a2543ea
fix(undo-redo): fix possible overflow
iMeaNz May 4, 2025
53ed08f
tests(test-window): add test file protocol for the editor
iMeaNz May 4, 2025
7ef9f05
feat(test-window): add test window + test protocol file parser
iMeaNz May 4, 2025
fe36a73
feat(test-window): add struid for test window
iMeaNz May 4, 2025
851b2ba
feat(test-window): add test window opening when pressing CTRL + SHIFT…
iMeaNz May 4, 2025
3cd1f54
chore(test-window): add source files
iMeaNz May 4, 2025
71d4a78
feat(test-window): add InvalidTestFileFormat + FileRead exceptions
iMeaNz May 4, 2025
bd7363a
feat(test-window): add util func to trim whitespace from a string
iMeaNz May 4, 2025
362da83
feat(test-window): add method to set the open state of a window
iMeaNz May 5, 2025
d21be0f
feat(test-window): add cancel and confirm button
iMeaNz May 5, 2025
ecaaf1d
feat(test-window): add file write exception
iMeaNz May 5, 2025
8eed25f
refactor(test-window): now first if the a test window has already bee…
iMeaNz May 5, 2025
a3abddf
feat(test-window): add dump test report with test results + environne…
iMeaNz May 5, 2025
6b8deb5
fix(test-window): report file extension is now .report and not .test …
iMeaNz May 5, 2025
c47ba33
fix(test-window): fix warning
iMeaNz May 5, 2025
575043a
fix(test-window): fix sonar issues
iMeaNz May 5, 2025
66d9be3
feat(test-window): radio buttons are now aligned vertically
iMeaNz May 5, 2025
ed5ae70
feat: test window (#245)
Thyodas May 20, 2025
33cc190
feat(scripting): add utfcpp for utf-8/16 conversions
Thyodas May 4, 2025
7553fa8
feat(scripting): add HostHandler (wrapper of hostfxr), HostString wra…
Thyodas May 4, 2025
64b1dba
feat(scripting): add start of C# lib
Thyodas May 4, 2025
2e8458f
feat(scripting): can get c# function ptr + fix invalid fptr
Thyodas May 4, 2025
bb1c78f
feat(scripting): add example in main
Thyodas May 4, 2025
1089ea2
feat(scripting): refactor runScriptExample and move to Scripting.cpp
Thyodas May 4, 2025
6db4c7f
feat(scripting): add more interop tests with Add and AddToPtr functions
Thyodas May 4, 2025
2acf6b1
fix(scripting): add missing headers
Thyodas May 4, 2025
495290b
fix(scripting): fix segv on boost::dll, it was using the wrong constr…
Thyodas May 5, 2025
16b17b7
feat(scripting): add .clang-format
Thyodas May 5, 2025
32a712e
feat(scripting): add README.md at scripting root to explain setup
Thyodas May 5, 2025
c1601be
feat(scripting): add TODO for vulnerability in openFolder
Thyodas May 5, 2025
b3ff615
fix(scripting): invalid target for link
Thyodas May 5, 2025
db32188
feat(scripting): add native function call from C# and improve error h…
Thyodas May 5, 2025
ca90c5f
feat(scripting): remove csproj file from repo (now generated by cmake)
Thyodas May 5, 2025
abf694a
feat(scripting): add gitignore for managed + missing csproj.in
Thyodas May 5, 2025
89931a5
feat(scripting): enhance native interop with new API functions and lo…
Thyodas May 8, 2025
2230347
chore(scripting): delete outdated CMakeLists and README for scripting
Thyodas May 8, 2025
c2d5ca5
fix(scripting): undefine ERROR to avoid conflict with Windows.h
Thyodas May 8, 2025
421a04e
chore(scripting): add header comments to CMakeLists.txt and Lib.cs fo…
Thyodas May 8, 2025
5431a02
chore(logging): add header comments to Logger.cs for documentation
Thyodas May 8, 2025
3d56dc0
feat(scripting): add glm vector types for enhanced vector math support
Thyodas May 8, 2025
d1a54f5
feat(scripting): enhance native interop with updated CreateCube and G…
Thyodas May 8, 2025
4c9a90a
chore(scripting): update CMakeLists.txt and source files for Windows …
Thyodas May 8, 2025
e566c6e
feat(scripting): improve cross-platform compatibility with updated NE…
Thyodas May 9, 2025
68aa4a5
fix(scripting): remove warn for default init and add null check for u…
Thyodas May 9, 2025
a819af0
ci(scripting): install .NET SDK 9.0 in build and codeql workflows
Thyodas May 9, 2025
242c9e9
ci(scripting): remove cache option from .NET SDK setup in build and c…
Thyodas May 9, 2025
8e52b61
feat(scripting): add .NET SDK 9.0 as a dependency for .deb and implem…
Thyodas May 9, 2025
5fd8a41
fix(scripting): update output path to use relative directory for mana…
Thyodas May 9, 2025
5c6136a
feat(scripting): add .NET SDK 9.0 installation steps and update compo…
Thyodas May 9, 2025
2bb7574
fix(scripting): correct relative path for managed output directory in…
Thyodas May 9, 2025
cb6653b
fix(scripting): update output directory for managed publish and remov…
Thyodas May 9, 2025
22f9243
fix(scripting): override signal handler after loading C# assembly (wa…
Thyodas May 9, 2025
d6895f9
fix(scripting): update install steps to publish to a new output direc…
Thyodas May 9, 2025
5926fa4
feat(scripting): enhance managed API integration and improve function…
Thyodas May 16, 2025
369ea50
refactor(scripting): move script calls aways from main
Thyodas May 16, 2025
9ca2bb5
feat(scripting): update getManagedFptr to use ManagedFptrFlags for im…
Thyodas May 16, 2025
304e901
feat(scripting): update getManagedFptr to accept HostString parameter…
Thyodas May 16, 2025
4b7be33
fix(scripting): missing changes after rebase
Thyodas May 18, 2025
b4f7bb4
feat: trygetcomponentbyid, issue #284
ThomasParenteau May 21, 2025
aec62c2
fix: source cmakelist cs proj
ThomasParenteau May 21, 2025
e4909c1
fix: coordinator tests
ThomasParenteau May 21, 2025
93d77c4
ref: way do we get the component id for scripting usage
ThomasParenteau May 22, 2025
ed8a081
feat(scripting): add rotation, circling, and breathing effects to cub…
Thyodas May 30, 2025
d872dcd
feat(scripting): more components c# side
ThomasParenteau Jun 3, 2025
76c7a07
fix(scripting): error in script loading not shutting the engine
Thyodas Jun 10, 2025
d5cae26
feat(scripting): add multiple arch support for scripting (ARM, x64 ...)
Thyodas Jun 10, 2025
e277baf
fix(scripting): compilation error on processor report on ARM
Thyodas Jun 10, 2025
69913b3
feat(scripting): add .NET SDK 9.0 as a dependency for .deb and implem…
Thyodas May 9, 2025
f0d7add
feat: trygetcomponentbyid, issue #284
ThomasParenteau May 21, 2025
f150248
fix: coordinator tests
ThomasParenteau May 21, 2025
90a4bff
feat(scripting): expose addcomponent
ThomasParenteau Jun 4, 2025
e2218cd
fix(scripting-api): miss spelled component c# side and fix addcomponent
ThomasParenteau Jun 12, 2025
5e668ee
feat(scripting-api): expose HasComponent to the cpp api and interop c#
ThomasParenteau Jun 16, 2025
8530c74
fix(scripting-api): missing file that cause problem on CI and build
ThomasParenteau Jun 16, 2025
035188d
feat(scripting-api): build crash due to rebase conflicts
ThomasParenteau Jun 21, 2025
636fb00
fix(dcripting-api): bad behavior of cpp api scripting
ThomasParenteau Jun 21, 2025
340a27d
fix(scipring-api): bad behavior of the HasComponent exposed fuinction
ThomasParenteau Jun 22, 2025
c470ce8
feat(scripting-system): add WorldState in native and managed
Thyodas Jun 21, 2025
286a2d6
feat(scripting-system): add more WorldState files
Thyodas Jun 21, 2025
62695a3
feat(scripting-system): remove update from Scripting host class
Thyodas Jun 21, 2025
878f84f
feat(scripting-system): add Scripting system, user defined C# systems
Thyodas Jun 21, 2025
30737dd
feat(scripting-system): add example C# CubeSystem (spawn + move cubes)
Thyodas Jun 21, 2025
015801d
feat(scripting-system): remove raw values in print ringing bell
Thyodas Jun 23, 2025
d7fd7ed
feat(scripting-component): add TypeErasedComponentArray
Thyodas Jun 23, 2025
1515109
feat(scripting-component): component registration to scripting
Thyodas Jun 23, 2025
771a0be
feat(scripting-component): add TypeErased addComponent
Thyodas Jun 24, 2025
b078f0a
feat(scripting-component): update API with new addComponent
Thyodas Jun 24, 2025
d7c4be5
feat(scripting-component): make use of Components in CubeSystem example
Thyodas Jun 24, 2025
0a48839
feat(scripting-component): invert Entity and TypeID for API for cohesion
Thyodas Jun 24, 2025
47bbc3c
feat(scripting-component): add missing cstring header for std::memcpy
Thyodas Jun 24, 2025
dabbbd9
feat(scripting-component): remove useless log for cubes
Thyodas Jun 24, 2025
f9e2599
chore(scripting-component): cleanup useless code in scripts
Thyodas Jun 24, 2025
14ade0d
feat(scripting-component): move function definitions to cpp Component…
Thyodas Jun 24, 2025
c41bfbb
chore(scripting-component): rename API to respect Nx convention
Thyodas Jun 24, 2025
cdaf9c0
feat(scripting-ui): add component description and field types
Thyodas Jun 24, 2025
9dc9262
refactor(scripting-ui): component type retrieval in ECS
Thyodas Jun 24, 2025
22bee83
refactor(scripting-ui): addtype-erased property support to inspector
Thyodas Jun 24, 2025
93da859
refactor(scripting-ui): add UI component reflection api in C++ and C#
Thyodas Jun 24, 2025
c2dd199
ci(scripting-ui): fix dotnet install invalid permission on Linux runner
Thyodas Jun 24, 2025
a9c47de
ci(scripting-ui): fix dotnet install on test binary step
Thyodas Jun 24, 2025
9991a00
feat: input scripting
jcardonne Jun 25, 2025
a3cd9aa
feat(scripting): add input handling API for keyboard and mouse
jcardonne Jun 25, 2025
7bba020
feat(scripting): add input demo system example
jcardonne Jun 25, 2025
6237574
feat(scripting): optimize IsAnyKeyPressed with native implementation
jcardonne Jun 26, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
79 changes: 79 additions & 0 deletions .clang-format
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
---
Language: Cpp
BasedOnStyle: Google
AlignAfterOpenBracket: Align
AlignConsecutiveAssignments: true
AlignConsecutiveDeclarations: false
AlignOperands: true
AlignTrailingComments: true
AllowShortBlocksOnASingleLine: Empty
AllowShortFunctionsOnASingleLine: None
AlwaysBreakAfterReturnType: None
AlwaysBreakTemplateDeclarations: Yes
BinPackArguments: true
BinPackParameters: true
BraceWrapping:
AfterCaseLabel: false
AfterClass: false
AfterControlStatement: false
AfterEnum: false
AfterFunction: true
AfterNamespace: false
AfterStruct: false
AfterUnion: false
AfterExternBlock: false
BeforeCatch: false
BeforeElse: false
BeforeLambdaBody: false
BeforeWhile: false
SplitEmptyFunction: false
SplitEmptyRecord: false
SplitEmptyNamespace: false
BreakBeforeBraces: Custom
BreakBeforeTernaryOperators: false
BreakConstructorInitializers: BeforeColon
BreakConstructorInitializersBeforeComma: false
ColumnLimit: 120
CompactNamespaces: false
ConstructorInitializerAllOnOneLineOrOnePerLine: false
ContinuationIndentWidth: 4
EmptyLineAfterAccessModifier: Never
EmptyLineBeforeAccessModifier: LogicalBlock
IncludeBlocks: Preserve
IncludeCategories:
- Regex: '^<.*'
Priority: 1
- Regex: '^".*'
Priority: 2
- Regex: '.*'
Priority: 3
IncludeIsMainRegex: '([-_](test|unittest))?$'
IndentAccessModifiers: True
IndentCaseBlocks: false
IndentCaseLabels: true
IndentGotoLabels: true
IndentWidth: 4
IndentWrappedFunctionNames: false
InsertNewlineAtEOF: true
MacroBlockBegin: ''
MacroBlockEnd: ''
MaxEmptyLinesToKeep: 1
NamespaceIndentation: All
SpaceAfterCStyleCast: false
SpaceAfterLogicalNot: false
SpaceAfterTemplateKeyword: false
SpaceBeforeAssignmentOperators: true
SpaceBeforeInheritanceColon: true
SpaceBeforeParens: ControlStatements
SpaceBeforeRangeBasedForLoopColon: true
SpaceBeforeSquareBrackets: false
SpaceInEmptyParentheses: false
SpacesBeforeTrailingComments: 1
SpacesInAngles: false
SpacesInConditionalStatement: false
SpacesInCStyleCastParentheses: false
SpacesInParentheses: false
SpacesInSquareBrackets: false
TabWidth: 4
UseTab: Never
...
82 changes: 78 additions & 4 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -1,16 +1,28 @@
name: Build, test and Package

on: [push]
on:
push:
workflow_dispatch:
inputs:
debug_enabled:
type: boolean
description: 'Enable remote SSH connection. Run the build with tmate debugging enabled (https://github.com/marketplace/actions/debugging-with-tmate)'
required: false
default: false

jobs:
build:
name: Build, test and Package
# env and permissions are setup to add dependencies from vcpkg to the repo's dependency graph
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
VCPKG_FEATURE_FLAGS: dependencygraph
VCPKG_EXE: ${{ github.workspace }}/vcpkg/vcpkg
FEED_URL: https://nuget.pkg.github.com/NexoEngine/index.json
VCPKG_BINARY_SOURCES: "clear;nuget,https://nuget.pkg.github.com/NexoEngine/index.json,readwrite"
DOTNET_INSTALL_DIR: "./.dotnet"
permissions:
contents: write
packages: write
strategy:
fail-fast: false
matrix:
Expand All @@ -37,11 +49,19 @@ jobs:
runs-on: ${{ matrix.os }}
steps:
- name: Checkout repository
uses: actions/checkout@v3
uses: actions/checkout@v4
with:
submodules: recursive
fetch-depth: 0 # Fetch all history for all tags and branches (for SonarCloud)

# DEBUGGING ONLY, to run this trigger with even
- name: Setup tmate session
uses: mxschmitt/action-tmate@v3
if: ${{ github.event_name == 'workflow_dispatch' && inputs.debug_enabled }}
with:
limit-access-to-actor: true # Only the person who triggered the workflow can access
detached: true # Run in the background and wait for connection

- name: Add Ubuntu toolchain repository
if: ${{ matrix.os == 'ubuntu-latest' && matrix.compiler == 'gcc'}}
run: |
Expand Down Expand Up @@ -90,10 +110,15 @@ jobs:
libxext-dev libxi-dev libgl1-mesa-dev libxinerama-dev \
libxcursor-dev '^libxcb.*-dev' libx11-xcb-dev libglu1-mesa-dev \
libxrender-dev libxi-dev libxkbcommon-dev libxkbcommon-x11-dev \
libegl1-mesa-dev
libegl1-mesa-dev mono-complete dotnet-sdk-9.0 # Pre-install .NET SDK 9.0 for caching
version: 1.0
execute_install_scripts: true

- name: Install .NET SDK 9.0
uses: actions/setup-dotnet@v4
with:
dotnet-version: '9.x'

- name: Init submodules
run: |
git submodule update --init --recursive
Expand All @@ -110,6 +135,40 @@ jobs:
- name: Setup vcpkg
uses: lukka/run-vcpkg@v11

- name: Add NuGet sources
if: ${{ matrix.os == 'windows-latest' }}
shell: pwsh
env:
USERNAME: NexoEngine
run: |
.$(${{ env.VCPKG_EXE }} fetch nuget) `
sources add `
-Source "${{ env.FEED_URL }}" `
-StorePasswordInClearText `
-Name GitHubPackages `
-UserName "${{ env.USERNAME }}" `
-Password "${{ secrets.GITHUB_TOKEN }}"
.$(${{ env.VCPKG_EXE }} fetch nuget) `
setapikey "${{ secrets.GITHUB_TOKEN }}" `
-Source "${{ env.FEED_URL }}"

- name: Add NuGet sources
if: ${{ matrix.os != 'windows-latest' }}
shell: bash
env:
USERNAME: NexoEngine
run: |
mono `${{ env.VCPKG_EXE }} fetch nuget | tail -n 1` \
sources add \
-Source "${{ env.FEED_URL }}" \
-StorePasswordInClearText \
-Name GitHubPackages \
-UserName "${{ env.USERNAME }}" \
-Password "${{ secrets.GITHUB_TOKEN }}"
mono `${{ env.VCPKG_EXE }} fetch nuget | tail -n 1` \
setapikey "${{ secrets.GITHUB_TOKEN }}" \
-Source "${{ env.FEED_URL }}"

- name: CMake Workflow with preset 'build-coverage' for tests
uses: lukka/run-cmake@v10
with:
Expand All @@ -120,6 +179,7 @@ jobs:
CXX: ${{ matrix.compiler == 'clang' && steps.set-up-clang.outputs.clangxx || matrix.compiler == 'gcc' && steps.set-up-gcc.outputs.gxx || '' }}
CMAKE_C_COMPILER: ${{ matrix.compiler == 'clang' && steps.set-up-clang.outputs.clang || matrix.compiler == 'gcc' && steps.set-up-gcc.outputs.gcc || '' }}
CMAKE_CXX_COMPILER: ${{ matrix.compiler == 'clang' && steps.set-up-clang.outputs.clangxx || matrix.compiler == 'gcc' && steps.set-up-gcc.outputs.gxx || '' }}
USERNAME: NexoEngine

- name: Install Mesa for Windows
shell: cmd
Expand Down Expand Up @@ -204,6 +264,8 @@ jobs:
test-nsis-installer:
name: Test NSIS installer
runs-on: windows-latest
env:
DOTNET_INSTALL_DIR: "./.dotnet"
needs: build
steps:
- name: Download NSIS installer
Expand All @@ -212,6 +274,11 @@ jobs:
with:
pattern: 'nexo-engine-installer-msvc14-windows-latest'

- name: Install .NET SDK 9.0
uses: actions/setup-dotnet@v4
with:
dotnet-version: '9.x'

- name: Run NSIS installer
shell: pwsh
run: |
Expand Down Expand Up @@ -269,6 +336,8 @@ jobs:
test-deb-installer:
name: Test DEB installer
runs-on: ubuntu-latest
env:
DOTNET_INSTALL_DIR: "./.dotnet"
needs: build
steps:
- name: Download DEB installer
Expand All @@ -277,6 +346,11 @@ jobs:
with:
pattern: 'nexo-engine-installer-gcc13-ubuntu-latest'

- name: Install .NET SDK 9.0
uses: actions/setup-dotnet@v4
with:
dotnet-version: '9.x'

- name: Install DEB package
shell: bash
run: |
Expand Down
30 changes: 29 additions & 1 deletion .github/workflows/codeql.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,11 @@ on: [push]
jobs:
analyze:
name: Analyze (${{ matrix.language }}/${{ matrix.compiler }}) on ${{ matrix.os }}
env:
VCPKG_EXE: ${{ github.workspace }}/vcpkg/vcpkg
FEED_URL: https://nuget.pkg.github.com/NexoEngine/index.json
VCPKG_BINARY_SOURCES: "clear;nuget,https://nuget.pkg.github.com/NexoEngine/index.json,readwrite"
DOTNET_INSTALL_DIR: "./.dotnet"
runs-on: ${{ matrix.os }}
permissions:
# required for all workflows
Expand Down Expand Up @@ -57,10 +62,15 @@ jobs:
libxext-dev libxi-dev libgl1-mesa-dev libxinerama-dev \
libxcursor-dev '^libxcb.*-dev' libx11-xcb-dev libglu1-mesa-dev \
libxrender-dev libxi-dev libxkbcommon-dev libxkbcommon-x11-dev \
libegl1-mesa-dev
libegl1-mesa-dev mono-complete dotnet-sdk-9.0 # Pre-install .NET SDK 9.0 for caching
version: 1.0
execute_install_scripts: true

- name: Install .NET SDK 9.0
uses: actions/setup-dotnet@v4
with:
dotnet-version: '9.x'

- name: Set up GCC
if: ${{ matrix.compiler == 'gcc' }}
id: set-up-gcc
Expand All @@ -82,9 +92,27 @@ jobs:
- name: Setup vcpkg
uses: lukka/run-vcpkg@v11

- name: Add NuGet sources
shell: bash
env:
USERNAME: NexoEngine
run: |
mono `${{ env.VCPKG_EXE }} fetch nuget | tail -n 1` \
sources add \
-Source "${{ env.FEED_URL }}" \
-StorePasswordInClearText \
-Name GitHubPackages \
-UserName "${{ env.USERNAME }}" \
-Password "${{ secrets.GITHUB_TOKEN }}"
mono `${{ env.VCPKG_EXE }} fetch nuget | tail -n 1` \
setapikey "${{ secrets.GITHUB_TOKEN }}" \
-Source "${{ env.FEED_URL }}"

# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
uses: github/codeql-action/init@v3
env:
USERNAME: NexoEngine
with:
languages: ${{ matrix.language }}
build-mode: ${{ matrix.build-mode }}
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/doxygen.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,6 @@ jobs:
steps:
- uses: actions/checkout@v2
- run: git submodule add https://github.com/jothepro/doxygen-awesome-css.git && cd doxygen-awesome-css && git checkout v2.2.0
- uses: langroodi/doxygenize@v1.6.1
- uses: langroodi/doxygenize@v1.7.0
with:
htmloutput: './html/'
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
# Prevent pushing window layouts
./config/default-layout.ini

# Do not push auto generated COPYRIGHT
COPYRIGHT_generated

# Prerequisites
*.d

Expand Down
8 changes: 0 additions & 8 deletions .idea/sonarlint.xml

This file was deleted.

9 changes: 8 additions & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,14 @@ project(client CXX)

set(CMAKE_CXX_STANDARD 20)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)

set(NEXO_COVERAGE OFF CACHE BOOL "Enable coverage for binaries")
set(NEXO_GIT_SUBMODULE OFF CACHE BOOL "Enable git submodules init and update")
set(NEXO_BOOTSTRAP_VCPKG OFF CACHE BOOL "Enable vcpkg bootstrap")
set(NEXO_BUILD_TESTS ON CACHE BOOL "Enable tests")
set(NEXO_BUILD_EXAMPLES OFF CACHE BOOL "Enable examples")
set(NEXO_BUILD_SCRIPTING ON CACHE BOOL "Enable C# scripting support")
set(NEXO_GRAPHICS_API "OpenGL" CACHE STRING "Graphics API to use")

if (CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang")
Expand All @@ -19,7 +21,7 @@ if (CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang")
set(NEXO_COMPILER_FLAGS_RELEASE -O3)
set(NEXO_COVERAGE_FLAGS -O0 --coverage)
elseif(CMAKE_CXX_COMPILER_ID MATCHES "MSVC")
set(NEXO_COMPILER_FLAGS_ALL /std:c++${CMAKE_CXX_STANDARD})
set(NEXO_COMPILER_FLAGS_ALL /std:c++${CMAKE_CXX_STANDARD} /Zc:preprocessor)
set(NEXO_COMPILER_FLAGS_DEBUG /Zi /Od /Zc:preprocessor)
set(NEXO_COMPILER_FLAGS_RELEASE /O2 /Zc:preprocessor)
set(NEXO_COVERAGE_FLAGS "") # MSVC doesn't support coverage in the same way
Expand Down Expand Up @@ -95,6 +97,11 @@ message(STATUS "VCPKG done.")
include("${CMAKE_CURRENT_SOURCE_DIR}/editor/CMakeLists.txt")
# SETUP ENGINE
include("${CMAKE_CURRENT_SOURCE_DIR}/engine/CMakeLists.txt")
# SETUP MANAGED CSHARP LIB
if(NEXO_BUILD_SCRIPTING)
include("${CMAKE_CURRENT_SOURCE_DIR}/engine/src/scripting/managed/CMakeLists.txt")
add_dependencies(nexoEditor nexoManaged)
endif()
# SETUP EXAMPLE
include("${CMAKE_CURRENT_SOURCE_DIR}/examples/CMakeLists.txt")
# SETUP TESTS
Expand Down
Loading
Loading