Lynix
4c226eda0c
Merge branch 'master' into nzsl-modules
2022-02-27 20:12:30 +01:00
Lynix
1c986b7431
Fix compilation
2022-02-27 20:04:52 +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
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
28531f5118
Minor changes
2022-02-25 19:36:54 +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
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
ad544a595d
Core/MemoryPool: Add iterator
2022-02-21 20:45:25 +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
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
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
de7fee348a
Graphics/ForwardFramePipeline: Frustum cull lights
2022-02-02 19:39:46 +01:00
Jérôme Leclercq
5945a7145c
Fix MinGW compilation error
2022-02-02 13:48:39 +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
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
Jérôme Leclercq
3ce072c8e0
Regenerate global headers
2021-08-19 18:47:11 +02:00
Jérôme Leclercq
793952eb67
Graphics: Add Camera class
2021-08-19 18:47:11 +02:00
Jérôme Leclercq
9a311da2c8
Graphics: Add MaterialPassRegistry
2021-08-19 18:47:11 +02:00
Jérôme Leclercq
5b1123b971
Graphics: Fix WorldInstance removal while being in use
2021-08-19 18:47:11 +02:00
Jérôme Leclercq
289472dc9f
Graphics/ForwardFramePipeline: Minor fixes
2021-08-19 18:47:11 +02:00
Jérôme Leclercq
3de0edec6f
Graphics/RenderQueue: Remake it with a naive implementation
...
The idea is to improve it in the future, after profiling
2021-08-19 18:47:11 +02:00
Jérôme Leclercq
08921b36a6
Graphics: Add RenderElement and ElementRenderer (WIP)
2021-08-19 18:47:11 +02:00
Jérôme Leclercq
e4a38d45bd
Renderer/CommandBufferBuilder: Take const AbstractBuffer* to match others methods
2021-08-19 18:47:11 +02:00
Jérôme Leclercq
7e0137f367
Core/Flags: Fix std::hash include
2021-08-19 18:47:11 +02:00
Jérôme Leclercq
7fb5109dfa
Graphics/FrameGraph: Make use of RenderPassCache
2021-08-19 18:47:11 +02:00
Jérôme Leclercq
7e4f624ca7
Renderer: Add RenderPassCache
2021-08-19 18:47:11 +02:00
Jérôme Leclercq
8846eb4309
Regenerate global headers
2021-08-19 18:47:11 +02:00
Jérôme Leclercq
b5045a2c59
Graphics: Add Material and made use of passes (WIP)
2021-08-19 18:47:11 +02:00
Jérôme Leclercq
f61deabe92
Graphics/BakedFrameGraph: Don't release in flight resources
2021-08-19 18:47:11 +02:00
Jérôme Leclercq
40ecdda3cd
VulkanRenderer: Handle VulkanRenderPass destruction
2021-08-19 18:47:11 +02:00
Jérôme Leclercq
1c77a5e549
Core/Flags: Add std::hash specialization
2021-08-19 18:47:11 +02:00
Jérôme Leclercq
5669b5bc60
Graphics: Rename Material to MaterialPass
2021-08-19 18:47:11 +02:00
Lynix
2ee3957822
Renderer: Add NAZARA_REQUEST_DEDICATED_GPU macro
2021-08-04 15:58:24 +02:00
Jérôme Leclercq
90df17d45a
Graphics/Material(Pipeline): Remove leftovers attributes
2021-07-13 14:38:09 +02:00
Jérôme Leclercq
99876d935d
Graphics/Material: Fix IsDepthClampEnabled method
2021-07-13 12:04:19 +02:00
Jérôme Leclercq
863fb3ea7e
Shader: Fix optimization issues
...
Moving the unique_ptrs but failing to optimize the expression could cause issues
Also the constant query callback defaulted to ConstantValue (without const ref), thanks auto.
2021-07-11 11:17:48 +02:00
Jérôme Leclercq
ae364934bb
Graphics/CameraComponent: Add remaining features
2021-07-10 14:27:38 +02:00
Jérôme Leclercq
488ccf9648
Renderer/RenderTarget: Add OnRenderTargetRelease signal
2021-07-10 14:25:49 +02:00
Jérôme Leclercq
c6611fcb9f
Renderer/RenderTarget: Add size method and signal
2021-07-10 11:49:35 +02:00
Jérôme Leclercq
c72dfc8004
Graphics: Add forceDisableFeatures config
2021-07-09 12:37:11 +02:00
Jérôme Leclercq
681cf31b66
OpenGLRenderer: Disable notification messages
2021-07-09 12:36:00 +02:00
Jérôme Leclercq
56776c19c4
OpenGLRenderer: Fix device features not being correctly reported
2021-07-09 12:35:35 +02:00
Jérôme Leclercq
552dfbc01e
Renderer: Add pipeline and texture sampler info validation
2021-07-09 12:34:38 +02:00
Jérôme Leclercq
8458301a64
Add support for depth clamping
2021-07-09 00:22:08 +02:00
Jérôme Leclercq
3a3279246f
OpenGLRenderer: Enable GL_ARB_gl_spirv and GL_ARB_texture_filter_anisotropic with OpenGL 4.6
2021-07-09 00:01:33 +02:00
Jérôme Leclercq
996b5ef85c
Shader: Rename ConstantIndexExpression to ConstantExpression
2021-07-08 15:24:22 +02:00
Jérôme Leclercq
3a31c77524
Shader: Rename ConstantExpression to ConstantValueExpression
2021-07-08 15:22:08 +02:00
Jérôme Leclercq
a895e553d4
Graphics: rework ubershaders to prevent duplicate shaders modules
...
Also rename all remaining conditions to options
2021-07-08 14:52:39 +02:00
Jérôme Leclercq
d3e0d8a39f
Shader: Replace select_opt by const_select
2021-07-08 10:53:11 +02:00
Jérôme Leclercq
5aa63831e8
Remove Nazara SDK
2021-07-07 22:56:50 +02:00
Jérôme Leclercq
309fd547e1
Fix compilation errors and warnings
2021-07-07 22:38:24 +02:00
Jérôme Leclercq
1f6937ab1b
Shader: Implement const if and const values
2021-07-07 22:38:24 +02:00
Jérôme Leclercq
72edff30c7
Shader: Add support for logical and/or
2021-07-07 22:38:24 +02:00
Jérôme Leclercq
f9af35b489
Shader: Attribute can now have expressions as values and struct fields can be conditionally supported
2021-07-07 22:38:24 +02:00
Jérôme Leclercq
ae73f68d8c
Shader: Fix variable shadowing with GLSL
2021-07-06 11:43:47 +02:00
Jérôme Leclercq
4ac5fe7cba
Graphics: Add RenderSystem and frame pipeline
2021-07-06 11:04:22 +02:00
Jérôme Leclercq
7cd772a254
Core/TypeList: Add Apply, Empty and Size operations
2021-07-06 11:00:53 +02:00
Jérôme Leclercq
f9b453bd2b
Shader: Add support for branching and discard statements
2021-07-03 19:13:22 +02:00
Jérôme Leclercq
f2bb1a839c
Math/Matrix4: Remove implicit conversion to pointer
2021-07-03 18:20:00 +02:00
Jérôme Leclercq
ffb28a9044
Physics3D/RigidBody3D: Remove transform callback
2021-07-03 16:34:51 +02:00
Jérôme Leclercq
1c482bbde6
Graphics/BakedFrameGraph: Handle resize in a better way
2021-07-03 13:57:18 +02:00
Jérôme Leclercq
f14db3f5e9
Renderer: Expose RenderTarget and framebuffers indices
2021-07-03 13:52:29 +02:00
Jérôme Leclercq
d88c4ecb5b
Renderer/Framebuffer: Add GetType (and rework backend internals)
2021-06-22 17:30:08 +02:00
Jérôme Leclercq
c188d0616a
OpenGLRenderer: Implement AttachmentLoadOp::Discard using glInvalidateFramebuffer
2021-06-22 17:26:40 +02:00
Jérôme Leclercq
8eb1eb71ba
Merge branch 'nazara-next' of https://github.com/DigitalPulseSoftware/NazaraEngine into nazara-next
2021-06-20 14:13:21 +02:00
Jérôme Leclercq
dae8f328ad
Renderer: Increase allocation pool blocks size
2021-06-20 14:08:38 +02:00
Jérôme Leclercq
de6be67ea6
Utility/Mesh: Add Build static method
2021-06-20 14:06:28 +02:00
Jérôme Leclercq
e073e1a44d
Graphics/Material: Add PrimitiveMode support
2021-06-20 14:06:28 +02:00
Jérôme Leclercq
fe06cc210d
Physics3D/Collider3D: Add GenerateMesh method
2021-06-20 14:06:28 +02:00
Jérôme Leclercq
dbe4abefb8
Math: Add PidController class
2021-06-20 14:06:28 +02:00
Jérôme Leclercq
0eda2d0721
Improve global header generation to take ECS into account
2021-06-20 14:06:28 +02:00
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
dfa46ebaa5
Fix shader generation unit tests
2021-06-16 16:50:00 +02:00
Jérôme Leclercq
298beaedc0
Graphics/BasicMaterial: Add IsAlphaTestEnabled()
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
b85cb174ce
Reverse Y axis (+Y is now up)
2021-06-06 15:59:25 +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
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
fde60dab95
Add missing include
2021-06-05 01:38:49 +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
ee2ceaa701
Update Context.hpp
2021-06-04 19:41:35 +02:00
Jérôme Leclercq
4b3b595a99
Minor fixes
2021-06-04 18:02:28 +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
12e9edd2d7
Math/Algorithm: Fix missing implementation of Clamp for Angles
2021-06-01 18:04:18 +02:00
Jérôme Leclercq
b6094bf1dd
Math/Matrix4: Update projection matrix formula
2021-06-01 17:39:15 +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
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
d5c27a756b
Audio: Fix AudioFormat names (U16 -> I16)
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
318cc6d3ff
Fix Linux compilation
2021-05-29 13:20:54 +02:00
Jérôme Leclercq
2f8a82ed05
Shader/ShaderBuild: Fix ambiguity for AccessMember
2021-05-29 00:56:04 +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
109b2a156e
OpenGLRenderer: Allow RenderPipeline without a fragment shader on OpenGL ES
2021-05-29 00:32:00 +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
948f0517ea
OpenGLRenderer/Program: Add query methods
2021-05-26 22:20:50 +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
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
f0192c3b98
Core/ResourceLoader: Fix stream reset in case of error
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
f6fd996bf1
Shader: Add support for custom functions calls (and better handle intrinsics)
2021-05-22 13:37:54 +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
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