Commit Graph

2824 Commits

Author SHA1 Message Date
Jérôme Leclercq 6bab824e4f Graphics: Use default white texture if material has empty texture slot 2021-10-26 20:26:13 +02:00
Jérôme Leclercq e84ec8e4ac Proof of concept 2021-10-26 20:26:13 +02:00
Jérôme Leclercq 58485cfa79 Rework shader bindings (WIP) 2021-10-26 20:26:13 +02:00
Jérôme Leclercq 93ec196dc4 Apply header guard check 2021-10-26 15:52:46 +02:00
Jérôme Leclercq ed7ab31933 Apply copyright fix to all files 2021-10-26 14:31:35 +02:00
Jérôme Leclercq 8d5276ddac XMake: update SPIRV and Unicode data parsers 2021-10-26 11:14:20 +02:00
Jérôme Leclercq 14fb2b83ae Minor fixes 2021-10-25 15:48:49 +02:00
Jérôme Leclercq 6162a805e4 OpenGLRenderer: Fix buffer destruction not removing VAOs referencing it 2021-10-19 14:48:53 +02:00
Lynix c3999d708f Graphics: Add DistanceAsSortKey function 2021-10-18 16:46:03 +02:00
Jérôme Leclercq a66f6faed1 Add widgets (WIP) 2021-10-04 09:25:45 +02:00
Jérôme Leclercq 68708c54f7 Minor stuff 2021-10-04 09:24:42 +02:00
Jérôme Leclercq 0442db1c53 Shader: Add support for compound operators 2021-09-24 15:39:03 +02:00
Jérôme Leclercq 601ed047ba Fix some initialization order 2021-09-24 15:24:21 +02:00
Jérôme Leclercq ea49f56530 Shader/LangParser: OCD fix 2021-09-23 17:49:36 +02:00
Jérôme Leclercq 7ab4d91900 OpenGLRenderer: Implement texture blit/copy if glCopyImageSubData is not supported 2021-09-21 17:39:24 +02:00
Jérôme Leclercq 4933a389a2 OpenGLRenderer: Improve/fix Framebuffer handling 2021-09-21 17:37:03 +02:00
Jérôme Leclercq 78358337f3 OpenGLRenderer: Improve OpenGL wrapper 2021-09-21 16:34:34 +02:00
Jérôme Leclercq 74534236ef Graphics: Fix some warnings 2021-09-13 23:35:46 +02:00
Jérôme Leclercq 7f6b61df53 Graphics/SpriteChainRenderer: Improve copy 2021-09-13 23:35:31 +02:00
Jérôme Leclercq db85372778 Renderer/Texture: Add Copy method (wip) 2021-09-13 23:34:51 +02:00
Jérôme Leclercq 72f2a5b531 Graphics: Add initial support for transparency 2021-09-08 19:08:44 +02:00
Jérôme Leclercq c6763bc623 Graphics/Camera: Fix Orthographic projection matrix 2021-09-08 19:08:21 +02:00
Jérôme Leclercq ece18bf472 Implement back text rendering (WIP) 2021-09-07 18:45:10 +02:00
Jérôme Leclercq 879b2f7aa6 Renderer/Texture: Implement Update of a region + inherit AbstractImage 2021-09-07 18:42:53 +02:00
Jérôme Leclercq b6745b2906 Renderer: Fix A8, L8 and LA8 support for both OpenGL and Vulkan 2021-09-07 17:39:12 +02:00
Jérôme Leclercq abdcd63058 Graphics: Add support for draw call data (texture overlay) 2021-09-05 18:26:12 +02:00
Jérôme Leclercq 26e5a41dce Graphics/SpriteChainRenderer: Reuse vertex buffers and memory 2021-09-05 16:04:10 +02:00
Jérôme Leclercq 938d965e06 Graphics: Add SpriteChainRenderer 2021-09-05 15:50:17 +02:00
Jérôme Leclercq a18d505ae2 VulkanRenderer: Some fixes 2021-09-05 15:49:36 +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 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
ImperatorS79 b2ae2261e4 Update Prerequisites.hpp 2021-08-21 17:22:58 +02:00
ImperatorS79 befcab7e4e Enable mingw's clang 2021-08-21 17:22:58 +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 c8e7fa5063 Graphics: Fix RenderElement missing export 2021-08-19 18:47:11 +02:00
Jérôme Leclercq 3ce072c8e0 Regenerate global headers 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 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 e4a38d45bd Renderer/CommandBufferBuilder: Take const AbstractBuffer* to match others methods 2021-08-19 18:47:11 +02:00
Jérôme Leclercq 7e0137f367 Core/Flags: Fix std::hash include 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 8846eb4309 Regenerate global headers 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 1c77a5e549 Core/Flags: Add std::hash specialization 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
Lynix 2ee3957822 Renderer: Add NAZARA_REQUEST_DEDICATED_GPU macro 2021-08-04 15:58:24 +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 99876d935d Graphics/Material: Fix IsDepthClampEnabled method 2021-07-13 12:04:19 +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 c72dfc8004 Graphics: Add forceDisableFeatures config 2021-07-09 12:37:11 +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 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 d3e0d8a39f Shader: Replace select_opt by const_select 2021-07-08 10:53:11 +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 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 ae73f68d8c Shader: Fix variable shadowing with GLSL 2021-07-06 11:43:47 +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 7cd772a254 Core/TypeList: Add Apply, Empty and Size operations 2021-07-06 11:00: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 f14db3f5e9 Renderer: Expose RenderTarget and framebuffers indices 2021-07-03 13:52:29 +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 dae8f328ad Renderer: Increase allocation pool blocks size 2021-06-20 14:08:38 +02:00
Jérôme Leclercq de6be67ea6 Utility/Mesh: Add Build static method 2021-06-20 14:06:28 +02:00
Jérôme Leclercq e073e1a44d Graphics/Material: Add PrimitiveMode support 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 dbe4abefb8 Math: Add PidController class 2021-06-20 14:06:28 +02:00
Jérôme Leclercq 0eda2d0721 Improve global header generation to take ECS into account 2021-06-20 14:06:28 +02:00