Commit Graph

364 Commits

Author SHA1 Message Date
Jérôme Leclercq 1a55b550fb
Improve math module (#396)
* Improve math module

- Mark almost everything constexpr
- Equality (a == b) is now exact, down to the bit level. If you want approximate equality use the new ApproxEqual method/static method
- Rename Nz::Extend to Nz::Extent
- Removed Make[] and Set[] methods in favor of their static counterpart and operator=
2023-06-02 22:30:51 +02:00
SirLynix 0c7efa05e2 Fix a bunch of warnings 2023-05-30 12:34:38 +02:00
SirLynix 741dc6b7e8 Math/Box: Add ScaleAroundCenter 2023-05-16 15:43:05 +02:00
SirLynix f1cd5ad048 Fix ShaderNode compilation 2023-05-14 18:51:46 +02:00
SirLynix 9aeaaa9495 Core/Application: Fix updater elapsed time 2023-05-06 15:44:52 +02:00
SirLynix 3e4f32140e Core/ApplicationBase: Fix elapsedTime in updaters for non-fixed intervals 2023-05-01 18:03:01 +02:00
SirLynix de5e7bd8a8 Core/ApplicationBase: Add support for updaters with intervals 2023-04-23 19:45:33 +02:00
SirLynix 26b23ccce6 Rename Physics2D to ChipmunkPhysics2D 2023-04-10 17:12:23 +02:00
SirLynix bd4c2d6ee7 Rename Physics3D to BulletPhysics3D 2023-04-10 17:12:23 +02:00
SirLynix 55f2937678 Graphics/GraphicalMesh: Add AABB 2023-03-09 17:50:38 +01:00
SirLynix 36dd245564 Core: Rework VirtualDirectory to allow custom directory resolving 2023-03-03 13:21:48 +01:00
SirLynix 5a57aca66a Last changes 2023-02-02 20:34:25 +01:00
SirLynix cee75dcc11 Merge fixes 2023-02-02 20:34:25 +01:00
SirLynix 292ca60592 WIP 2023-02-02 20:34:25 +01:00
SirLynix ea5c5240fc Improve emscripten support 2023-02-02 20:34:25 +01:00
REMqb f172330aaf ~ WIP port emscripen (WebGL) 2023-02-02 20:34:25 +01:00
SirLynix 88a0bf95ca Utility/ImageStream: Use Time class instead of UInt64 for frametime 2023-02-02 13:27:21 +01:00
SirLynix 4a91f3d470 Renderer: Make WindowSwapchain a RenderTarget
To make it easier to handle window re-creation
2023-01-29 10:38:35 +01:00
SirLynix c216780fe9 Tests: Fix headers 2023-01-22 12:37:58 +01:00
SirLynix 4668a1d158 Update examples and tests code 2023-01-22 12:37:58 +01:00
SirLynix 18851c9185 Replace RenderWindow with swapchains 2023-01-22 12:37:58 +01:00
SirLynix 6ac94bdf4a Tests/ComputeTest: Reload pipeline on main thread 2023-01-01 19:49:46 +01:00
SirLynix 8555b3d6ef ComputeTest: Handle hot-reload compilation errors 2022-12-29 21:49:37 +01:00
Jérôme Leclercq dd421a6385
Replace float/UInt64 durations by a more precise Time class (#388)
Improve Clock class with atomic RestartIfOver method and allows to choose required precision
2022-12-29 21:31:46 +01:00
SirLynix 9a553e5e9d Core: Make Color constexpr 2022-12-29 12:13:00 +01:00
SirLynix 3d88746060 Move unit tests to the unittests asset folder 2022-12-29 12:07:52 +01:00
SirLynix 98f2feecc7 Tests/ComputeTest: Load shader from file (and support hot-reload) 2022-12-29 12:04:11 +01:00
SirLynix 4b804dc613 Move ComputeTest,GraphicsTest,RenderTest and Std140Debug to the tests folder
Also renamed NazaraUnitTests to UnitTests
2022-12-26 08:44:11 +01:00
SirLynix fd29d8d031 Add a yield to make TCPTest more resilient 2022-12-18 17:19:40 +01:00
SirLynix 46fe1c550c Fixes unit tests 2022-12-18 17:08:03 +01:00
SirLynix 5ca7b398c2 More Math cleanup 2022-12-18 16:33:05 +01:00
Lynix 71c5133c7a XMake: Use new syntax 2022-11-13 13:05:45 +01:00
SirLynix 0a8048809c XMake: simplifies option syntax 2022-10-10 08:49:52 +02:00
SirLynix 364d1bafb4 Math: Add support for Turn angles 2022-09-26 19:09:30 +02:00
SirLynix 6bf4ccaae1 Core/ParameterList: Rework Parameter getter using Result 2022-09-09 13:47:06 +02:00
SirLynix 481702c109 Tests: Update Catch2 to 3.x 2022-08-01 18:05:33 +02:00
SirLynix 1e1dc3ebce Build: Don't install private headers 2022-07-27 18:11:00 +02:00
SirLynix e63bb072da Install private header files to a private folder
until xmake supports https://github.com/xmake-io/xmake/issues/2577
2022-07-18 08:47:57 +02:00
SirLynix 2229dfd6e5 Core/VirtualDirectory: Handle physical directories as virtual directories 2022-07-07 08:50:03 +02:00
SirLynix 5507b98f2f Remove assets from repository and download them using xmake 2022-05-27 08:34:36 +02:00
Jérôme Leclercq 03e2801dbe Split engine to packages NazaraUtils and NZSL (#375)
* Move code to NazaraUtils and NZSL packages

* Reorder includes

* Tests: Remove glslang and spirv-tools deps

* Tests: Remove glslang init

* Remove NazaraUtils tests and fix Vector4Test

* Fix Linux compilation

* Update msys2-build.yml

* Fix assimp package

* Update xmake.lua

* Update xmake.lua

* Fix shader compilation on MinGW

* Final fixes

* The final fix 2: the fix strikes back!

* Disable cache on CI

* The return of the fix™️
2022-05-25 19:36:10 +02:00
Lynix dd4be081aa Core/VirtualDirectory: Add Uproot property 2022-05-14 10:22:22 +02:00
SirLynix 6dc2cefc2c Add some missing includes 2022-05-09 09:00:17 +02:00
Lynix df55a02fa7 Core/VirtualDirectory: Add GetFileContent method 2022-05-08 15:50:59 +02:00
SirLynix 95dc7aa15c Try to fix MusicTest 2022-05-07 15:31:07 +02:00
SirLynix 21a38fb31b Audio: Add some fixes and tests 2022-05-06 12:41:02 +02:00
SirLynix 8db95b445b UnitTests: Add GIF decoding tests 2022-04-27 18:24:00 +02:00
SirLynix e7274b24e9 Core/Color: Switch formal from RGBA8 to RGBA32F 2022-04-23 16:08:15 +02:00
SirLynix a10682628d Warning fixes 2022-04-23 12:25:54 +02:00
SirLynix c209552f81 Math/Matrix4: Rework "transform matrix" support 2022-04-19 18:32:16 +02:00
SirLynix 02ffbcc50b Shader: Fix scoping on unrolled for-each 2022-04-19 18:32:16 +02:00
SirLynix 138f2b88b3 Fix buffering issues 2022-04-19 13:38:44 +02:00
Lynix d9ab6720d8 Add buffering test to spot errors 2022-04-18 23:14:48 +02:00
SirLynix 8784ec9b47 Add shader compiler (nzslc) and use it 2022-04-06 09:04:09 +02:00
SirLynix aa43db956c Shader: Fixes some errors and add unit tests 2022-04-02 16:07:13 +02:00
SirLynix 52d0c5b0bc UnitTests/Shader: Add intrinsic tests 2022-04-01 18:19:50 +02:00
SirLynix a4bca0f169 Shader: Add lexer tests 2022-03-31 13:34:43 +02:00
Jérôme Leclercq a54f70fd24 Shader: Fix parsing of unary/dot/indices/and/or 2022-03-21 23:11:28 +01:00
Jérôme Leclercq 4fa3de519c Adjust sound unit tests 2022-03-20 19:41:46 +01:00
Lynix cf5e4b72e1 Core/StringExt: Add overloads of EndsWith 2022-03-19 14:19:52 +01:00
Lynix dc24ff33a4 Audio: Add sound stream test 2022-03-19 12:36:55 +01:00
Lynix 45f0825a6e Audio: Final fixes 2022-03-19 12:16:52 +01:00
Jérôme Leclercq 82641c6653 Audio: Add dummy device (in case OpenAL fails to load) and unifiate unit tests 2022-03-18 19:03:57 +01:00
Jérôme Leclercq 615509d1ba Add support for shader hotreloading 2022-03-17 21:36:36 +01:00
Jérôme Leclercq 6165b3a101 Audio: Rewrite audio module 2022-03-17 18:15:53 +01:00
Jérôme Leclercq 0f55779a8a Fix compilation 2022-03-15 12:44:21 +01:00
Jérôme Leclercq 0a4fd8f56d Enable unity build on modules that support it 2022-03-15 12:44:21 +01:00
Jérôme Leclercq bf44672354 Shader: Add support for exported functions 2022-03-14 18:30:55 +01:00
Jérôme Leclercq e9543b20a2 Shader: Fix function calls with OpenGL 2022-03-14 18:30:55 +01:00
Jérôme Leclercq e40e8eb204 Shader: Change module system (no longer based on path) 2022-03-14 18:30:55 +01:00
Jérôme Leclercq 80f9556f8c Shader/LangWriter: Make LangWriter able to output AST before sanitization as well 2022-03-14 18:30:55 +01:00
Jérôme Leclercq 5a9a55ee7e Shader/MultiStatement: Remove sectionName 2022-03-14 18:30:55 +01:00
Jérôme Leclercq 33554cf5a0 Shader: Remove struct and functions that aren't required 2022-03-14 18:30:55 +01:00
Jérôme Leclercq 3d4271706a Core/VirtualDirectory: Fix some bugs and add more tests 2022-03-14 18:30:55 +01:00
Jérôme Leclercq db98b86eaf Core: Rewrite VirtualDirectory class and add more tests 2022-03-14 18:30:55 +01:00
Jérôme Leclercq db0c1e6e8c Shader: Add module resolver + use modules for engine shaders 2022-03-14 18:30:55 +01:00
Jérôme Leclercq bf7f06ac4c Shader: Fix shader serialization 2022-03-14 18:30:55 +01:00
Jérôme Leclercq 39a2992791 Shader: Minor module fixes 2022-03-14 18:30:55 +01:00
Jérôme Leclercq da40a2db28 UnitTests: Add shader module tests 2022-03-14 18:30:55 +01:00
Jérôme Leclercq e8fceeb2f5 UnitTests: Rename shader tests files 2022-03-14 18:30:55 +01:00
Jérôme Leclercq 05cf98477e Shader: Add proper support for alias 2022-03-14 18:30:55 +01:00
Lynix 83d26e209e WIP2 2022-03-14 18:30:55 +01:00
Jérôme Leclercq 012712b8d0 WIP 2022-03-14 18:30:55 +01:00
Jérôme Leclercq d72ac9cc73 Core/Uuid: Add FromString builder method 2022-03-14 18:30:55 +01:00
Lynix 8dcce73738 Fix after rebase 2022-03-14 18:30:55 +01:00
Jérôme Leclercq a7acf32886 Shader: Replace indices-based option keys by CRC32 2022-03-14 18:30:55 +01:00
Jérôme Leclercq 505d996c88 Core: Add constexpr CRC32 function 2022-03-14 18:30:55 +01:00
Jérôme Leclercq 1919bd3302 Fix compilation 2022-03-14 18:30:55 +01:00
Jérôme Leclercq 3e556a72b6 Build: Add usepch option to use precompiled headers 2022-03-09 20:06:38 +01:00
Jérôme Leclercq 4a8ebf869b Minor fixes 2022-03-09 20:05:33 +01:00
Jérôme Leclercq f90888261f UnitTests/Shader: Add serialization unit tests 2022-03-06 13:19:47 +01:00
Jérôme Leclercq 95742b6ba3 Update UuidTest.cpp 2022-03-05 00:44:54 +01:00
Jérôme Leclercq 72b664f42c Core: Add Uuid class 2022-03-04 20:40:41 +01:00
Jérôme Leclercq 142f15d538 Fix dependency checker and add unit test 2022-02-28 13:28:59 +01:00
Jérôme Leclercq d827477de2 UnitTests/TCPTest: Don't use a random port 2022-02-24 13:03:30 +01:00
Jérôme Leclercq 05e56d627d Improve unit tests 2022-02-24 12:56:53 +01:00
Jérôme Leclercq 7dbaed9aa5 Network: Fix minor issues with IP address parsing and add tests 2022-02-24 12:38:08 +01:00
Jérôme Leclercq 86cc814f1b Utility/GuillotineImageAtlas: Add max layer size 2022-02-23 23:48:58 +01:00
Jérôme Leclercq 6c318b915f Tests/Utility: Add font loading test 2022-02-23 13:20:20 +01:00
Jérôme Leclercq 7ece44b4f4 Shader: Rename Optimize to ConstantPropagation 2022-02-22 13:28:01 +01:00