Commit Graph

3477 Commits

Author SHA1 Message Date
SirLynix 557da10dc6 Rework TextDrawer interface 2023-08-24 17:47:20 +02:00
SirLynix ad738a2803 Core/StringExt: Add IterateOnCodepoints to remove std::u32string allocations 2023-08-24 08:42:25 +02:00
SirLynix bd53245f42 Core/StringExt: Don't pass string_view by ref
https://quuxplusone.github.io/blog/2021/11/09/pass-string-view-by-value/
2023-08-24 08:23:14 +02:00
SirLynix 1b7a89213d Widgets: Fix manually hidden entities being incorrectly shown when widget itself is shown 2023-08-24 07:54:33 +02:00
SirLynix e145501568 VulkanRenderer: Fix function ordering 2023-08-23 17:57:26 +02:00
SirLynix 809dc7e0a7 Widgets/Canvas: Fix OnFocusLost being called before removing focus 2023-08-23 17:56:53 +02:00
SirLynix 98c0a47dcc Widgets/TextAreaWidgets: Keep selections active (and visible) when losing focus 2023-08-23 17:56:36 +02:00
SirLynix 8f0890f719 Widgets: Fix new line selection not being bound to scissor box 2023-08-23 17:33:59 +02:00
SirLynix ae62e1f6c9 Network/WebService: Make Pool return a boolean indicating if a request finished 2023-08-17 18:04:12 +02:00
SirLynix f2fc02cbd4 Core/ErrorFlags: Turn this class into an inline class 2023-08-16 18:11:18 +02:00
SirLynix ab8bac2575 Use fmt store instead of ToString fallback
Thanks to @jonathanpoelen for the idea
2023-08-15 01:10:01 +02:00
SirLynix a741672a51 Allow error message to be formatted 2023-08-15 01:10:01 +02:00
Jérôme Leclercq 501e779be4
Fix mistake 2023-08-13 18:40:02 +02:00
SirLynix e8620894f7 Renderer: Expose present mode and allow to query/set it 2023-08-13 18:16:03 +02:00
SirLynix 28d69ab552 Math/Box,Rect: Add GetCorners method 2023-08-13 18:14:22 +02:00
SirLynix 887bd875f7 Remove unused headers 2023-08-12 12:22:27 +02:00
SirLynix 689ea06fe1 ChipmunkPhysics2D/Constraint2D: Fix leak and implement single body constraints
Also move anchors to world space
2023-08-12 12:12:20 +02:00
SirLynix 65a1c195ac ChipmunkPhysics2D/RigidBody2D: Add ToLocal/ToWorld methods 2023-08-12 12:11:24 +02:00
SirLynix 1ef61cc5ad Math/VectorI: Add modulo overloads 2023-08-12 12:02:12 +02:00
SirLynix 4642ea778c ChipmunkPhysics2D/PhysicsSystem: Add query functions wrappers 2023-08-10 12:05:31 +02:00
SirLynix ab95bec41b Fix compilation 2023-08-10 12:03:56 +02:00
SirLynix 5484967498 ChipmunkPhysics2D/RigidBody2D: Add unique body index and remove userdata 2023-08-10 08:40:21 +02:00
SirLynix 1bbfd9fdd2 Widgets/TextAreaWidget: [SetText] Pass std::string by value 2023-08-09 19:37:51 +02:00
SirLynix e5318e49fe JoltPhysics3D/JoltRigidBody3D: Add constructors for settings 2023-08-09 18:01:23 +02:00
SirLynix de002adbb1 Graphics/GraphicsComponent: Fix clear clearing other entries 2023-08-09 18:01:01 +02:00
SirLynix cf6fdf258f Graphics: Add new functions to get default material types/presets 2023-08-08 18:17:58 +02:00
SirLynix 32f8141bd8 ChipmunkPhysics2D: Rework RigidBody2D 2023-08-07 18:17:00 +02:00
SirLynix fd73d62adf Graphics/RenderSystem: Fix skeleton not being used when added after graphics component 2023-08-06 10:14:01 +02:00
SirLynix ee361fc48c Graphics/GraphicsComponent: Fix GetAABB() with no renderable 2023-08-06 10:12:35 +02:00
SirLynix 98e9c89a54 ChipmunkPhysics2D/PhysWorld2D: Set default colors for debug draw options 2023-08-06 10:12:17 +02:00
SirLynix e2808192aa Minor fixes 2023-07-30 19:46:01 +02:00
SirLynix 816d9d1174 Allow to setup/override module configuration from commandline 2023-07-30 12:44:43 +02:00
SirLynix 218b75558a Core: Add CommandLineParameters 2023-07-30 11:46:55 +02:00
SirLynix 651261d28a Minor fixes 2023-07-30 10:56:28 +02:00
SirLynix 3d18052e45 Core/StateMachine: Add Disable and Enable methods 2023-07-27 19:34:59 +02:00
SirLynix d7cc1a8151 Core/EnttWorld: Add GetAliveEntityCount method 2023-07-27 15:09:51 +02:00
SirLynix a101f7c71f Core/EnttWorld: Add RemoveSystem method 2023-07-27 15:09:15 +02:00
SirLynix 99471e8e65 Remove useless includes 2023-07-23 13:06:09 +02:00
SirLynix c081811760 JoltPhysics3D: Allow to construct components without using the system 2023-07-23 13:05:33 +02:00
SirLynix 20f000c8dc Fix missing include 2023-07-23 11:12:05 +02:00
Jérôme Leclercq 313be2d0f4 Fix merge error 2023-07-21 12:12:10 +02:00
SirLynix dee47c6f15 Renderer: Fix BuildMipmaps 2023-07-21 12:12:10 +02:00
SirLynix 4db5b59ec9 Renderer: Refactor transient resources (allow access at any time) 2023-07-21 12:12:10 +02:00
SirLynix e34ba8c05d Add ComputeParticlesTest
Renderer: Add a way to execute commands on the device
2023-07-21 12:12:10 +02:00
SirLynix c25113fea9 xmake check-files -f 2023-07-21 09:01:52 +02:00
SirLynix fbf4da3c4f VulkanRenderer: Improve transient command buffer usage
Allocate and reuse them between frames, by resetting the command pool
2023-07-21 09:00:34 +02:00
SirLynix ce2693114c Fix includes 2023-07-17 19:18:15 +02:00
SirLynix cbe055d412 Core/AppFilesystemComponent: Use hash as key for resource parameters 2023-07-17 19:07:45 +02:00
SirLynix f2bc1bff7a Update for latest nazarautils update 2023-07-17 19:05:15 +02:00
SirLynix af3d1cfa26 Network/NetPacket: Fix mutex recursive lock leading to an exception 2023-07-15 10:36:41 +02:00
SirLynix ff491eddc7 Math/Angle: Fix Zero() 2023-07-14 14:18:28 +02:00
SirLynix 62663dc8e1 Vulkan 2023-07-14 14:18:04 +02:00
SirLynix 1bb4b8fa0d Core/AppFilesystemComponent: Add GetDirectory 2023-07-14 14:16:57 +02:00
SirLynix 4f3542356d Graphics/RenderSystem: Handle visibility immediatly
This fixes an issue when rendermask/scissor box is updated right after making an entity visible (e.g. widgets)
2023-07-02 14:04:00 +02:00
SirLynix 602361e8e1 Core/Time: Add support for AsSeconds<integer> 2023-06-28 07:04:20 +02:00
SirLynix 96618cbb5b Fix some warnings 2023-06-27 19:31:24 +02:00
SirLynix 161c4f6aca Math/Frustum: Fix Contains(Box) and Intersect(points, n) 2023-06-25 09:50:10 +02:00
SirLynix 2f1e2f94d7 Math/Plane: Fix construction from 3 points 2023-06-23 13:23:26 +02:00
SirLynix b2538028b4 Math/Plane: Rename Distance method to SignedDistance 2023-06-22 17:56:18 +02:00
SirLynix 622b6cbec9 Math: Reverse plane direction (to make it more standard) 2023-06-21 19:50:03 +02:00
SirLynix 9eb4c43997 Math/Frustum: Add GetPlanes() 2023-06-21 19:49:32 +02:00
SirLynix 2a9ec4f3bb Minor fixes 2023-06-16 13:06:11 +02:00
SirLynix 6bf91e10e5 Network: Implement WebService with emscripten fetch API on wasm 2023-06-14 20:13:17 +02:00
SirLynix b28d97b1fa Add missing include 2023-06-14 20:13:17 +02:00
SirLynix a9d74c7345 Update WebRequestResult.hpp 2023-06-14 20:13:17 +02:00
SirLynix c65daba072 Network: Add WebService 2023-06-14 20:13:17 +02:00
SirLynix 504c0f771b Minor fixes 2023-06-09 09:24:03 +02:00
SirLynix 40bb69bc60 Core: Add SignalHandlerAppComponent 2023-06-07 22:28:55 +02:00
SirLynix 8eefb2f101 Add missing include 2023-06-07 18:54:44 +02:00
SirLynix bf0d7674c7 Core: Add thread extension functions 2023-06-07 13:35:40 +02:00
SirLynix 628a3a8375 Include fixes 2023-06-07 13:30:25 +02:00
SirLynix 05996d11c2 Add missing include 2023-06-07 08:17:28 +02:00
SirLynix 6520f48d94 Add missing include 2023-06-06 18:00:14 +02:00
SirLynix caf8446707 Math: Remove Algorithm file and move string functions to StringExt 2023-06-06 08:59:58 +02:00
SirLynix 21503ffaa7 Graphics/MaterialPipeline: Use FixedVector instead of std::vector 2023-06-05 18:05:41 +02:00
SirLynix b9c1559d97 Random code cleanup 2023-06-05 18:05:16 +02:00
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 de88873c35 Make use of the new Flags iterator 2023-06-02 17:57:26 +02:00
SirLynix 401bfa3324 Core/Enums: Improve OpenMode comments 2023-06-02 17:49:23 +02:00
SirLynix 1672765936 JoltPhysics3D/JoltCollider3D: Add Mesh JoltMeshCollider3D 2023-06-02 17:47:25 +02:00
SirLynix 2886a2e0c0 Rename EnumMap to EnumArray after nazarautils update 2023-05-30 13:49:19 +02:00
SirLynix cff918f6a3 Graphics/ForwardFramePipeline: Fix unregister + register the same renderable pointer not invalidating rendering
This can happen with ECS components which are mostly stable in memory, when destroying a graphics entity and recreating it (even with a different mesh) its pointer may not change due to memory recycling, especially on simple scenes.

