Commit Graph

3226 Commits

Author SHA1 Message Date
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
Jérôme Leclercq f22b501e25 Add initial support for shader binding sets (WIP) 2021-06-16 16:50:00 +02:00
Jérôme Leclercq 815a7b0c62 Replace const ShaderAst::StatementPtr& by ShaderAst::Statement& in input 2021-06-16 16:50:00 +02:00
Lynix 54d56abc56 WIP 2021-06-16 16:50:00 +02:00
Jérôme Leclercq 26f5d01c86 Graphics/BakedFrameGraph: Fix command buffer destruction when skipping a framepass 2021-06-06 16:00:03 +02:00
Jérôme Leclercq 86097b331b Renderer: Add support for device-enabled features (anisotropic filtering) 2021-06-05 19:51:48 +02:00
Jérôme Leclercq 0411271851 Utility/Mesh: Fix Recenter() method for other vertex layouts 2021-06-05 19:09:12 +02:00
Jérôme Leclercq 20e982f5f2 Audio: Don't show errors when trying to load OpenAL library 2021-06-05 19:07:23 +02:00
Jérôme Leclercq e26c1f8e68 Graphics: Add ViewerInstance class 2021-06-05 19:06:02 +02:00
Jérôme Leclercq 743f8eeb24 Graphics/ModelInstance: Add UpdateWorldMatrix method 2021-06-05 19:05:06 +02:00
Jérôme Leclercq bd1f5214b8 Math: Replace M_PI defines with template constexpr constants 2021-06-05 16:35:15 +02:00
Jérôme Leclercq da664d51ba Shader/LangWriter: Fix texture sampling output 2021-06-05 01:29:48 +02:00
Jérôme Leclercq 50bf26d92f Shader: Add support for pow intrinsic 2021-06-05 01:29:36 +02:00
Jérôme Leclercq 52490e0cf5 VulkanRenderer: Wait for device idle before recreating the swapchain 2021-06-04 19:35:59 +02:00
Jérôme Leclercq 4b3b595a99 Minor fixes 2021-06-04 18:02:28 +02:00
Jérôme Leclercq 0dd5e92a50 Audio: Add FLAC support 2021-06-03 17:21:15 +02:00
Jérôme Leclercq f0b26efcd3 Audio/Music: Fix Seek method 2021-06-03 17:20:09 +02:00
Jérôme Leclercq 5bc3cd8d8c OpenGLRenderer: Add GL_EXT_texture_compression_s3tc check for DXT pixel formats 2021-06-03 17:15:12 +02:00
Jérôme Leclercq 6161bbec76 Renderer: Handle more depthstencil formats (as Depth24Stencil8 may not be supported everywhere) 2021-06-02 20:16:43 +02:00
Jérôme Leclercq 9ee3a0d6be DeferredShading: Add bloom 2021-06-01 20:28:19 +02:00
Jérôme Leclercq 4d74cef034 Math: Remove NAZARA_MATH_ANGLE_RADIAN and functions using it 2021-06-01 17:37:40 +02:00
Jérôme Leclercq 6fe7e5b16b Graphics/FrameGraph: Fix infinite recursion when traversing graph 2021-06-01 16:24:14 +02:00
Jérôme Leclercq 43b73da3f4 Graphics/FrameGraph: Add support for loading a previous output texture 2021-06-01 16:24:00 +02:00
Jérôme Leclercq eb6ca428a3 Update shader binaries 2021-06-01 16:23:21 +02:00
Jérôme Leclercq 4465e230af Shader/NZSL: Add support for array indexing 2021-06-01 16:22:41 +02:00
Jérôme Leclercq 0f3c0abb96 Shader/ShaderAst: Rename AccessMember* to Access* 2021-06-01 12:38:17 +02:00
Jérôme Leclercq 16e2f5f819 Shader: Add support for depth_write and early_fragment_tests attributes (+ FragDepth builtin) 2021-06-01 12:32:24 +02:00
Jérôme Leclercq 465837ff12 Renderer: Add support for cubemaps 2021-06-01 12:30:37 +02:00
Jérôme Leclercq c243217dd8 Audio/minimp3Loader: Fix some warnings 2021-05-30 16:45:50 +02:00
Jérôme Leclercq 577643d128 Audio: Remove libsndfile loader 2021-05-30 16:45:50 +02:00
Jérôme Leclercq 312a6d3ba8 Fix libvorbisfile dependency 2021-05-30 16:45:50 +02:00
Jérôme Leclercq d5c27a756b Audio: Fix AudioFormat names (U16 -> I16) 2021-05-30 16:45:50 +02:00
Jérôme Leclercq 2d16cf81d1 Audio: Minor fixes 2021-05-30 16:45:50 +02:00
Jérôme Leclercq 79b6b87379 Audio: Add .ogg loader (using libvorbisfile) 2021-05-30 16:45:50 +02:00
Jérôme Leclercq 557c23a9fa Minor stuff 2021-05-30 16:45:50 +02:00
Jérôme Leclercq 2cd09833a4 Minor fixes 2021-05-30 16:45:50 +02:00
Jérôme Leclercq 7ced0e5f08 Audio: Add .wav loader (using dr_wav) 2021-05-30 16:45:50 +02:00
Jérôme Leclercq 28f1d8aa76 Audio: Minor fixes 2021-05-30 16:45:50 +02:00
Jérôme Leclercq d121393267 Audio: Add mp3 support + new demo 2021-05-30 16:45:50 +02:00
Jérôme Leclercq 9d1c821a16 Remove stb from thirdparty and use xmake instead 2021-05-30 16:45:50 +02:00
Jérôme Leclercq a90844f0dd Remove X11 dependency properly (as it's handled by SDL and EGL) 2021-05-29 00:52:10 +02:00
Jérôme Leclercq 41baacd9ab Fix linux compilation 2021-05-29 00:34:09 +02:00
Jérôme Leclercq 109b2a156e OpenGLRenderer: Allow RenderPipeline without a fragment shader on OpenGL ES 2021-05-29 00:32:00 +02:00
Jérôme Leclercq c2b61b6732 A lot of fixes 2021-05-28 22:58:40 +02:00
Jérôme Leclercq ff505e9019 Renderer: Implement and fix front face (winding order) between Vulkan / OpenGL 2021-05-28 22:58:14 +02:00
Jérôme Leclercq 299585a7de Renderer: Implement renderpass attachments clear for OpenGL 2021-05-28 22:55:56 +02:00
Jérôme Leclercq 58fe411750 Shader/GlslWriter: Move function forward declaration before functions using them
Because of some weird ass shit bug in nvidia driver if functions were forward declared before declaration of UBO they were using
2021-05-26 22:21:57 +02:00
Jérôme Leclercq 7fe60026be OpenGLRenderer: Minor fixes 2021-05-26 22:20:10 +02:00
Jérôme Leclercq e7a2573221 Shader: Add support for FragCoord builtin 2021-05-26 22:17:07 +02:00
Jérôme Leclercq 335bb82be1 Renderer/Texture: Add static helpers 2021-05-25 15:37:55 +02:00
Jérôme Leclercq 59cfc74ab4 Renderer: Improve code 2021-05-25 15:37:27 +02:00
Jérôme Leclercq 001c9a6a61 Audio/Music: Rework Play() (ensure music has started before return and handle exceptions in thread) 2021-05-25 12:12:15 +02:00
Jérôme Leclercq 874fb3542e Convert all remaining enums to enum classes (!) 2021-05-25 10:40:07 +02:00
Jérôme Leclercq 8cdd0b51cb Upgrade Audio (part 2) 2021-05-25 10:40:07 +02:00
Jérôme Leclercq ac57b3fbf4 Shader/GlslWriter: Accepts mono-functions shader without specifying entry points 2021-05-25 10:40:07 +02:00
Jérôme Leclercq 7140e322c1 Commit missing files 2021-05-25 10:40:07 +02:00
Jérôme Leclercq ba7c56ddfa Upgrade Platform 2021-05-25 10:40:07 +02:00
Jérôme Leclercq 8b0b5295f7 Upgrade Physics2D and Physics3D 2021-05-25 10:40:07 +02:00
Jérôme Leclercq 4bcb63d776 Audio: Commit missing files 2021-05-25 10:40:07 +02:00
Jérôme Leclercq cce32a64d4 Upgrade Utility 2021-05-25 10:40:07 +02:00
Jérôme Leclercq b936946154 Upgrade NazaraAudio 2021-05-25 10:40:07 +02:00
Jérôme Leclercq a52103a641 Rework ResourceLoader, ResourceManager and ObjectLibrary
They're no longer static
2021-05-25 10:40:07 +02:00
Jérôme Leclercq 709604c070 Shader/Spirv: Fix OpFunctionParameter type 2021-05-22 16:45:57 +02:00
Jérôme Leclercq eab6b4a279 Update shaders 2021-05-22 13:38:29 +02:00
Jérôme Leclercq f6fd996bf1 Shader: Add support for custom functions calls (and better handle intrinsics) 2021-05-22 13:37:54 +02:00
Jérôme Leclercq 031e52b63f Network: Fix compilation under Linux (fix merge) 2021-05-19 20:54:10 +02:00
Jérôme Leclercq 35060ab24e Fix minor stuff 2021-05-19 20:32:16 +02:00
Jérôme Leclercq 49a2cda0a1 VulkanRenderer: Fix descriptor pool release 2021-05-19 20:32:02 +02:00
Jérôme Leclercq a7235ab02d Shader: Add support for max/min intrinsic 2021-05-19 20:31:26 +02:00
Jérôme Leclercq 0339ea346f Shader: Fix unary plus/minus on vector 2021-05-19 20:30:29 +02:00
Jérôme Leclercq 82d80a68ff Shader: Cleanup optimizer 2021-05-18 17:25:48 +02:00
Jérôme Leclercq a002d5c210 Shader: Add constant cast optimization 2021-05-18 17:25:37 +02:00
Jérôme Leclercq e716b44aa3 Add tests and SDK 2021-05-17 23:08:37 +02:00
Jérôme Leclercq 26de5872eb Merge branch 'master' into graphics-next 2021-05-17 18:58:04 +02:00
Lynix b0b1acf497 Shader: Fix LangWriter 2021-05-17 17:43:38 +02:00
Lynix ccccbfe0ad Shader/SpirV: Fix UInt32 support 2021-05-16 23:14:39 +02:00
Lynix f2000f6068 Graphics: useDedicatedRenderDevice as false will now try to select an integrated device 2021-05-16 23:14:10 +02:00
Lynix 7bf380ad48 VulkanRenderer: Fix VkValidationFeatureEnableEXT usage 2021-05-16 23:13:40 +02:00
Lynix 13feaf4aab Renderer: RenderWindow now requires a RenderDevice 2021-05-16 23:13:00 +02:00
Lynix 61d082e61b Shader/ShaderWrite: Add optimize bool 2021-05-16 23:08:36 +02:00
Lynix 525f24af2e Shader/ShaderLang: Add support for Unary operators 2021-05-16 23:07:25 +02:00
Jérôme Leclercq 51c099b3ce Renderer: Allow UploadPool to handle very big (>= 2MB) blocks 2021-05-15 15:27:17 +02:00
Jérôme Leclercq a4052112fe Update UnicodeData.hpp 2021-05-14 03:35:32 +02:00
Jérôme Leclercq 6ed3d2b144 Fix newton include 2021-05-14 03:35:32 +02:00
Jérôme Leclercq 223b41490b Fix sndfile inclusion 2021-05-14 03:35:32 +02:00
Jérôme Leclercq 2641117847 Add building using xmake and cleanup thirdparty 2021-05-14 03:35:32 +02:00
Jérôme Leclercq a18d8859d5 Update basicmaterial binary 2021-05-14 02:11:08 +02:00
Jérôme Leclercq 8840f0bba8 Shader: Fix SPIRV operand for vector / primitive division 2021-05-14 02:10:29 +02:00
Jérôme Leclercq bb207fea4f Shader: Fix Swizzle generation for SPIRV 2021-05-14 02:09:54 +02:00
Jérôme Leclercq 830ec6ac94 Add a few helper functions 2021-05-14 02:09:25 +02:00
Jérôme Leclercq f280cff0a2 Renderer: Add release queue to fix deletion while use 2021-05-14 02:04:47 +02:00
Jérôme Leclercq 51ecff2912 ShaderLang: Add support for length intrinsic 2021-05-14 02:02:12 +02:00
Jérôme Leclercq 24f7b75654 Renderer: Add support for PixelFormat_RGBA32F 2021-05-14 01:57:32 +02:00
Jérôme Leclercq bbfe06c443 Renderer: Fix UploadPool allocations references 2021-05-14 01:56:32 +02:00
Jérôme Leclercq aeac3282e4 Renderer: Add RenderDevice::GetDeviceInfo() 2021-05-14 01:55:16 +02:00
Jérôme Leclercq adbf1e1da0 Renderer: Add proper support for blending 2021-05-14 01:50:46 +02:00
Jérôme Leclercq 61dbd91346 Lot of small fixes/improvements 2021-05-14 01:48:47 +02:00
Jérôme Leclercq 9376cfefd2 Graphics/FrameGraph: Add support for pass name (as debug sections) 2021-05-14 01:45:45 +02:00
Jérôme Leclercq ee690072f8 VulkanRenderer: Enable synchronization validation in debug 2021-05-05 12:06:30 +02:00
Jérôme Leclercq 961c3bf1df Shader: Fix LangWriter generation 2021-05-05 12:06:02 +02:00
Jérôme Leclercq 7d4a084a62 Shader/Parser: Fix handling of . in rvalues + add support for swizzling
For example: var.field was okay but texture.Sample(uv).x wasn't
2021-05-05 12:05:46 +02:00
Jérôme Leclercq eb67990b7b Shader: Fix SpirV generation for Swizzle expressions
+ fix OpSampledImage
2021-05-05 12:04:09 +02:00
Jérôme Leclercq bfb93bc925 VulkanRenderer: Fix VkRenderWindow subpass dependencies 2021-05-05 12:02:00 +02:00
Jérôme Leclercq 10aa7231b6 Renderer: Fix MRT support 2021-05-05 12:01:20 +02:00
Jérôme Leclercq 990193ebb4 Minor fixes 2021-05-02 13:58:56 +02:00
Jérôme Leclercq 55c2dd8485 Add FrameGraph (WIP) 2021-05-02 13:58:35 +02:00
Jérôme Leclercq 377129586b Renderer: Rename some TextureLayout entry 2021-05-02 13:57:24 +02:00
Jérôme Leclercq 8028044966 Fix Linux compilation 2021-04-20 18:18:27 +02:00
Jérôme Leclercq f85d11e55b Fix Graphics module compilation 2021-04-20 18:18:27 +02:00
Jérôme Leclercq 0cc392b78f Shader/SpirvWriter: Fix Image not registering Float as a dependent type 2021-04-20 18:18:27 +02:00
Jérôme Leclercq 044195b209 Minor fixes 2021-04-20 18:18:27 +02:00
Jérôme Leclercq 2238bbfa0c Shader: Add AstReflect 2021-04-20 18:18:27 +02:00
Jérôme Leclercq 500ccda85a Shader: StatementPtr& => const StatementPtr& 2021-04-20 18:18:27 +02:00
Jérôme Leclercq 1a8599ba29 Shader: Add sanitization of identifiers (fixes GLSL generation) 2021-04-20 18:18:27 +02:00
Jérôme Leclercq 8359d46711 Graphics fixes 2021-04-20 18:18:27 +02:00
Jérôme Leclercq 5bdbb866b5 Shader: Add LangWriter (outputs NZSL) 2021-04-20 18:18:27 +02:00
Jérôme Leclercq e7a9fd95ea ShaderNode fixes 2021-04-20 18:18:27 +02:00
Jérôme Leclercq 3a7f5c2630 Shader: Fix optimization 2021-04-20 18:18:27 +02:00
Jérôme Leclercq 87ce2edc6e Shader: Add initial support for options (WIP) 2021-04-20 18:18:27 +02:00
Jérôme Leclercq 9fd4249a87 Shader: compilation fixes 2021-04-20 18:18:27 +02:00
Jérôme Leclercq fce336bfc9 Shader: Fix struct attributes handling 2021-04-20 18:18:27 +02:00
Jérôme Leclercq d335d44d6a Shader: Cleanup and rename AST files 2021-04-20 18:18:27 +02:00
Jérôme Leclercq afe3a0ea93 Shader: Merge AstScopedVisitor, AstValidator and TransformVisitor to SanitizeVisitor 2021-04-20 18:18:27 +02:00
Jérôme Leclercq 8515c9cea1 Shader: Improve ShaderAstCloner 2021-04-20 18:18:27 +02:00
Jérôme Leclercq 0bb9c37a38 Shader/Lang: [[attribute]] => [attribute] 2021-04-20 18:18:27 +02:00
Jérôme Leclercq 54c34869a4 Fix Shader unit tests 2021-04-20 18:18:27 +02:00
Jérôme Leclercq 3e704b9ea6 Shader: Minor fixes 2021-04-20 18:18:27 +02:00
Jérôme Leclercq 85ce6a4f43 Shader: Fix struct nesting 2021-04-20 18:18:27 +02:00
Jérôme Leclercq 0860a0689f Shader/GlslWriter: Improve GLSL readability 2021-04-20 18:18:27 +02:00
Jérôme Leclercq a90937eb4f Update ShaderNode 2021-04-20 18:18:27 +02:00
Jérôme Leclercq b234134abc Shader/ShaderLang: Add type inference for variable declaration 2021-04-20 18:18:27 +02:00
Jérôme Leclercq aababb205f Shader: Move attribute parsing to parser, simplifying writer code 2021-04-20 18:18:27 +02:00
Jérôme Leclercq bca1561f73 Shader/GlslWriter: Improve GLSL output 2021-04-20 18:18:27 +02:00
Jérôme Leclercq 3499c1f92f Shader: Remove the need of layout(std140) in external block 2021-04-20 18:18:27 +02:00
Jérôme Leclercq 854bb16320 VulkanRenderer: Fix OpEntryPoint parsing 2021-04-20 18:18:27 +02:00
Jérôme Leclercq ea99c6a19e Shader: First working version on both Vulkan & OpenGL (ES) 2021-04-20 18:18:27 +02:00
Jérôme Leclercq f93a5bbdc1 Shader: Rework scope handling 2021-04-20 18:18:27 +02:00
Jérôme Leclercq feffcfa6e5 VulkanRenderer: Fix handling of shader modules 2021-04-20 18:18:27 +02:00
Jérôme Leclercq 09df5f389e Shader: Add SpirvDecoder 2021-04-20 18:18:27 +02:00
Jérôme Leclercq e4aabf309e Renderer: Replace ShaderStage by ShaderModule (a module can handle multiple stages) 2021-04-20 18:18:27 +02:00
Jérôme Leclercq c1d1838336 ShaderLang: Proof of concept (add support for a lot of things) 2021-04-20 18:18:27 +02:00
Jérôme Leclercq 9d8ce8f2cd Shader: Add support for function attributes (entry) 2021-04-20 18:18:27 +02:00
Jérôme Leclercq a318b28cd6 Shader: Improve SpirvPrinter output 2021-04-20 18:18:27 +02:00
Jérôme Leclercq 593d80c80e SpirV grammar parser: Add result id operand and version info 2021-04-20 18:18:27 +02:00
Jérôme Leclercq f694eb767f Shader: Fix return type not being properly registered 2021-04-20 18:18:27 +02:00
Jérôme Leclercq 5598487e87 ShaderLang: Improve lexer 2021-04-20 18:18:27 +02:00
Jérôme Leclercq da81a5b871 Shader: Add attribute parsing 2021-04-20 18:18:27 +02:00
Jérôme Leclercq 8135f22b2f Shader: Add attribute and square bracket tokens (first step for attribute support) 2021-04-20 18:18:27 +02:00
Jérôme Leclercq 3f74ee4d66 Shader: Rework Parser internals 2021-04-20 18:18:27 +02:00
Jérôme Leclercq 48b93a9dea Shader: Fix SPIRV generation 2021-04-20 18:18:27 +02:00
Jérôme Leclercq fed7370e77 Rework shader AST (WIP) 2021-04-20 18:18:27 +02:00
Jérôme Leclercq b320b5b44e Shader: Add function parameters and return handling 2021-04-20 18:18:27 +02:00
Jérôme Leclercq 9a0f201433 Initial shaderlang commit 2021-04-20 18:18:27 +02:00
Jérôme Leclercq 57adfa09de VulkanRenderer: Fix Depth24Stencil8 format 2021-02-20 19:25:38 +01:00
Jérôme Leclercq b291f8a21c Renderer: Implement TextureUsage 2021-02-20 19:25:25 +01:00
Jérôme Leclercq 311cfeaf3c OpenGLRenderer: Fix Y flipping for FBOs 2021-02-20 19:23:29 +01:00
Jérôme Leclercq fb3468854f Renderer: Implement Framebuffers 2021-02-20 19:22:08 +01:00
Jérôme Leclercq 3ef74d6e1d OpenGLRenderer: Use glTexStorage2D instead of glTexImage2D 2021-02-20 19:14:13 +01:00
Jérôme Leclercq f7442982a4 OpenGLRenderer: Implement debug region data 2021-02-20 19:10:32 +01:00
Jérôme Leclercq 8f9f943e2c OpenGLRenderer: Implement primitive mode 2021-02-20 18:56:54 +01:00
Jérôme Leclercq ac3db8a8bf Utility/PixelFormat: Add preliminary support for SRGB formats (WIP) 2021-02-20 18:01:03 +01:00
Jérôme Leclercq 36be581d9a Shader/SpirV: Fix missing OpSelectionMerge before branching 2021-02-19 14:51:06 +01:00
Jérôme Leclercq 32569eef5e Add SpirV masks and update grammar 2021-02-19 14:47:24 +01:00
Jérôme Leclercq 080fd9c7eb Minor fixes 2021-02-15 18:17:30 +01:00
Jérôme Leclercq a6b5246633 OpenGLRenderer: Fix clear values 2021-02-15 18:17:10 +01:00
Jérôme Leclercq 08c2f711b0 Graphics/Material: Add UpdateBuffers 2021-02-15 18:16:19 +01:00
Jérôme Leclercq d058a127e1 Renderer/RenderPass: Implement RenderPass correctly 2021-02-15 18:14:47 +01:00
Jérôme Leclercq 2ef772cec7 Merge branch 'nazara-next' into graphics-next 2021-01-28 16:37:46 +01:00
Jérôme Leclercq 5eedd3c0bc Renderers: Fix UploadPool 2021-01-28 15:59:18 +01:00
Jérôme Leclercq b9151d8a7a Graphics: Improve TextureSampler handling 2021-01-27 18:50:49 +01:00
Jérôme Leclercq a9e9ef2524 Graphics: Add GraphicalMesh and Model classes 2021-01-27 16:45:00 +01:00
Jérôme Leclercq e3e5c4ba8f Graphics: Add ModelInstance class 2021-01-22 23:32:32 +01:00
Jérôme Leclercq 19783f7755 Graphics/Material: Rework UBO handling 2021-01-22 23:31:54 +01:00
Jérôme Leclercq a0d5750ec8 Graphics: Add GetViewerDataUBO 2021-01-22 23:27:11 +01:00
Jérôme Leclercq a6ff64106e Minor stuff 2021-01-22 23:23:28 +01:00
Jérôme Leclercq d52be87fd5 OpenGLRenderer: Fix Draw[Indexed]Data states 2021-01-22 23:18:35 +01:00
Jérôme Leclercq dbcb4a61d0 OpenGLRenderer: Fix context not being shared on OpenGL ES 2021-01-22 23:17:55 +01:00
Jérôme Leclercq c76d6505b0 Renderer/ShaderBinder: Make Update take a pointer and size 2021-01-22 23:15:31 +01:00
Jérôme Leclercq e6ada6846d Graphics: Fix PredefinedViewerData size 2021-01-22 18:04:58 +01:00
Jérôme Leclercq 711199fe51 Shader/ShaderAstOptimizer: Fix branch optimization 2021-01-15 19:19:19 +01:00
Jérôme Leclercq bb18ca13ca Fix shader generation 2021-01-15 19:19:05 +01:00
Jérôme Leclercq 96d7b9424b Renderer: Handle null textures in shader binding 2021-01-14 22:03:01 +01:00
Jérôme Leclercq c8f4e53244 ShaderNode: Add code output window 2021-01-14 22:02:34 +01:00
Jérôme Leclercq a037eef4c9 Shader: Remove ShaderNode::GetExpressionType (replaced by visitor) and minor stuff 2021-01-14 22:01:53 +01:00
Jérôme Leclercq 00ac6e8a0a Shader: Add ShaderAstOptimizer 2021-01-14 22:01:05 +01:00
Jérôme Leclercq acb998f67e ShaderAst: Add NoOp node 2021-01-14 21:58:06 +01:00
Jérôme Leclercq a9f2e05b57 Fix typo in enum 2021-01-14 21:56:55 +01:00
Jérôme Leclercq 4d63d6e022 Shader: Add basic support for Branch node in spir-v 2021-01-04 10:27:08 +01:00
Jérôme Leclercq 44bc86d082 Shader/SpirvWriter: Rename MergeBlocks to MergeSections
to avoid confusion with SpirV blocks
2021-01-03 11:11:54 +01:00
Jérôme Leclercq f327932738 Commit current work
Reworked conditions, added uber-shaders, comparison nodes, fixed Discard
2021-01-02 21:15:59 +01:00
Jérôme Leclercq ed72d668d9 Shader: Add Discard node 2020-12-30 20:05:16 +01:00
ImperatorS79 9a613c6fd6 Fix ShaderNodes on macos 2020-11-27 14:44:19 +01:00
ImperatorS79 f05ed5781b IP_MTU missing on macos 2020-11-22 13:32:17 +01:00
ImperatorS79 d4cd0581e4 Update SocketImpl.cpp 2020-11-21 21:35:51 +01:00
ImperatorS79 255812c80e Fix missing MSG_NOSIGNAL and TCP_KEEPIDLE on macos 2020-11-21 21:29:23 +01:00
ImperatorS79 143d7d391a Remove Value for size_t and correctly fix the problem 2020-11-21 20:21:26 +01:00
ImperatorS79 4bf49876c6 Build Nazara on macos up to Nazara_network (not included 2020-11-21 20:05:19 +01:00
Jérôme Leclercq 960817a1f1 Add conditional expression/statement support for shaders 2020-11-19 13:56:54 +01:00
Jérôme Leclercq bd9d30407c Fix SDL2 cursor 2020-11-17 17:44:31 +01:00
Jérôme Leclercq 7526923a8d Platform: Fix space not generating a text event 2020-11-17 17:43:42 +01:00
Jérôme Leclercq af55ecc2a5 Fix SDL2 crash when creating cursor
Enfoiré de REMqb
2020-11-12 16:28:33 +01:00
Jérôme Leclercq f52c43df49 Network: Fix TcpClient::PollConnection on Linux 2020-10-31 17:33:56 +01:00
Jérôme Leclercq ad88561245 Graphics: Fix MaterialPipeline::GetRenderPipeline 2020-10-31 16:29:02 +01:00
Jérôme Leclercq 8027ae9abe Graphics: Fix PredefinedShaderBinding enum 2020-10-31 16:27:35 +01:00
Jérôme Leclercq 89609570f4 Graphics: WIP (almost working) 2020-10-30 23:08:48 +01:00
Jérôme Leclercq 73e86407b3 Fix some warnings 2020-10-30 23:08:27 +01:00
Jérôme Leclercq e5cd461bae ShaderNode: Fix possible crash with incompatible types 2020-10-30 23:08:03 +01:00
Jérôme Leclercq 5ca9776755 ShaderNode: Fix missing "add texture" button 2020-10-30 23:07:42 +01:00
Jérôme Leclercq b62130dab9 VulkanRenderer: Fix physical device bullshit
Keep a single list instead of many
2020-10-30 23:06:56 +01:00
Jérôme Leclercq 009e5a0466 Renderer: Rename ShaderStageImpl to ShaderStage 2020-10-30 23:06:15 +01:00
Jérôme Leclercq d243e7bcd2 OpenGLRenderer: Move error to string to Utils 2020-09-26 20:43:55 +02:00
Jérôme Leclercq 3b2e375382 WIP 2020-09-26 20:04:05 +02:00
Jérôme Leclercq abf58857d7 Core/StringExt: Make PointerToString portable 2020-09-26 12:22:49 +02:00
Jérôme Leclercq 9291ef6299 Disable OpenGL overriding with MSVC / x86
Seems like a bug with MSVC when targetting 32bits targets
2020-09-26 11:50:37 +02:00
Jérôme Leclercq 65337c6a38 Fix a lot of warnings and some errors 2020-09-26 11:44:09 +02:00
Jérôme Leclercq 2b6a463a45 Remove Nz::String and Nz::StringStream 2020-09-25 19:31:01 +02:00
Lynix d665af1f9d Shader/SpirV: Fix sampler storage class 2020-09-22 21:50:56 +02:00
Lynix 79c53061e0 Shader: Add type functions 2020-09-22 21:50:07 +02:00
Jérôme Leclercq f15709c8a3 Renderer: Replace unique_ptr by shared_ptr 2020-09-20 15:56:58 +02:00
Jérôme Leclercq 95c9ad0fd8 Add graphics module base 2020-09-20 14:52:44 +02:00
Jérôme Leclercq 790815e9ee Merge branch 'master' into nazara-next 2020-09-17 20:28:11 +02:00
Jérôme Leclercq 37418d482e Renderer: Allow to set a preferred render api using configuration 2020-09-17 20:11:10 +02:00
Jérôme Leclercq 36d3c51eeb Add module configurations 2020-09-17 20:10:39 +02:00
Jérôme Leclercq 7a7a67cd40 Update OpenGLVaoCache.cpp 2020-09-17 18:54:41 +02:00
Jérôme Leclercq 98e20ecbb7 Last modules fixes 2020-09-17 18:54:33 +02:00
Jérôme Leclercq fd1d416510 Rename Module to ModuleBase 2020-09-11 13:39:18 +02:00
Jérôme Leclercq a7fac3beb8 Rework modules 2020-09-10 20:12:09 +02:00
Jérôme Leclercq 193deb6c04 Fix some minor stuff 2020-09-06 17:09:39 +02:00
Jérôme Leclercq 67b0d70b7c Upgrade to Newton 3.14 and make it a thirdparty lib 2020-09-06 17:09:19 +02:00
Jérôme Leclercq 1e29790831 Physics2D/RigidBody2D: Fix velocity func not being copied 2020-09-05 12:56:35 +02:00
Jérôme Leclercq 385927b05a Fix minor stuff 2020-09-04 16:14:11 +02:00
Jérôme Leclercq 33e60a97b6 VulkanRenderer: Fix case where swapchain has more image than requested 2020-09-04 15:59:01 +02:00
Jérôme Leclercq 53e5aa924f VulkanRenderer/Swapchain: Rename Buffer to Image 2020-09-04 15:58:07 +02:00
Jérôme Leclercq 55ac0ccdf6 Restore Vulkan renderer 2020-09-04 15:25:49 +02:00
Jérôme Leclercq f8dc5a5516 OpenGLRenderer: Default to WGL on Windows 2020-09-04 15:23:14 +02:00
Jérôme Leclercq ab0cc800e3 Remove VMA dependency from OpenGLRenderer 2020-09-04 15:22:05 +02:00
Jérôme Leclercq e0a4d27c2e Fix some warnings 2020-09-04 15:21:53 +02:00
Jérôme Leclercq 69dda85e45 Vulkan: Refactor function list headers 2020-09-04 15:21:46 +02:00
Jérôme Leclercq d98cddcfe0 Remove no longer used code 2020-09-04 14:19:11 +02:00
Jérôme Leclercq a8b9a8c56d Workaround MSVC bug 2020-09-04 14:18:57 +02:00
Jérôme Leclercq 3082620ef9 Remove useless code 2020-09-03 16:33:56 +02:00
Jérôme Leclercq 0255541b44 Replace EGL symbol loader 2020-09-03 16:33:37 +02:00
Jérôme Leclercq addcd52552 Try to get around MSVC bug 2020-09-03 15:47:43 +02:00
Jérôme Leclercq 58efffc51f Improve code a bit
Prevent converting back and forth the same function pointer
2020-09-03 13:58:45 +02:00
Jérôme Leclercq 0609a10c25 OpenGLRenderer: Get rid of std::function by using function indexes 2020-09-03 13:54:44 +02:00
Jérôme Leclercq 6848ff8b34 OpenGLRenderer: Add debug wrapper (which handle OpenGL errors) 2020-09-03 13:39:34 +02:00
Jérôme Leclercq df33262ab4 OpenGLRenderer: Fix context activation 2020-09-03 13:18:09 +02:00
Jérôme Leclercq d622a75d73 Add BufferUsage_Dynamic
Since OpenGL screams in performance warning because of a GL_STATIC_DRAW buffer being updated from another buffer
2020-09-02 17:19:52 +02:00
Jérôme Leclercq b85a734e6e Utility/OBJParser: Make OBJ meshes order deterministic 2020-09-02 16:30:31 +02:00
Jérôme Leclercq d05df45cb6 Fix EGL context sharing
It seems contexts must be part of the same display to be shared, and that using default display with window isn't an issue on Windows/X11
2020-09-02 15:40:57 +02:00
Jérôme Leclercq bc2f18c852 OpenGLRenderer: Try to fix EGLContext sharing with X11 2020-09-01 20:10:09 +02:00
Jérôme Leclercq f4186fdeac Fix context sharing 2020-09-01 20:01:36 +02:00
Jérôme Leclercq c4e63a582c OpenGLRenderer: initial support for X11 2020-09-01 19:49:50 +02:00