Commit Graph

2978 Commits

Author SHA1 Message Date
Jérôme Leclercq 3af1cd80ee Shader/ShaderLangParser: Fix > and >= parsing 2021-09-05 15:49:05 +02:00
Jérôme Leclercq fe24cc7d2a VulkanRenderer: Don't enable Vulkan core extensions if they're supported by Vulkan version 2021-09-05 15:48:26 +02:00
Jérôme Leclercq d704743712 OpenGLRenderer/UploadPool: Fix Allocate with size > maxBlockSize 2021-09-05 15:47:26 +02:00
Jérôme Leclercq 732bb89a86 Graphics/UberShader: Add config callback 2021-09-05 15:46:59 +02:00
Jérôme Leclercq b6c3988bbe Renderer: Implement firstIndex on DrawIndexed command for OpenGL 2021-09-05 15:46:00 +02:00
Jérôme Leclercq 02a12d9328 Handle shader options of any type 2021-09-03 19:33:41 +02:00
Jérôme Leclercq cb911a6daa Update HardwareInfoImpl.cpp 2021-08-27 15:39:29 +02:00
Jérôme Leclercq 120d8f5427 Renderer/RenderWindow: Remove Display and GetImpl methods 2021-08-27 15:39:23 +02:00
Jérôme Leclercq 2b9d8becea Math: Rework Frustum class 2021-08-23 18:43:34 +02:00
Jérôme Leclercq b31c56c642 Fix compilation with Clang 2021-08-21 15:27:32 +02:00
Jérôme Leclercq db99196d3a Fix compilation with Linux 2021-08-21 02:04:53 +02:00
Jérôme Leclercq 0179ef4d65 Graphics: Improve frustum culling (do it once per viewer) 2021-08-21 01:42:53 +02:00
Jérôme Leclercq 8546631f62 Add frustum culling (WIP) 2021-08-19 23:26:34 +02:00
Jérôme Leclercq 8db8533300 Fixes a lot of warnings and move math enums to enum classes 2021-08-19 20:27:20 +02:00
Jérôme Leclercq a2a0e6bd54 Graphics: Add DepthMaterial 2021-08-19 18:47:11 +02:00
Jérôme Leclercq 7aafcfaae9 Minor stuff 2021-08-19 18:47:11 +02:00
Jérôme Leclercq f5dac32020 Minor stuff 2021-08-19 18:47:11 +02:00
Jérôme Leclercq ac08afe9f1 Shader: Add missing ! and != parsing 2021-08-19 18:47:11 +02:00
Jérôme Leclercq a5b71f33b9 Shader: Fix support of conditional functions 2021-08-19 18:47:11 +02:00
Jérôme Leclercq 5ec7200644 Fix compilation 2021-08-19 18:47:11 +02:00
Jérôme Leclercq 793952eb67 Graphics: Add Camera class 2021-08-19 18:47:11 +02:00
Jérôme Leclercq 9a311da2c8 Graphics: Add MaterialPassRegistry 2021-08-19 18:47:11 +02:00
Jérôme Leclercq 5b1123b971 Graphics: Fix WorldInstance removal while being in use 2021-08-19 18:47:11 +02:00
Jérôme Leclercq 03236b70c1 Physics3D/RigidBody3D: Fix movement of already moved instance 2021-08-19 18:47:11 +02:00
Jérôme Leclercq 289472dc9f Graphics/ForwardFramePipeline: Minor fixes 2021-08-19 18:47:11 +02:00
Jérôme Leclercq 3de0edec6f Graphics/RenderQueue: Remake it with a naive implementation
The idea is to improve it in the future, after profiling
2021-08-19 18:47:11 +02:00
Jérôme Leclercq 08921b36a6 Graphics: Add RenderElement and ElementRenderer (WIP) 2021-08-19 18:47:11 +02:00
Jérôme Leclercq b07d612506 OpenGLCommandBuffer: Don't force VAO bind each time 2021-08-19 18:47:11 +02:00
Jérôme Leclercq e4a38d45bd Renderer/CommandBufferBuilder: Take const AbstractBuffer* to match others methods 2021-08-19 18:47:11 +02:00
Jérôme Leclercq 532fb7641f Graphics/BakedFrameGraph: Fix Resize method always returning true 2021-08-19 18:47:11 +02:00
Jérôme Leclercq 7fb5109dfa Graphics/FrameGraph: Make use of RenderPassCache 2021-08-19 18:47:11 +02:00
Jérôme Leclercq 7e4f624ca7 Renderer: Add RenderPassCache 2021-08-19 18:47:11 +02:00
Jérôme Leclercq 52ec5d88f0 Graphics/FrameGraph: Fix depth stencil input not being taken into account for graph dependency 2021-08-19 18:47:11 +02:00
Jérôme Leclercq 1ee2122b3d OpenGLRenderer: Fix initial depth mode 2021-08-19 18:47:11 +02:00
Jérôme Leclercq b5045a2c59 Graphics: Add Material and made use of passes (WIP) 2021-08-19 18:47:11 +02:00
Jérôme Leclercq f61deabe92 Graphics/BakedFrameGraph: Don't release in flight resources 2021-08-19 18:47:11 +02:00
Jérôme Leclercq 40ecdda3cd VulkanRenderer: Handle VulkanRenderPass destruction 2021-08-19 18:47:11 +02:00
Jérôme Leclercq 5669b5bc60 Graphics: Rename Material to MaterialPass 2021-08-19 18:47:11 +02:00
Jérôme Leclercq 90df17d45a Graphics/Material(Pipeline): Remove leftovers attributes 2021-07-13 14:38:09 +02:00
Jérôme Leclercq 863fb3ea7e Shader: Fix optimization issues
Moving the unique_ptrs but failing to optimize the expression could cause issues
Also the constant query callback defaulted to ConstantValue (without const ref), thanks auto.
2021-07-11 11:17:48 +02:00
Jérôme Leclercq ae364934bb Graphics/CameraComponent: Add remaining features 2021-07-10 14:27:38 +02:00
Jérôme Leclercq 488ccf9648 Renderer/RenderTarget: Add OnRenderTargetRelease signal 2021-07-10 14:25:49 +02:00
Jérôme Leclercq c6611fcb9f Renderer/RenderTarget: Add size method and signal 2021-07-10 11:49:35 +02:00
Jérôme Leclercq 9854ebe950 OpenGLRenderer: Disable push/pop group notifications 2021-07-09 13:59:06 +02:00
Jérôme Leclercq c72dfc8004 Graphics: Add forceDisableFeatures config 2021-07-09 12:37:11 +02:00
Jérôme Leclercq 9f410302d2 OpenGLRenderer/Context: Cleanup code 2021-07-09 12:36:24 +02:00
Jérôme Leclercq 681cf31b66 OpenGLRenderer: Disable notification messages 2021-07-09 12:36:00 +02:00
Jérôme Leclercq 56776c19c4 OpenGLRenderer: Fix device features not being correctly reported 2021-07-09 12:35:35 +02:00
Jérôme Leclercq 06b442ab58 OpenGLRenderer: Fix depth clamping not being reported as supported 2021-07-09 12:34:57 +02:00
Jérôme Leclercq 552dfbc01e Renderer: Add pipeline and texture sampler info validation 2021-07-09 12:34:38 +02:00
Jérôme Leclercq 8458301a64 Add support for depth clamping 2021-07-09 00:22:08 +02:00
Jérôme Leclercq 3a3279246f OpenGLRenderer: Enable GL_ARB_gl_spirv and GL_ARB_texture_filter_anisotropic with OpenGL 4.6 2021-07-09 00:01:33 +02:00
Jérôme Leclercq 996b5ef85c Shader: Rename ConstantIndexExpression to ConstantExpression 2021-07-08 15:24:22 +02:00
Jérôme Leclercq 3a31c77524 Shader: Rename ConstantExpression to ConstantValueExpression 2021-07-08 15:22:08 +02:00
Jérôme Leclercq a895e553d4 Graphics: rework ubershaders to prevent duplicate shaders modules
Also rename all remaining conditions to options
2021-07-08 14:52:39 +02:00
Jérôme Leclercq 9ab47edd11 Fix compilation 2021-07-08 12:27:18 +02:00
Jérôme Leclercq 1b4ab7e625 Graphics/BasicMaterial: Improve shader 2021-07-08 11:37:33 +02:00
Jérôme Leclercq 81b64e4fe2 Fix some shaders 2021-07-08 11:06:54 +02:00
Jérôme Leclercq d3e0d8a39f Shader: Replace select_opt by const_select 2021-07-08 10:53:11 +02:00
Jérôme Leclercq 838063c8b6 Shader: Fix nested blocks parsing 2021-07-08 10:52:29 +02:00
Jérôme Leclercq 5aa63831e8 Remove Nazara SDK 2021-07-07 22:56:50 +02:00
Jérôme Leclercq bfab451633 Remove resources headers (as they will be generated on compilation) 2021-07-07 22:44:38 +02:00
Jérôme Leclercq 309fd547e1 Fix compilation errors and warnings 2021-07-07 22:38:24 +02:00
Jérôme Leclercq 1f6937ab1b Shader: Implement const if and const values 2021-07-07 22:38:24 +02:00
Jérôme Leclercq d679eccb43 Shader: Fix struct indexes in case of disabled field 2021-07-07 22:38:24 +02:00
Jérôme Leclercq 72edff30c7 Shader: Add support for logical and/or 2021-07-07 22:38:24 +02:00
Jérôme Leclercq f9af35b489 Shader: Attribute can now have expressions as values and struct fields can be conditionally supported 2021-07-07 22:38:24 +02:00
Jérôme Leclercq 749b40cb31 Shader: Improve variable name sanitization 2021-07-07 22:38:24 +02:00
Jérôme Leclercq ae73f68d8c Shader: Fix variable shadowing with GLSL 2021-07-06 11:43:47 +02:00
Jérôme Leclercq cb82951c9a Fix Linux compilation 2021-07-06 11:29:14 +02:00
Jérôme Leclercq fca8c8d01d Physics3D/Physics3DSystem: Don't update sleeping rigid bodies 2021-07-06 11:04:51 +02:00
Jérôme Leclercq 4ac5fe7cba Graphics: Add RenderSystem and frame pipeline 2021-07-06 11:04:22 +02:00
Jérôme Leclercq 428a706fbe Replace basicmaterial nodes by NZSL source 2021-07-06 11:02:53 +02:00
Jérôme Leclercq f9b453bd2b Shader: Add support for branching and discard statements 2021-07-03 19:13:22 +02:00
Jérôme Leclercq f2bb1a839c Math/Matrix4: Remove implicit conversion to pointer 2021-07-03 18:20:00 +02:00
Jérôme Leclercq ffb28a9044 Physics3D/RigidBody3D: Remove transform callback 2021-07-03 16:34:51 +02:00
Jérôme Leclercq 1c482bbde6 Graphics/BakedFrameGraph: Handle resize in a better way 2021-07-03 13:57:18 +02:00
Jérôme Leclercq c42d18243b Shader: Fix identifiers sanitization 2021-07-03 13:53:00 +02:00
Jérôme Leclercq f14db3f5e9 Renderer: Expose RenderTarget and framebuffers indices 2021-07-03 13:52:29 +02:00
Jérôme Leclercq 930142b7a7 OpenGLRenderer: Fix double StackVector init 2021-07-03 13:35:59 +02:00
Jérôme Leclercq 343b0a6fd7 OpenGLRenderer/Context: Remove GL_AMD_debug_output support
It turns out callbacks are not compatibles between GL_AMD_debug_output and GL_ARB_debug_output (and GL_KHR_debug)
2021-07-03 13:01:41 +02:00
Jérôme Leclercq 9f76c84309 OpenGLRenderer/Context: Improve source readability 2021-07-03 12:59:06 +02:00
Jérôme Leclercq d88c4ecb5b Renderer/Framebuffer: Add GetType (and rework backend internals) 2021-06-22 17:30:08 +02:00
Jérôme Leclercq c188d0616a OpenGLRenderer: Implement AttachmentLoadOp::Discard using glInvalidateFramebuffer 2021-06-22 17:26:40 +02:00
Jérôme Leclercq 8eb1eb71ba Merge branch 'nazara-next' of https://github.com/DigitalPulseSoftware/NazaraEngine into nazara-next 2021-06-20 14:13:21 +02:00
Jérôme Leclercq d2144c8941 Graphics/FrameGraph: Mark subpass deps tilables 2021-06-20 14:12:58 +02:00
Jérôme Leclercq 517ca2d9c2 Graphics/Shaders: Remove pseudo-lighting from BasicMaterial shader 2021-06-20 14:12:30 +02:00
Jérôme Leclercq 233df1f0d4 VulkanRenderer: Fix fillModeNonSolid feature handling 2021-06-20 14:09:15 +02:00
Jérôme Leclercq e896695179 Shader/LangWrite: Fix code generation with methods 2021-06-20 14:08:56 +02:00
Jérôme Leclercq 40bcfb1323 Audio: Allow to skip loaders 2021-06-20 14:08:12 +02:00
Jérôme Leclercq d6248a061d Add PhysicsDemo (first ECS demo) 2021-06-20 14:06:28 +02:00
Jérôme Leclercq fe06cc210d Physics3D/Collider3D: Add GenerateMesh method 2021-06-20 14:06:28 +02:00
Jérôme Leclercq c1a9a22177 Add initial ECS support 2021-06-20 14:06:28 +02:00
Jérôme Leclercq 6f87a01fb2 Graphics: Improve WorldInstance handling 2021-06-20 14:06:28 +02:00
Jérôme Leclercq 3ef3580ee7 Physics3D: Fix movement 2021-06-20 14:06:28 +02:00
Jérôme Leclercq 1ac0b2e11a Utility/Node: Implement movement 2021-06-20 14:06:28 +02:00
Jérôme Leclercq b13c5c950a OpenGLRenderer: Implement face filling 2021-06-20 14:06:28 +02:00
Jérôme Leclercq 8625c0a7ac Fix compilation under Linux 2021-06-16 16:50:00 +02:00
Jérôme Leclercq dfa46ebaa5 Fix shader generation unit tests 2021-06-16 16:50:00 +02:00
Jérôme Leclercq 3cd9172f7a Graphics: Make use of shader binding sets 2021-06-16 16:50:00 +02:00