Commit Graph

3599 Commits

Author SHA1 Message Date
SirLynix 7af25777dc Shader/FilesystemModuleResolver: Don't register in case of parsing errors 2022-03-25 12:56:20 +01: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
Alexandre Janniaux 5af8abbca9 VulkanRenderer: Loader: load libvulkan.dylib on MacOS 2022-03-20 19:41:31 +01:00
Alexandre Janniaux e5ec90a6f9 SocketImpl: fix success path by setting NoError
Initialize the error to SocketError::NoError in case of success.

Otherwise, the error wasn't initialized in the success path for the
socket poller, and it was reaching an unknown error because of that.
2022-03-20 17:15:45 +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
Jérôme Leclercq 7621844741 Fix SDL includes 2022-03-20 13:37:27 +01:00
Jérôme Leclercq 63320fa205 macOS fixes (+ cache deps) 2022-03-20 11:29:39 +01:00
Jérôme Leclercq a6dce6861d macOS fixes 2022-03-20 10:02:31 +01:00
Jérôme Leclercq 0469ecb300 macOS fix 2022-03-20 09:19:50 +01:00
Jérôme Leclercq 54ca483cc7 macOS fix 2022-03-19 23:45:26 +01:00
Jérôme Leclercq 04dfd25c74 CI: Try to build NazaraCore on macOS 2022-03-19 23:29:19 +01:00
Lynix d853741f6f Core/StringExt: Fix out of range read 2022-03-19 17:44:39 +01:00
Lynix cf5e4b72e1 Core/StringExt: Add overloads of EndsWith 2022-03-19 14:19:52 +01:00
Lynix a4543b30c3 Network: Add fast peer disconnection in case of network error/unreachable host 2022-03-19 12:48:25 +01:00
Lynix dc24ff33a4 Audio: Add sound stream test 2022-03-19 12:36:55 +01:00
Lynix 45f0825a6e Audio: Final fixes 2022-03-19 12:16:52 +01:00
Jérôme Leclercq 82641c6653 Audio: Add dummy device (in case OpenAL fails to load) and unifiate unit tests 2022-03-18 19:03:57 +01:00
Jérôme Leclercq 615509d1ba Add support for shader hotreloading 2022-03-17 21:36:36 +01:00
Jérôme Leclercq 667a4a0c08 Audio: Handle AudioBuffer compatibility
OpenAL buffers are shared between contextes
2022-03-17 18:15:53 +01:00
Jérôme Leclercq 01061380ee Audio/AudioDevice: Improve GetListenerRotation 2022-03-17 18:15:53 +01:00
Jérôme Leclercq 6165b3a101 Audio: Rewrite audio module 2022-03-17 18:15:53 +01:00
Jérôme Leclercq eb4629947e Minor fixes 2022-03-16 08:25:19 +01:00
Jérôme Leclercq 19f6bdf7e0 Add Physics2D components and systems (WIP) 2022-03-16 08:24:57 +01:00
Jérôme Leclercq 801b06abfe Shader: Fix module overwriting 2022-03-15 18:35:02 +01:00
Jérôme Leclercq 06406fc20e Shader/FilesystemModuleResolver: Fix RegisterModuleDirectory 2022-03-15 13:20:17 +01:00
Jérôme Leclercq 0e92ef823d Graphics: Use module name to retrieve material shaders 2022-03-15 13:14:43 +01:00
Jérôme Leclercq 0f55779a8a Fix compilation 2022-03-15 12:44:21 +01:00
Jérôme Leclercq 79a5716110 Revert "Try to fix GCC error"
This reverts commit 11d5eb7d6063e6cf1da276cc5981d2d57e13f05e.
2022-03-15 12:44:21 +01:00
Jérôme Leclercq 9b1d8b5fcf Try to fix GCC error 2022-03-15 12:44:21 +01:00
Jérôme Leclercq 56c6eff7f8 Rebase fix 2022-03-15 12:44:21 +01:00
Jérôme Leclercq 6bd9f1a9e4 Add unity build support 2022-03-15 12:44:21 +01:00
Jérôme Leclercq 0a4fd8f56d Enable unity build on modules that support it 2022-03-15 12:44:21 +01:00
Jérôme Leclercq bf44672354 Shader: Add support for exported functions 2022-03-14 18:30:55 +01:00
Jérôme Leclercq e9543b20a2 Shader: Fix function calls with OpenGL 2022-03-14 18:30:55 +01:00
Jérôme Leclercq e40e8eb204 Shader: Change module system (no longer based on path) 2022-03-14 18:30:55 +01:00
Jérôme Leclercq 80f9556f8c Shader/LangWriter: Make LangWriter able to output AST before sanitization as well 2022-03-14 18:30:55 +01:00
Jérôme Leclercq 2f26a1d9c7 Graphics: Move LightData to a shader module and add hotreload in debug 2022-03-14 18:30:55 +01:00
Jérôme Leclercq 5a9a55ee7e Shader/MultiStatement: Remove sectionName 2022-03-14 18:30:55 +01:00
Jérôme Leclercq 33554cf5a0 Shader: Remove struct and functions that aren't required 2022-03-14 18:30:55 +01:00
Jérôme Leclercq d29876f448 Shader/SanitizeVisitor: Minor cleanup 2022-03-14 18:30:55 +01:00
Jérôme Leclercq db98b86eaf Core: Rewrite VirtualDirectory class and add more tests 2022-03-14 18:30:55 +01:00
Jérôme Leclercq db0c1e6e8c Shader: Add module resolver + use modules for engine shaders 2022-03-14 18:30:55 +01:00
Jérôme Leclercq 98bd04e35a Shader/SanitizeVisitor: Fix an issue when double-sanitizing
... with differents parameters (like reducing loops to while, which introduces new variables which would take over existing var indices)
2022-03-14 18:30:55 +01:00
Jérôme Leclercq bf7f06ac4c Shader: Fix shader serialization 2022-03-14 18:30:55 +01:00
Jérôme Leclercq 39a2992791 Shader: Minor module fixes 2022-03-14 18:30:55 +01:00
Jérôme Leclercq 05cf98477e Shader: Add proper support for alias 2022-03-14 18:30:55 +01:00
Jérôme Leclercq ce93b61c91 Shader: Serialize cached expression type 2022-03-14 18:30:55 +01:00
Jérôme Leclercq d45ba6696f Shader: Rename VariableExpression to VariableValueExpression 2022-03-14 18:30:55 +01:00
Jérôme Leclercq 1401c46d44 Shader: Better fix than 3ccec0ce 2022-03-14 18:30:55 +01:00
Jérôme Leclercq 3c290c1d0e Shader: Fix unit tests 2022-03-14 18:30:55 +01:00
Jérôme Leclercq be9bdc4705 Modules are workings \o/ 2022-03-14 18:30:55 +01:00
Lynix 83d26e209e WIP2 2022-03-14 18:30:55 +01:00
Jérôme Leclercq 012712b8d0 WIP 2022-03-14 18:30:55 +01:00
Jérôme Leclercq d72ac9cc73 Core/Uuid: Add FromString builder method 2022-03-14 18:30:55 +01:00
Jérôme Leclercq a7acf32886 Shader: Replace indices-based option keys by CRC32 2022-03-14 18:30:55 +01:00
Jérôme Leclercq 53157875b9 Shader: Fix LangWriter not outputting const if 2022-03-14 18:30:55 +01:00
Jérôme Leclercq a4858d6793 Shader: Add comments to surround modules 2022-03-14 18:30:55 +01:00
Jérôme Leclercq 4bded2182c Minor changes 2022-03-14 18:30:55 +01:00
Jérôme Leclercq 53728200ac Shader: Add module ID (UUID) 2022-03-14 18:30:55 +01:00
Jérôme Leclercq 43ac86e85c Shader/Modules: proof of concept 2022-03-14 18:30:55 +01:00
Jérôme Leclercq 7dab1d735f Shader: Add AstExportVisitor 2022-03-14 18:30:55 +01:00
Jérôme Leclercq 073f1dc434 Shader/DependencyCheckerVisitor: Update default config 2022-03-14 18:30:55 +01:00
Jérôme Leclercq b6cd85d6fe Shader: Add import statement (not doing anything for now) 2022-03-14 18:30:55 +01:00
Jérôme Leclercq ca83f363a3 Shader: Add export attribute for structs ([export]) 2022-03-14 18:30:55 +01:00
Jérôme Leclercq a2f4f3c802 Shader: Many fixes 2022-03-14 18:30:55 +01:00
Jérôme Leclercq 1919bd3302 Fix compilation 2022-03-14 18:30:55 +01:00
Jérôme Leclercq 0c3607579e Shader/ShaderLangParser: small refactor 2022-03-14 18:30:55 +01:00
Jérôme Leclercq 99e07e6e1e Shader: Add module statement 2022-03-14 18:30:55 +01:00
Jérôme Leclercq 4a8ebf869b Minor fixes 2022-03-09 20:05:33 +01:00
Jérôme Leclercq c741bad9a1 Utility/Font: Remove useless atlas release slot 2022-03-04 20:41:14 +01:00
Jérôme Leclercq 72b664f42c Core: Add Uuid class 2022-03-04 20:40:41 +01:00
Jérôme Leclercq 36aea2ca0c Shader/SanitizeVisitor: Fix sanitization of already sanitized AST with holes in indices
this happens when you sanitize an AST that went through a remove unused pass
2022-02-28 13:30:53 +01:00
Jérôme Leclercq 142f15d538 Fix dependency checker and add unit test 2022-02-28 13:28:59 +01:00
Jérôme Leclercq 96d87d9439 Merge fix 2022-02-27 18:54:45 +01:00
Jérôme Leclercq bcfef75ec2 Merge branch 'master' into nzsl-modules 2022-02-27 18:44:44 +01:00
Jérôme Leclercq 6ee3899400 Shader/SanitizeVisitor: Fix variable shadowing 2022-02-27 18:43:38 +01:00
Jérôme Leclercq 0fe7f6b899 Shader/EliminateUnusedPassVisitor: Fix function call 2022-02-27 18:43:02 +01:00
Jérôme Leclercq fbae413620 Shader/GlslWriter: Improve removal of unused code 2022-02-27 18:42:41 +01:00
Jérôme Leclercq 55a5ae0648 VulkanRenderer: Improve pixel format handling 2022-02-27 18:41:43 +01:00
Jérôme Leclercq 8a097afb1b Graphics/FramePass: Replace render rect parameter of CommandCallback by FramePassEnvironment 2022-02-27 18:37:05 +01:00
Jérôme Leclercq a155aa598e Shader: Move DependencyChecker to a public class 2022-02-26 16:08:16 +01:00
Jérôme Leclercq 6611cdf72e Minor fixes 2022-02-24 18:52:38 +01:00
Jérôme Leclercq cb1bc956b2 Network: Fix posix implementation 2022-02-24 18:28:41 +01:00
Jérôme Leclercq 7dbaed9aa5 Network: Fix minor issues with IP address parsing and add tests 2022-02-24 12:38:08 +01:00
Jérôme Leclercq 13f2132110 Utility/GuillotineImageAtlas: Fix copy of previous data 2022-02-23 23:49:13 +01:00
Jérôme Leclercq 86cc814f1b Utility/GuillotineImageAtlas: Add max layer size 2022-02-23 23:48:58 +01:00
Jérôme Leclercq fe16584c8c Minor fixes 2022-02-23 23:48:20 +01:00
Jérôme Leclercq 40a9d75bb7 spoilers... 2022-02-23 13:36:38 +01:00
Jérôme Leclercq f38d2747b8 Minor stuff (mostly to shut up static analysis) 2022-02-23 13:20:06 +01:00
Jérôme Leclercq 1e9e05adfa Graphics/MaterialPass: Fix shader option index 2022-02-23 13:14:30 +01:00
Jérôme Leclercq 004c0d84b1 Graphics/RenderSystem: Fix invisible graphics/lights unregistration 2022-02-23 13:10:33 +01:00
Jérôme Leclercq 9ee8196b83 Static analysis fix 2022-02-22 13:31:37 +01:00
Jérôme Leclercq 0dd8c21543 Graphics/ForwardFramePipeline: Fix scissor update 2022-02-22 13:31:22 +01:00
Jérôme Leclercq 7ece44b4f4 Shader: Rename Optimize to ConstantPropagation 2022-02-22 13:28:01 +01:00
Jérôme Leclercq 20a86312ff Graphics/FramePipeline: Replace maps with memory pools and indices 2022-02-21 20:47:11 +01:00
Jérôme Leclercq a1b6f51398 Minor fixes 2022-02-21 20:46:37 +01:00
Jérôme Leclercq cc0fc53bd3 Graphics: Move scissor box from InstancedRenderable to GraphicsComponent 2022-02-21 20:44:54 +01:00
Jérôme Leclercq 29c798a683 Core/MemoryPool: Remake memory pool 2022-02-20 16:00:32 +01:00
Jérôme Leclercq e504c4a982 Minor fixes 2022-02-18 19:37:37 +01:00
Jérôme Leclercq 3f7815175b Shader: Add EliminateUnusedPassVisitor and use it when optimizing 2022-02-18 13:06:47 +01:00
Jérôme Leclercq ebd1318512 OpenGLRenderer: Add shader source on compilation error 2022-02-18 13:05:19 +01:00
Jérôme Leclercq c33ab779d1 ShaderNode: Fix compilation 2022-02-17 13:23:56 +01:00
Jérôme Leclercq 402e16bd2b Shader: Handle type as expressions 2022-02-17 13:23:56 +01:00
Jérôme Leclercq 5ce8120a0c Graphics: Move FramePipeline passes to separate classes 2022-02-16 18:29:27 +01:00
Jérôme Leclercq 979bf2cc80 UnitTests: Improve hash unit tests (add file test) 2022-02-10 11:56:35 +01:00
Jérôme Leclercq 97ee89afb7 Rework hashes (also fix Fletcher16 and CRC64) 2022-02-10 01:46:58 +01:00
Jérôme Leclercq f466a7494b Update for EnTT 3.9 2022-02-08 20:05:14 +01:00
Jérôme Leclercq 6c35b0be57 Minor fixes 2022-02-05 21:30:36 +01:00
Jérôme Leclercq 6457854e03 Minor fixes 2022-02-04 13:54:26 +01:00
Jérôme Leclercq d113b58b5a Graphics/RenderSystem: Fix light removal 2022-02-02 19:41:21 +01:00
Jérôme Leclercq de7fee348a Graphics/ForwardFramePipeline: Frustum cull lights 2022-02-02 19:39:46 +01:00
Jérôme Leclercq 109127459b Graphics/ForwardFramePipeline: Reuse light UBO 2022-02-02 13:47:29 +01:00
Jérôme Leclercq 8a3a8547dc Add light support (WIP) 2022-02-02 12:55:39 +01:00
Jérôme Leclercq e6951d54a5 Shader: Switch type<subtype> to type[subtype] 2022-01-26 19:24:46 +01:00
Jérôme Leclercq 29a01e975c Merge fix 2022-01-23 20:00:11 +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 3c308970a1 Minor fixes 2022-01-23 01:22:16 +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
Lynix 213c7d8a1e Utility/OBJSaver: Handle case where normal and/or texcoords are not present 2022-01-21 14:57:07 +01:00
Lynix 1406c714ac Renderer/Texture: Handle image loading error 2022-01-20 16:46:50 +01:00
Lynix f0b6f2122d Shader: backport struct fix from phong-lighting 2022-01-19 20:44:32 +01:00
Jérôme Leclercq 0af9a96294 Core/Color: Add Gray constant 2022-01-18 06:01:44 +01:00
Jérôme Leclercq 7976ea27b9 Add initial support for normal mapping and other light types 2022-01-18 06:01:15 +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 b6e4a9470e Shader/Ast: Treat repeated swizzle as rvalue (cannot be assigned) 2022-01-02 22:02:46 +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 55784a7dfc VulkanRenderer: Fix scissor handling 2022-01-01 23:02:09 +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 d878036bfc Shader/AstOptimizer: Reduce template complexition 2021-12-28 23:37:35 +01:00
Jérôme Leclercq 60a7cec099 Fix compilation 2021-12-28 22:15:13 +01:00
Jérôme Leclercq 101a3d70da Shader/AstOptimizer: Add swizzle optimization 2021-12-28 20:09:04 +01:00
Jérôme Leclercq 343eac6616 Shader/Parser: Allow external and struct declarations to be conditional 2021-12-28 13:35:53 +01:00
Jérôme Leclercq 4e5def1095 Shader/AstOptimizer: Fix Vector4 cast propagation optimization 2021-12-28 11:49:41 +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 e21b45946f Shader/SPIRV: Fix double termination of blocks when branching
Which could happen when using OpKill (discard) for example
2021-12-26 22:00:44 +01:00
Jérôme Leclercq b43ed890d0 Fix scissor bugs (fixes Deferred Shading flare on Vulkan and widget scissor on OpenGL) 2021-12-25 20:25:39 +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 1080823c4d Shader/SpirvPrinter: Handle LiteralInteger as value 2021-12-25 19:13:48 +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 157e74b016 Shader/GlslWriter: Reorder function implementations 2021-12-25 14:02:22 +01:00
Jérôme Leclercq d4dfe97006 Minor fixes 2021-12-23 17:39:37 +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 e497faabaf Fix compilation 2021-12-21 14:45:53 +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
Lynix 9bd411e53c Shader/SPIRV: Add support for swizzling with one component 2021-12-18 15:51:20 +01:00
Jérôme Leclercq a8fefeb833 Some fixes 2021-12-16 23:11:48 +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 3185e73941 Shader: Fix handling of if/else construct 2021-12-12 23:04:37 +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 3b1bf480e6 Fix some warnings 2021-12-03 22:18:03 +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 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 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 97de5af838 Platform/SDL2: Refactor implementation 2021-12-01 10:42:01 +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 8582b94c44 Minor stuff 2021-11-30 18:18:11 +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 8299a5a4bd Widgets/TextAreaWidget: Add Ctrl+A (select all) support 2021-11-28 20:21:21 +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 2cdd7d0b44 Widgets: Fix issues with Y reversal 2021-11-25 23:04:01 +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 d475bbd4a2 VulkanRenderer/VulkanShaderModule: OCD fix 2021-11-21 19:09:30 +01:00
Jérôme Leclercq 4df0b16d19 Widgets: Fix ButtonWidget 2021-11-21 19:07:46 +01:00
Jérôme Leclercq b12d2eeb0f Widgets/Canvas: Fix mouse position 2021-11-21 19:07:29 +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 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 d040cc6767 Shader/GlslWriter: Fix gl_Position.z remapping 2021-11-21 19:04:09 +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 83772ab035 Graphics/UberShader: Fix stage type check 2021-11-14 19:52:52 +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 cf8f76baa6 Graphics/ForwardframePipeline: Fix render mask test 2021-11-13 20:08:16 +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 d872428658 Graphics/SpriteChainRenderer: Warning fix 2021-10-30 00:52:09 +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 b2aedd394c Minor fixes 2021-10-29 16:50:50 +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 f491ee1e38 Apply inclusion fix 2021-10-27 18:09:19 +02:00
Jérôme Leclercq 38a004d1b9 XMake: Add inclusion fix 2021-10-27 18:09:12 +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 cb716e5da5 Fix OpenGL version check 2021-10-24 15:25:17 +02:00
Jérôme Leclercq 6162a805e4 OpenGLRenderer: Fix buffer destruction not removing VAOs referencing it 2021-10-19 14:48:53 +02:00
Jérôme Leclercq 7e65f4b544 Graphics: Fix warning 2021-10-19 14:34:35 +02:00
Lynix c3999d708f Graphics: Add DistanceAsSortKey function 2021-10-18 16:46:03 +02:00
Lynix 9740db8fe2 Improve MinGW support 2021-10-16 17:45:43 +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 ea49f56530 Shader/LangParser: OCD fix 2021-09-23 17:49:36 +02:00
Jérôme Leclercq 3ad05614f9 Graphics: Use debug regions inside render pass to fix an issue with OpenGL context switch 2021-09-23 17:49:15 +02:00
Jérôme Leclercq aa2021dc49 Graphics/GuillotineTextureAtlas: Handle texture instantiation failure (happens if size is too big) 2021-09-21 17:40:43 +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 75f927b414 Utility: Handle vertex color loading 2021-09-08 19:07:59 +02:00
Jérôme Leclercq 099f182126 Graphics/SpriteChainRenderer: Fix single sprite data over multiple vertex buffers 2021-09-07 19:12:25 +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 7a78e7be8c Fix compilation 2021-09-06 09:45:30 +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 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
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