A UInt8 generation counter helps prevents this
2023-05-30 13:34:41 +02:00
SirLynix 0c7efa05e2 Fix a bunch of warnings 2023-05-30 12:34:38 +02:00
SirLynix 68b3e31eec Utility/PixelFormat: use std::string_view to store name 2023-05-30 12:33:40 +02:00
SirLynix dfe6b2ddcf Make use of the new EnumMap class 2023-05-30 12:32:37 +02:00
SirLynix 580b3c8804 Core/ApplicationBase: GetComponent can no longer fail 2023-05-20 21:35:10 +02:00
SirLynix 35c498bf21 Core/ResourceLoader: Use stream path extension if possible to dismiss loaders 2023-05-20 21:34:34 +02:00
SirLynix aa441354ec Graphics/GraphicsComponent: Fix GetAABB 2023-05-20 21:31:49 +02:00
SirLynix 741dc6b7e8 Math/Box: Add ScaleAroundCenter 2023-05-16 15:43:05 +02:00
SirLynix 6f15400d01 JoltPhysics3D: Rework Character class 2023-05-15 19:03:28 +02:00
SirLynix 34b8bb5d65 Core/Resource: Pass filePath by value and move to prevent useless copy 2023-05-15 08:31:42 +02:00
SirLynix 1d32af53c5 Renderer: Add mipmaps generation support 2023-05-14 18:55:41 +02:00
SirLynix 3712b641f8 Widgets: Improve BoxLayout 2023-05-14 18:53:56 +02:00
SirLynix 383e905b3f Utility/Image: Add LoadFaceFromImage 2023-05-12 19:14:44 +02:00
SirLynix 31da36991d Build: Set missing override as error
I couldn't find a similar flag for MSVC
2023-05-09 17:18:56 +02:00
SirLynix bbbd3f88c1 Core: Add DisabledComponent (to temporary disable an entity) 2023-05-07 22:43:48 +02:00
SirLynix c69397707e Core: Add StateMachine
Backported from legacy Nazara
2023-05-07 22:42:54 +02:00
SirLynix 24e546a808 Core/ApplicationBase: Fix GetComponent 2023-05-07 22:41:03 +02:00
SirLynix 9aeaaa9495 Core/Application: Fix updater elapsed time 2023-05-06 15:44:52 +02:00
SirLynix 5e5a740f24 Graphics: Add non-const GetShaderModuleResolver 2023-05-01 18:44:01 +02:00
SirLynix 147f1bc1cf Math/Vector3: Add GetAbs method 2023-05-01 17:05:26 +02:00
SirLynix dcc23ef7c2 Graphics/Tilemap: Fix layer update when enabling tiles
Thanks to @jube for noticing!
2023-05-01 10:37:14 +02:00
SirLynix 3957687a31 OpenGLRenderer/CommandBuffer: Replace std::visit by a switch (to improve performance) 2023-04-30 21:12:33 +02:00
SirLynix 97f1c2c56c Refactor xmake.lua and make some warnings as errors 2023-04-30 21:11:30 +02:00
SirLynix 445ed93fbb Core/ApplicationBase: Fix compilation with Apple Clang 2023-04-24 10:58:16 +02:00
SirLynix de5e7bd8a8 Core/ApplicationBase: Add support for updaters with intervals 2023-04-23 19:45:33 +02:00
SirLynix d717335bca VulkanRenderer: Fix unitybuild causing #define issue because of Windows.h 2023-04-12 14:13:34 +02:00
SirLynix 2f5db80183 Remove empty source files 2023-04-11 13:51:11 +02:00
SirLynix 670389d268 xmake check-files -f 2023-04-10 17:12:23 +02:00
SirLynix 26b23ccce6 Rename Physics2D to ChipmunkPhysics2D 2023-04-10 17:12:23 +02:00
SirLynix 1415dcbf1a JoltPhysics3D: Add JoltConvexHullCollider3D 2023-04-10 17:12:23 +02:00
SirLynix d610baf920 JoltPhysics3D: Rework RigidBody wrapper
- Add a clear way to setup dynamic/kinematic or static bodies
- Body registration to the world is batched (all bodies created before a physics step are added together, which is what Jolt is optimized for)
- Added support for empty shapes (= rigid bodies without collision) using a very small shape and tagging the body as sensor
2023-04-10 17:12:23 +02:00
SirLynix 67b1710adb JoltPhysics3D/JoltCollider3D: Set convex radius by default 2023-04-10 17:12:23 +02:00
SirLynix 61724cc4b9 JoltPhysics3D: Add distance constraint 2023-04-10 17:12:23 +02:00
SirLynix 8d25495bab JoltPhysics3D: Add some methods to JoltCharacter 2023-04-10 17:12:23 +02:00
SirLynix efc81ff508 BulletPhysics3D: Fix movement 2023-04-10 17:12:23 +02:00
SirLynix 6447686ad9 JoltPhysics3D: Add JoltPivotConstraint3D 2023-04-10 17:12:23 +02:00
SirLynix d697450a60 JoltPhysics3D: Add raycast hit normal 2023-04-10 17:12:23 +02:00
SirLynix 1387ac6e35 JoltPhysics3D: Add capsule collider 2023-04-10 17:12:23 +02:00
SirLynix a4ba7d6115 JoltPhysics3D:: Improve characters 2023-04-10 17:12:23 +02:00
SirLynix 2b0239b8f0 JoltPhysics3D: Fix crash when freeing compoites colliders 2023-04-10 17:12:23 +02:00
SirLynix b3595178a1 JoltPhysics3D: Add RaycastQuery and RaycastQueryFirst 2023-04-10 17:12:23 +02:00
SirLynix 63d75e8904 Physics3D/PhysWorld3D: Add generic RaycastQuery 2023-04-10 17:12:23 +02:00
SirLynix 4d42c0cf9c Physics3D/Constraint3D: Add Damping/ImpulseClamp properties 2023-04-10 17:12:23 +02:00
SirLynix 3efd422e86 BulletPhysics3D: Add StaticPlaneCollider3D 2023-04-10 17:12:23 +02:00
SirLynix 021801f02e Continue Jolt integration 2023-04-10 17:12:23 +02:00
SirLynix c5ac142888 Add JoltPhysics3D for a performance test 2023-04-10 17:12:23 +02:00
SirLynix bd4c2d6ee7 Rename Physics3D to BulletPhysics3D 2023-04-10 17:12:23 +02:00
SirLynix 5cbc435e1a Physics3D: Add PivotConstraint3D 2023-04-10 17:12:23 +02:00
SirLynix 522315dbca Physics3D: Add raycast support 2023-04-10 17:12:23 +02:00
SirLynix 5ee25e9621 Physics3D: Use pool for rigid bodies (+ sort them to improve cache) 2023-04-10 17:12:23 +02:00
SirLynix 1f68cfa6c2 Physics3D/Collider3D: Use btEmptyShape for NullCollider3D
Having no collider seems to break physics
2023-04-10 17:12:23 +02:00
SirLynix 795efae3a0 Physics3D: Switch from Newton Dynamics to Bullet3 2023-04-10 17:12:23 +02:00
SirLynix ec1efb5e56 Fix previous commit 2023-04-06 19:08:27 +02:00
SirLynix c7b1c8b155 Core/AppFilesystemComponent: Fix Open with physical files 2023-04-06 19:01:07 +02:00
SirLynix 3cf50221c5 Graphics/GraphicsComponent: Add constructor taking an instanced renderable 2023-04-05 08:51:58 +02:00
SirLynix 40b6102977 Utility/Node: Add a constructor taking translation/rotation/scale 2023-04-05 08:51:24 +02:00
SirLynix 0656b388bc Graphics/GraphicsComponent: Add GetAABB method 2023-04-04 08:25:30 +02:00
SirLynix 44aec8d5a5 Allow to load image and textures cubemap/arrays from file using the AppFilesystemComponent
Renames LoadCubemap and LoadArray to Load with additional parameters and allows AppFilesystemComponent to pass additional parameters to them
2023-04-04 08:24:52 +02:00
SirLynix 36643f173b Widgets/CheckboxWidget: Add GetState() method 2023-03-26 14:23:10 +02:00
SirLynix 3c32f21c4a Utility/Node: Add missing SetTransform overload 2023-03-25 15:19:58 +01:00
SirLynix 883b54e6d3 Physics2D: Fix the way newly physics entities are setup 2023-03-25 14:47:35 +01:00
SirLynix 3e99ce6be5 Utility/VelocitySystem: Use Time instead of float for elapsed time 2023-03-25 14:44:44 +01:00
SirLynix 6fd90d63ef Fix check-files 2023-03-21 13:21:49 +01:00
SirLynix 507cd27eaf Start working on documentation generator 2023-03-21 13:21:00 +01:00
SirLynix 9b4d297c04 Update includes for new NazaraUtils version 2023-03-19 13:01:56 +01:00
SirLynix 27996d16d9 Math/Quaternion: Fix RotationBetween with non-normalized vecs 2023-03-19 12:06:29 +01:00
Lynix 7a980044cd Fix compilation 2023-03-18 22:06:56 +01:00
SirLynix 285b3e132c Renderer: Disable validation by default in release 2023-03-17 19:26:45 +01:00
SirLynix b354f7f87d Math/Quaternion: Fix RotationBetween not handling parallel vectors 2023-03-17 19:24:57 +01:00