Commit Graph

2983 Commits

Author SHA1 Message Date
Jérôme Leclercq 97356349fe Utility/FieldOffsets: Add GetLayout method 2022-01-23 19:59:44 +01:00
Jérôme Leclercq b8a52b93e8 Shader/SPIRV: Handle arrays properly 2022-01-23 19:59:26 +01:00
Jérôme Leclercq 2463e471cc Shader/SPIRV: Fix issues with loops containing branches and cross product 2022-01-23 19:59:10 +01:00
Jérôme Leclercq 64efd81bf8 Shader: Handle matrix cast properly 2022-01-23 19:58:04 +01:00
Jérôme Leclercq 249aebac05 Merge branch 'master' into phong-lighting 2022-01-23 13:36:48 +01:00
Jérôme Leclercq 89e9e41357 Core/SparsePtr: Use template type for +/- and +=/-= 2022-01-23 13:27:39 +01:00
Jérôme Leclercq bba5d7a803 Fix compilation (6000th commit!) 2022-01-23 10:18:00 +01:00
Jérôme Leclercq 2ebcddf9de Core/CallOnExit: Rework to use template instead of std::function 2022-01-23 00:16:09 +01:00
Jérôme Leclercq 29786765c6 Big buffer refactor
Replaced RenderBuffer class, replaced AbstractBuffer by Buffer
2022-01-23 00:05:08 +01:00
Jérôme Leclercq b3ff5767f7 Graphics/Sprite: Fix AABB 2022-01-21 21:44:21 +01:00
Lynix b917738ed4 Core/ResourceSaver: Remove leading point (".obj" => "obj") 2022-01-20 16:51:07 +01:00
Jérôme Leclercq 0af9a96294 Core/Color: Add Gray constant 2022-01-18 06:01:44 +01:00
Jérôme Leclercq b0a3941f4e Add Phong lighting (WIP) 2022-01-11 19:47:29 +01:00
Jérôme Leclercq 756fd773a9 Shader: Add support for numerical fors 2022-01-06 20:38:55 +01:00
Jérôme Leclercq 972d5ffd3f Regenerate global headers, unicode and spirv data 2022-01-04 16:36:28 +01:00
Jérôme Leclercq 2bdcc045cd Shader: Replace const for with [unroll] attribute 2022-01-03 20:21:09 +01:00
Jérôme Leclercq 4fe44339c5 Shader: Add support for for-each statements and improve arrays 2022-01-02 22:02:11 +01:00
Jérôme Leclercq aac6e38da2 Core/Algorithm: Improve SafeCast to handle references 2022-01-02 21:59:58 +01:00
Jérôme Leclercq 1f15328fdd Shader: Add initial support for arrays 2022-01-01 23:01:31 +01:00
SirLynix 89c7bbf197 Update copyright date 2022-01-01 15:30:09 +01:00
Jérôme Leclercq d1841356bf Core/Algorithm: Improve AccessByOffset check and add error message 2021-12-29 14:35:26 +01:00
Jérôme Leclercq 101a3d70da Shader/AstOptimizer: Add swizzle optimization 2021-12-28 20:09:04 +01:00
Jérôme Leclercq a0f66d9e88 Shader/SPIRV: Fix multiple branch handling (by splitting) 2021-12-28 11:48:19 +01:00
Jérôme Leclercq feb1774eb2 Update Algorithm.inl 2021-12-25 20:25:43 +01:00
Jérôme Leclercq b98fd65a01 Fix a lot of small bugs/warnings 2021-12-25 20:07:53 +01:00
Jérôme Leclercq f98ea6b0ca Shader: Add full support for scalar swizzle 2021-12-25 19:13:08 +01:00
Jérôme Leclercq 8ad01f9e6e Core/Algorithm: Rewrite SafeCast 2021-12-25 18:37:07 +01:00
Jérôme Leclercq f798901c23 UnitTests: Use glslang to validate GLSL shaders 2021-12-24 14:54:35 +01:00
Jérôme Leclercq b53d2a0560 Rework shader module unit tests 2021-12-23 17:39:24 +01:00
Jérôme Leclercq a5cc915948 Shader/SPIRV: Fix structs being always decorated as block
They are now only decorated as blocks when used as uniform buffers, which fixes structure nesting
2021-12-23 17:36:40 +01:00
Jérôme Leclercq ed3ee34565 Graphics/Sprite: Allow to change origin 2021-12-23 17:32:18 +01:00
Jérôme Leclercq e2882f6595 Shader: Rename Parse function to ParseFromFile
to avoid ambiguous calls when passing const char*
2021-12-23 17:18:30 +01:00
Jérôme Leclercq 837b72f68e Shader: Rework Swizzle and add support for swizzle store in SPIRV 2021-12-21 14:30:47 +01:00
Jérôme Leclercq e43a638112 Shader/SpirvData: Regenerate SPIRV data (update to 1.6.1) 2021-12-20 22:37:34 +01:00
Jérôme Leclercq 5963f4c848 Graphics/FrameGraph: Fix texture pool issue 2021-12-19 18:29:20 +01:00
Jérôme Leclercq 0f9060c45b Shader: Add support for while loops 2021-12-16 23:10:58 +01:00
Jérôme Leclercq 07199301df Graphics/FrameGraph: Handle invalidation and flush barriers 2021-12-16 18:29:40 +01:00
Jérôme Leclercq 38b143ce8f VulkanRenderer: Improve ImageAspectFlags handling 2021-12-16 18:29:15 +01:00
Jérôme Leclercq 90ab0e9438 Graphics/FramePass: Add SetReadInput method 2021-12-13 23:44:34 +01:00
Jérôme Leclercq dfa2a0040a Graphics/FrameGraph: Add AttachmentProxy 2021-12-13 23:44:14 +01:00
Jérôme Leclercq 0aec863300 Shader: Add support for exp intrinsic 2021-12-05 17:02:46 +01:00
Jérôme Leclercq 7e4a058d41 Renderer/[OpenGL|Vulkan]Renderer: Add support for RGBA16F pixelformat 2021-12-05 17:01:55 +01:00
Jérôme Leclercq 4eb96849db Graphics/FrameGraph: Reuse textures if possible 2021-12-05 16:53:02 +01:00
Jérôme Leclercq 11d4ba22da Graphics/ForwardFramePipeline: Use RenderGraph to merge viewers views 2021-12-03 22:17:24 +01:00
Jérôme Leclercq 17df8fafa4 Renderer/CommandBuffer: Add support for texture blit/copy 2021-12-03 22:15:34 +01:00
Jérôme Leclercq 84bc04cee7 Fix compilation 2021-12-01 20:35:18 +01:00
Jérôme Leclercq 61779d1cad Graphics/Widgets: Add support for scissoring 2021-12-01 20:26:33 +01:00
Jérôme Leclercq a483e16e15 Graphics: Fix render layer sorting 2021-12-01 20:25:55 +01:00
Jérôme Leclercq 8f897084d7 Widgets: Add support for render layer (fixes rendering) 2021-12-01 18:58:48 +01:00
Jérôme Leclercq 653c9e0028 Graphics/GraphicsComponent: Make renderMask a mandatory parameter 2021-12-01 18:58:25 +01:00
Jérôme Leclercq 8b899253b1 Graphics/InstancedRenderable: Add support for render layer 2021-12-01 18:57:50 +01:00
Jérôme Leclercq a4c0cc8c34 Widgets: Add CheckboxWidget 2021-12-01 10:47:21 +01:00
Jérôme Leclercq 26d6448076 Minor fixes 2021-12-01 10:44:28 +01:00
Jérôme Leclercq 45e5baf194 Graphics: Rename MaterialPassFlag::Transparent by MaterialPassFlag::SortByDistance 2021-12-01 10:41:15 +01:00
Jérôme Leclercq e1a378e733 Graphics/[SpriteChain|Submesh]Renderer: Fix material pass not breaking batching 2021-12-01 10:40:47 +01:00
Jérôme Leclercq b256ddd06b Graphics/SlicedSprite: Handle corner removal + lower size 2021-12-01 10:38:53 +01:00
Jérôme Leclercq b62d5f6846 Widgets: Improve default theme 2021-12-01 10:37:48 +01:00
Jérôme Leclercq f289d13101 Physics3D: Ensure RigidBody are destroyed on world destruction 2021-11-30 18:17:53 +01:00
Jérôme Leclercq 2d236afe0f Minor fixes 2021-11-30 12:42:19 +01:00
Jérôme Leclercq 461a06ab8c Widgets: Improve theme
- move simple styles classes ton their own file
- add button hovered texture
- add button hovered/pressed texture
- add label style
2021-11-30 12:42:05 +01:00
Jérôme Leclercq b20897a2fb Widgets/Canvas: Improve mouse owner system 2021-11-30 12:40:19 +01:00
Jérôme Leclercq 86071eae88 Widgets/TextAreaWidget: Add support for double/triple click selection 2021-11-30 12:39:53 +01:00
Jérôme Leclercq e73489e958 Platform/Events: Replace MousebuttonDoubleClicked with clickCount in MouseButtonEvent 2021-11-30 12:38:57 +01:00
Jérôme Leclercq f7b69e11c2 Widgets: Add widget theme (WIP) 2021-11-28 23:04:56 +01:00
Jérôme Leclercq bb93209713 Widgets/[Rich]TextAreaWidget: Add copy/cut/paste support 2021-11-28 20:21:07 +01:00
Jérôme Leclercq a29c0b0e63 Widgets/Canvas: Add mouse owner system 2021-11-28 20:20:30 +01:00
Jérôme Leclercq db88f0ca0d Graphics: Add SlicedSprite class 2021-11-28 20:19:59 +01:00
Jérôme Leclercq 01cd4986cc Minor fixes 2021-11-28 20:19:37 +01:00
Jérôme Leclercq 0c3bcf6c86 Graphics/Camera: Add render order property 2021-11-28 20:15:22 +01:00
Jérôme Leclercq d0aad3ee1e Platform: Add initial Clipboard support (only text is supported) 2021-11-28 20:14:15 +01:00
Jérôme Leclercq b6d366c89d Graphics/Sprite: Reverse vertices 2021-11-24 22:29:47 +01:00
Jérôme Leclercq a33a118ed3 Minor fixes 2021-11-24 22:29:09 +01:00
Jérôme Leclercq caf1a0f1e8 Widgets: Add [Rich]TextAreaWidget 2021-11-24 22:25:39 +01:00
Jérôme Leclercq 643b1a2b15 Widgets: Add ImageWidget 2021-11-24 22:24:57 +01:00
Jérôme Leclercq 6c97f538a1 Widgets: Reimplement Hide/Show 2021-11-24 22:24:14 +01:00
Jérôme Leclercq d2cfc5fdf5 Graphics/GraphicsComponent: Add visibility control 2021-11-24 22:07:56 +01:00
Jérôme Leclercq c9aba016a8 Graphics/Sprite: Add [Get|Set]TextureCoords & SetTextureRect 2021-11-24 22:00:29 +01:00
Jérôme Leclercq b8b0552a4e Graphics: Fix blending (temporary fix until frame graph handles it) 2021-11-24 21:56:33 +01:00
Jérôme Leclercq 4df0b16d19 Widgets: Fix ButtonWidget 2021-11-21 19:07:46 +01:00
Jérôme Leclercq d0f55df3ca Widgets: Reuse materials to improve performance 2021-11-21 19:07:06 +01:00
Jérôme Leclercq a1b5e5b4f4 Math/Vector3: Fix ToString() 2021-11-21 19:06:33 +01:00
Jérôme Leclercq 8f1cc79dc2 Graphics/InstancedRenderable: Add signal to tell some renderables need to be rebuild 2021-11-21 19:06:10 +01:00
Jérôme Leclercq 1b271a29ef Widgets/BaseWidget: Fix background position and render mask 2021-11-21 17:14:59 +01:00
Jérôme Leclercq 2a8568f2ac Graphics/InstancedRenderable: Replace constructor AABB with UpdateAABB method 2021-11-21 17:14:39 +01:00
Lynix 57d39f7eeb Shader/GlslWriter: Rename scaleZPosition to remapZPosition 2021-11-21 16:15:56 +01:00
Jérôme Leclercq 237602a33f Widgets/Canvas: Add render mask parameter 2021-11-14 19:54:47 +01:00
Jérôme Leclercq 8c3a0a9200 Graphics/Camera: Update default values (according to projecting type) 2021-11-14 19:54:30 +01:00
Jérôme Leclercq c85263c9e7 Shader/GlslWriter: Add depth fix (from [0;1] to [-1;1] 2021-11-14 13:00:15 +01:00
Jérôme Leclercq ecd1e43890 Graphics: Add support for multi-viewer rendering (a bit hacky) 2021-11-13 20:08:03 +01:00
Jérôme Leclercq 342c053faa Graphics/Camera: Add clear color per viewer 2021-11-13 20:06:34 +01:00
Jérôme Leclercq a643d0fc3a OpenGLRenderer: Improve error handling (fixes Windows/x86 compilation)
Template specialization was failing because OpenGL function type have __stdcall convention on Windows/32bits
2021-11-02 09:43:30 +01:00
Jérôme Leclercq 9946c17a23 OpenGLRenderer: Choose between OpenGL/OpenGL ES at loading 2021-11-02 09:13:12 +01:00
Lynix 5d849129fd Graphics: Remove CullingList (fixes MinGW compilation) 2021-10-30 00:51:54 +02:00
Lynix 90c738023a OpenGLRenderer: Try to load OpenGL on desktop instead of OpenGL ES 2021-10-30 00:51:17 +02:00
Jérôme Leclercq 9e1df33440 Graphics: Add RenderMask (WIP) 2021-10-29 16:50:38 +02:00
Jérôme Leclercq 078060cfc9 Fix some issues found with WSLg 2021-10-29 14:38:56 +02:00
Jérôme Leclercq 32c204e95f Minor fixes 2021-10-29 13:29:49 +02:00
Jérôme Leclercq a3d9aaf1fb Merge branch 'master' into automatic-file-fix 2021-10-28 09:57:59 +02:00
Jérôme Leclercq a02b1952c0 Apply header order fix 2021-10-28 09:53:56 +02:00
Jérôme Leclercq 66206868cd XMake: Add automatic header order fix 2021-10-28 09:53:43 +02:00
Jérôme Leclercq f491ee1e38 Apply inclusion fix 2021-10-27 18:09:19 +02:00
Jérôme Leclercq 7d279dce4b OCD fix 2021-10-26 20:27:08 +02:00
Jérôme Leclercq 4067116eb8 Graphics/ForwardFramePipeline: Handle material invalidation correctly 2021-10-26 20:26:13 +02:00
Jérôme Leclercq 66bbf63e87 Core/Algorithm: Add SafeCast 2021-10-26 20:26:13 +02:00
Jérôme Leclercq 73838f5f08 Minor fixes 2021-10-26 20:26:13 +02:00
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