Commit Graph

3226 Commits

Author SHA1 Message Date
SirLynix 75bbc5df09 Minor fixes 2022-12-06 09:07:18 +01:00
SirLynix f2c83df8ff OpenGLRenderer: Print GL call and parameters on failure 2022-12-06 07:53:32 +01:00
SirLynix ccf77ac459 OpenGLRenderer: Setup draw buffers only once 2022-12-06 07:49:41 +01:00
SirLynix 2dd0e7d9c8 Audio: Add an option to directly link OpenAL 2022-12-06 07:48:03 +01:00
SirLynix 98cf8b3d33 Fix compilation 2022-12-03 11:48:58 +01:00
SirLynix 77642cf431 Renderer: Implement and use debug names 2022-12-02 22:46:43 +01:00
Lynix 02387b8fe3 Graphics: Add Tilemap 2022-11-25 19:28:22 +01:00
SirLynix 85b7e06ae8 Fix some additional warnings 2022-11-19 13:44:33 +01:00
SirLynix 5ca2cf9320 Fix a bunch of warnings 2022-11-19 11:02:16 +01:00
SirLynix 842e797cc4 Fix a bunch of warnings 2022-11-13 16:12:49 +01:00
SirLynix 640d877761 Forgot this file 2022-11-07 02:16:47 +01:00
SirLynix ad1f3bc321 Graphics/Graphics: Add preferred depth format 2022-11-06 23:45:37 +01:00
Lynix 0133a91c4d OpenGLRenderer: Fix FBO clearing when scissor is enabled 2022-11-06 15:31:55 +01:00
SirLynix 45d4195527 Math/Box|Rect: Fix Intersect method with zero-sized boxes 2022-11-05 00:49:38 +01:00
SirLynix fe0d70d9e1 Graphics/MaterialInstance: Add LoadFrom* 2022-11-05 00:28:33 +01:00
SirLynix 1205155466 Graphics/Material: Rename CreateInstance to Instantiate 2022-11-05 00:14:16 +01:00
SirLynix 6b8be23fa0 Switch index/vertex count to UInt32 2022-10-31 19:54:25 +01:00
Jérôme Leclercq dc6ce8427c
Refactor material system (#382) 2022-10-31 19:53:41 +01:00
SirLynix 364d1bafb4 Math: Add support for Turn angles 2022-09-26 19:09:30 +02:00
SirLynix 6372f9cad8 Fix compilation 2022-09-24 16:02:32 +02:00
SirLynix 6d0b53b39e Core: Rework HardwareInfo 2022-09-24 15:52:29 +02:00
SirLynix 9cd7976a91 Remove "MemoryManager" and very old code 2022-09-24 14:25:52 +02:00
SirLynix 6bf4ccaae1 Core/ParameterList: Rework Parameter getter using Result 2022-09-09 13:47:06 +02:00
SirLynix e063c7b45e Network/ENet: Add DisconnectTimeout event 2022-09-09 12:56:50 +02:00
SirLynix 99c9df5731 Graphics: Add default materials 2022-09-08 08:57:11 +02:00
SirLynix fbdc1faf8c Graphics: Add TextureLoader 2022-09-07 13:31:21 +02:00
SirLynix 47cb878f9d Major ResourceLoader rework (using Nz::Result) 2022-09-07 13:31:04 +02:00
SirLynix 131faa4fbd OpenGLRenderer: Take advantage of glClipControl if available 2022-09-06 13:01:44 +02:00
SirLynix 359c176b03 Network/ENetHost: Expose AllocatePacket 2022-09-01 20:21:27 +02:00
SirLynix 25f44a624a Fix compilation 2022-08-30 19:45:05 +02:00
SirLynix 04d2f4a6c2 Graphics/MaterialPipeline: Rework GetRenderPipeline
Decrease the need for memory allocations in most cases (especially for sprites)
2022-08-30 19:29:23 +02:00
SirLynix 017a6c7af3 Graphics: Use memory pools for render elements 2022-08-30 19:27:52 +02:00
SirLynix 7949c57f16 Utility: Add a better way to attach objects to joints 2022-08-30 18:31:04 +02:00
Lynix 45c947faf1 Core/PoolByteStream: Fix pool returning on Reset 2022-08-28 17:54:49 +02:00
SirLynix 50ed8b4028 Add initial support for skeletal entities / components 2022-08-27 03:07:48 +02:00
SirLynix 642d043fd8 Fix MinGW compilation 2022-08-25 12:59:01 +02:00
SirLynix 9e56592211 Skeleton: Fix method name 2022-08-25 12:59:01 +02:00
SirLynix 133caac5b5 Minor fixes 2022-08-25 12:59:01 +02:00
SirLynix 8d39441bd1 Utility/Skeleton: Add GetRootJoint method 2022-08-25 12:59:01 +02:00
SirLynix 7ada266917 Graphics: Add PredefinedSkeletalData 2022-08-25 12:59:01 +02:00
SirLynix 987c23c3ef Fix link issues 2022-08-25 12:59:01 +02:00
SirLynix 3a366cc1e4 Core: Rewrite plugin system 2022-08-25 12:59:01 +02:00
SirLynix d60fce169a Fix merge 2022-08-25 12:59:01 +02:00
SirLynix b8ea79c40e Commit current work 2022-08-25 12:59:01 +02:00
SirLynix a7ab2fbaf4 Utility: Replace Skin* by SkinLinearBlend function 2022-08-25 12:59:01 +02:00
SirLynix e5e3026005 Push current work 2022-08-25 12:59:01 +02:00
SirLynix 104f60f3e7 Add support for GPU skinning (WIP) 2022-08-25 12:59:01 +02:00
SirLynix 507a4f16be Fix compilation 2022-08-17 20:22:49 +02:00
SirLynix c669c68533 Minor fixes 2022-08-17 20:13:00 +02:00
SirLynix f1549b934c Graphics: Add DebugDrawer support 2022-08-17 20:12:49 +02:00
SirLynix 4a5f866754 Renderer: Add DebugDrawer 2022-08-17 20:11:06 +02:00
SirLynix 099528758c OpenGLRenderer: Fix explicit texture/block binding (fixes GLSL ES 3.0 support) 2022-08-12 23:01:58 +02:00
SirLynix a108e6ce65 VulkanRenderer: Update headers and VMA 2022-08-10 00:24:13 +02:00
SirLynix 117f7c2a4b Renderer: Allow to enable or disable API validation layers using config 2022-08-10 00:04:46 +02:00
SirLynix 38e32025e9 Add a way to embed renderer backends code into NazaraRenderer 2022-08-07 20:19:04 +02:00
SirLynix 09d21b4a45 Fix usage from C++20 2022-08-03 20:11:25 +02:00
SirLynix 27dab13484 Fix BoxLayout 2022-08-02 08:13:17 +02:00
SirLynix caa9d4c11e Remove ProgressBarWidget for now 2022-08-02 08:13:17 +02:00
SirLynix e51695274c Widgets: Fix ScrollAreaWidget 2022-08-02 08:13:17 +02:00
SirLynix 0fcf24f336 Widgets: Rework event dispatching 2022-08-02 08:13:17 +02:00
SirLynix 05c78da22a WIP 2022-08-02 08:13:17 +02:00
Lynix c728e0cf5d Add initial support for PBR material data 2022-07-19 20:02:40 +02:00
Lynix ad8b46db38 Rename Diffuse to BaseColor 2022-07-19 20:02:01 +02:00
SirLynix ccd7885213 Fix compilation 2022-07-18 22:04:44 +02:00
SirLynix 3e21b4bea6 Add PBR rendering (WIP) 2022-07-18 22:04:44 +02:00
SirLynix 96599d1116 Graphics: Add LinearSlicedSprite class 2022-07-12 08:45:02 +02:00
SirLynix 6203d5f0d1 Graphics/SlicedSprite: Fix GetTopLeftCorner linking 2022-07-12 08:44:43 +02:00
SirLynix 3507ec570f Network: Fix ENetPacket 2022-07-07 08:50:18 +02:00
SirLynix 2229dfd6e5 Core/VirtualDirectory: Handle physical directories as virtual directories 2022-07-07 08:50:03 +02:00
SirLynix e7f4714747 Core/SystemGraph: Fix GetSystem 2022-07-07 08:45:02 +02:00
SirLynix 1b678defae Add system graph (wip) 2022-07-02 19:45:50 +02:00
SirLynix 4d24be2ae9 Utility/NodeComponent: Use entt::handle for SetParent 2022-07-02 19:45:33 +02:00
SirLynix d5f70279a1 Utility: Add velocity component and system 2022-07-02 19:43:58 +02:00
SirLynix 99b4397d78 Core: Add Lifetime component and system 2022-07-02 19:43:02 +02:00
SirLynix a61ebb7806 OpenGLRenderer: enable GL_TEXTURE_CUBE_MAP_SEAMLESS on OpenGL
to match other API behavior
2022-07-02 19:28:20 +02:00
SirLynix 093d9d344e Renderer: Add support for storage buffers 2022-06-17 20:15:16 +02:00
SirLynix 6f18a02999 Add fullscreen vertex shader module 2022-06-16 19:26:57 +02:00
SirLynix 62ba4f172b Graphics/GraphicalMesh: Allow to update submeshes 2022-06-16 18:19:48 +02:00
SirLynix 8e8bee7037 Temp fix for NZSL update 2022-06-15 20:26:14 +02:00
SirLynix 16922a9519 Audio/Music: Fix datarace 2022-06-07 20:18:26 +02:00
SirLynix c7b6d83bbc Last nzsl version update 2022-06-07 20:18:16 +02:00
SirLynix d335c5d73c Add FFmpeg plugin 2022-05-27 18:53:16 +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
SirLynix 3f8f1c4653 Core/TypeList: Improve ListConcat compile-time
seriously I have no idea why I implemented it like that
2022-05-19 09:04:06 +02:00
Lynix 0e82c2893a Core/VirtualDirectory: Prevent storing . and .. entries 2022-05-16 21:32:59 +02:00
Lynix 52f822fbcb Math/Matrix4: Add TransformInverse(translation, rotation, scale) 2022-05-15 22:29:20 +02:00
Lynix dd4be081aa Core/VirtualDirectory: Add Uproot property 2022-05-14 10:22:22 +02:00
SirLynix b6ab3ba1b3 Graphics: Add light type 2022-05-12 23:09:40 +02:00
SirLynix 5544d336ab Shader: Fix index remapping when importing a text shader in a precompiled shader 2022-05-12 23:08:21 +02:00
SirLynix 6469ab5fde Utility: Refactor some algorithms 2022-05-12 18:15:20 +02:00
SirLynix 7c2b8e0576 Core/File: Add WriteWhole static function 2022-05-12 18:11:41 +02:00
SirLynix b0ecb64f19 OpenGLRenderer: Fix loading of glSpecializeShader 2022-05-09 13:19:31 +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
Lynix 5f389ef0a4 Core/File: Add ReadWhole 2022-05-08 15:50:29 +02:00
Lynix 17b1c2407d Audio/AudioSource: Add GetSampleOffsetAndLatency 2022-05-08 15:44:41 +02:00
SirLynix 41712a3f18 Minor fixes 2022-05-08 13:21:20 +02:00
SirLynix 4794073b73 Audio: Add support for AL_SOFT_source_latency 2022-05-08 13:20:55 +02:00
SirLynix 81085508ec Minor fixes 2022-05-05 20:20:44 +02:00
SirLynix 973b589b08 Shader: Fix conditional statement handling in partial compilation mode 2022-05-05 20:19:27 +02:00
SirLynix e62969999a ShaderCompiler: Add --log-format option 2022-05-05 20:18:34 +02:00
SirLynix 106d629342 Shader: Update SPIRV data 2022-05-05 20:17:32 +02:00
Alexandre Janniaux f146661a76 VulkanRenderer: implement metal view
The metal view backing the MoltenVK compatibility wrapper is written in
Obj-C.

It would have been possible to use the Objective-C runtime in C++ but
the code is less performant (the symbol binding is done at first use
instead of the beginning of the program) and actually harder to get
right.

Note that MoltenVK is not linked to the loader, so the libMoltenVK.dylib
object must be available for loading.
2022-05-04 22:12:01 +02:00
Jérôme Leclercq e6c74fbc5f Physics2D/Constraint2D: Add method GetLastImpulse 2022-05-01 17:37:11 +02:00
SirLynix 13f765fc0d Utility: Fix GIF loading 2022-04-27 18:24:00 +02:00
SirLynix 2a091d25b7 Utility: Add ImageStream and GIF support 2022-04-27 18:24:00 +02:00
SirLynix 3d15f3578b Utility: Use UInt64 to store index/vertex instead of size_t 2022-04-23 23:12:40 +02:00
SirLynix 0f58117b76 Fix compilation on macOS 2022-04-23 22:23:07 +02:00
SirLynix 2389a2fe53 Platform/WindowManager: Rename to WindowBackend 2022-04-23 16:26:59 +02:00
SirLynix e7274b24e9 Core/Color: Switch formal from RGBA8 to RGBA32F 2022-04-23 16:08:15 +02:00
SirLynix de53c88c01 Utility/Algorithm: Use UInt64 for index count and vertex count 2022-04-23 14:07:26 +02:00
SirLynix e11644a81d Shader/IndexRemapperVisitor: Fix unhandled cases 2022-04-20 01:02:42 +02:00
SirLynix 7fccfbb63e Minor fixes 2022-04-19 18:32:16 +02:00
SirLynix c209552f81 Math/Matrix4: Rework "transform matrix" support 2022-04-19 18:32:16 +02:00
SirLynix f9d4451b4a OCD fix 2022-04-19 18:32:16 +02:00
SirLynix 138f2b88b3 Fix buffering issues 2022-04-19 13:38:44 +02:00
SirLynix 22f58fdbf5 Add stream buffering (WIP) 2022-04-09 18:22:57 +02:00
SirLynix 2b66ea1e90 Core/Bitset: Fix doc 2022-04-09 18:21:16 +02:00
SirLynix 447cdfddc9 Shader: Error fixes 2022-04-06 09:06:02 +02:00
SirLynix 8784ec9b47 Add shader compiler (nzslc) and use it 2022-04-06 09:04:09 +02:00
SirLynix 262c82b9e1 Shader: Use constexpr maps for static data 2022-04-05 08:41:47 +02:00
SirLynix 18edd41048 Shader: Fix dependency check of modules 2022-04-05 08:35:12 +02:00
SirLynix 7f15c66f16 Shader/EliminateUnusedPassVisitor: Handle alias declarations 2022-04-04 19:23:20 +02:00
SirLynix 68d2dfcae6 Move FieldOffsets class to Shader module and remove Utility dependency 2022-04-04 19:22:18 +02:00
SirLynix 998bcde2e2 Fix compilation 2022-04-04 12:14:56 +02:00
SirLynix 9d526741b9 Add proper support for IndexType and uint32 indices 2022-04-04 09:02:00 +02:00
SirLynix 66ff6cfa81 Minor fixes 2022-04-04 08:17:03 +02:00
Lynix 83de0939bb Shader: Fix validation and cast from u32 to i32 2022-04-02 21:20:01 +02:00
Lynix 5cd9f6fdcd Minor fixes 2022-04-02 21:18:04 +02:00
SirLynix 71db80c374 Update global headers 2022-04-02 17:25:08 +02:00
SirLynix aa43db956c Shader: Fixes some errors and add unit tests 2022-04-02 16:07:13 +02:00
SirLynix 1c7a3a96e5 Shader/SourceLocation: Fix column index 2022-04-02 03:03:06 +02:00
SirLynix 81b1b9b473 Shader/DependencyCheckerVisitor: Handle aliases 2022-04-02 02:04:42 +02:00
SirLynix 7c640f5c00 Shader: Add types to error messages (and remove ID) 2022-04-01 18:19:50 +02:00
SirLynix 16cf75440b Shader: Turn every AstError into a proper compilation error (with source info) 2022-04-01 18:19:50 +02:00
SirLynix ac9e7207ac Shader: Add compiler and AST errors (WIP)
I'm so afraid to lose all this work
2022-04-01 18:19:50 +02:00
SirLynix 35f6240786 Shader: Fix some errors 2022-04-01 18:19:50 +02:00
SirLynix 78f4751967 Shader: Fill SourceLocation info to AST when parsing 2022-04-01 18:19:50 +02:00
SirLynix 8429411755 Shader: Improve attribute source location 2022-04-01 18:19:50 +02:00
SirLynix 960ab64d98 Shader: Add SourceLocation members
TODO: Fill from Parser and use them for error throwing in SanitizeVisitor
2022-04-01 18:19:50 +02:00
SirLynix ebad7b5e8c Shader: Add support for error messages (WIP) 2022-04-01 18:19:50 +02:00
SirLynix f14b10baf4 Graphics/ViewerInstance: fix typo 2022-03-31 13:35:08 +02:00
SirLynix 83deecd8f1 Shader: Fix SPIRV shaders terminating before function last statement 2022-03-25 12:55:32 +01:00
SirLynix 8146ec251a Shader: Add support for partial sanitization 2022-03-25 12:54:51 +01: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 f1af498710 Update Prerequisites.hpp 2022-03-20 19:09:45 +01:00
Alexandre Janniaux ccb36e2e4c Prerequisites: differentiate MacOS from iOS/tvOS
TargetConditionals.h is exposed on every Apple Darwin platforms and
provides defines to signal the kind of underlying device.
2022-03-20 19:09:45 +01:00
Jérôme Leclercq a541d44d03 MoltenVK fix 2022-03-20 15:30:19 +01:00
Jérôme Leclercq d86f61cd82 VulkanRenderer: Fix VK_EXT_debug_utils with MoltenVK 2022-03-20 14:54:38 +01:00
Jérôme Leclercq 48b87cc99b Core/DynLib: Fix extension handling 2022-03-20 13:42:41 +01:00