SirLynix
813314b5d5
UberShader: Handle case where entry points come from imported modules
2022-06-17 19:07:40 +02:00
SirLynix
6f18a02999
Add fullscreen vertex shader module
2022-06-16 19:26:57 +02:00
SirLynix
62ba4f172b
Graphics/GraphicalMesh: Allow to update submeshes
2022-06-16 18:19:48 +02:00
SirLynix
2cc4944f58
Fix compilation
2022-06-16 18:19:19 +02:00
SirLynix
8e8bee7037
Temp fix for NZSL update
2022-06-15 20:26:14 +02:00
SirLynix
c7b6d83bbc
Last nzsl version update
2022-06-07 20:18:16 +02:00
SirLynix
510ef8c41e
Update shaders to new import syntax
2022-06-05 18:51:46 +02:00
Jérôme Leclercq
03e2801dbe
Split engine to packages NazaraUtils and NZSL ( #375 )
...
* Move code to NazaraUtils and NZSL packages
* Reorder includes
* Tests: Remove glslang and spirv-tools deps
* Tests: Remove glslang init
* Remove NazaraUtils tests and fix Vector4Test
* Fix Linux compilation
* Update msys2-build.yml
* Fix assimp package
* Update xmake.lua
* Update xmake.lua
* Fix shader compilation on MinGW
* Final fixes
* The final fix 2: the fix strikes back!
* Disable cache on CI
* The return of the fix™️
2022-05-25 19:36:10 +02:00
SirLynix
41712a3f18
Minor fixes
2022-05-08 13:21:20 +02:00
SirLynix
e7274b24e9
Core/Color: Switch formal from RGBA8 to RGBA32F
2022-04-23 16:08:15 +02:00
SirLynix
a10682628d
Warning fixes
2022-04-23 12:25:54 +02:00
SirLynix
5a7bd44744
Graphics/MaterialPass: Fix option values in release
2022-04-19 19:16:03 +02:00
SirLynix
c209552f81
Math/Matrix4: Rework "transform matrix" support
2022-04-19 18:32:16 +02:00
SirLynix
cd08d97ac6
Graphics: Fix submesh rendering
2022-04-19 18:32:16 +02:00
SirLynix
ca9854d06a
Graphics/FrameGraph: Fix pipeline barrier from output to input
2022-04-08 13:36:07 +02:00
SirLynix
8784ec9b47
Add shader compiler (nzslc) and use it
2022-04-06 09:04:09 +02:00
SirLynix
68d2dfcae6
Move FieldOffsets class to Shader module and remove Utility dependency
2022-04-04 19:22:18 +02:00
SirLynix
9d526741b9
Add proper support for IndexType and uint32 indices
2022-04-04 09:02:00 +02:00
SirLynix
66ff6cfa81
Minor fixes
2022-04-04 08:17:03 +02:00
Lynix
83de0939bb
Shader: Fix validation and cast from u32 to i32
2022-04-02 21:20:01 +02:00
SirLynix
f14b10baf4
Graphics/ViewerInstance: fix typo
2022-03-31 13:35:08 +02:00
SirLynix
8146ec251a
Shader: Add support for partial sanitization
2022-03-25 12:54:51 +01:00
Jérôme Leclercq
63320fa205
macOS fixes (+ cache deps)
2022-03-20 11:29:39 +01:00
Jérôme Leclercq
615509d1ba
Add support for shader hotreloading
2022-03-17 21:36:36 +01:00
Jérôme Leclercq
801b06abfe
Shader: Fix module overwriting
2022-03-15 18:35:02 +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
6bd9f1a9e4
Add unity build support
2022-03-15 12:44:21 +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
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
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
a7acf32886
Shader: Replace indices-based option keys by CRC32
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
8a097afb1b
Graphics/FramePass: Replace render rect parameter of CommandCallback by FramePassEnvironment
2022-02-27 18:37:05 +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
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
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
f466a7494b
Update for EnTT 3.9
2022-02-08 20:05:14 +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
249aebac05
Merge branch 'master' into phong-lighting
2022-01-23 13:36:48 +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
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
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
b98fd65a01
Fix a lot of small bugs/warnings
2021-12-25 20:07:53 +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
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
07199301df
Graphics/FrameGraph: Handle invalidation and flush barriers
2021-12-16 18:29:40 +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
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
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
8b899253b1
Graphics/InstancedRenderable: Add support for render layer
2021-12-01 18:57:50 +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
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
a33a118ed3
Minor fixes
2021-11-24 22:29:09 +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
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
2a8568f2ac
Graphics/InstancedRenderable: Replace constructor AABB with UpdateAABB method
2021-11-21 17:14:39 +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
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
Lynix
d872428658
Graphics/SpriteChainRenderer: Warning fix
2021-10-30 00:52:09 +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
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
4067116eb8
Graphics/ForwardFramePipeline: Handle material invalidation correctly
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
ed7ab31933
Apply copyright fix to all files
2021-10-26 14:31:35 +02:00
Jérôme Leclercq
14fb2b83ae
Minor fixes
2021-10-25 15:48:49 +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
Jérôme Leclercq
a66f6faed1
Add widgets (WIP)
2021-10-04 09:25:45 +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
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
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
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
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
732bb89a86
Graphics/UberShader: Add config callback
2021-09-05 15:46:59 +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
2b9d8becea
Math: Rework Frustum class
2021-08-23 18:43:34 +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
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
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
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
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
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
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
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
ae364934bb
Graphics/CameraComponent: Add remaining features
2021-07-10 14:27:38 +02:00
Jérôme Leclercq
c72dfc8004
Graphics: Add forceDisableFeatures config
2021-07-09 12:37:11 +02:00
Jérôme Leclercq
8458301a64
Add support for depth clamping
2021-07-09 00: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
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
bfab451633
Remove resources headers (as they will be generated on compilation)
2021-07-07 22:44:38 +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
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
cb82951c9a
Fix Linux compilation
2021-07-06 11:29:14 +02:00