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