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
8e8bee7037
Temp fix for NZSL update
2022-06-15 20:26:14 +02:00
SirLynix
16922a9519
Audio/Music: Fix datarace
2022-06-07 20:18:26 +02:00
SirLynix
c7b6d83bbc
Last nzsl version update
2022-06-07 20:18:16 +02:00
SirLynix
d335c5d73c
Add FFmpeg plugin
2022-05-27 18:53:16 +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
3f8f1c4653
Core/TypeList: Improve ListConcat compile-time
...
seriously I have no idea why I implemented it like that
2022-05-19 09:04:06 +02:00
Lynix
0e82c2893a
Core/VirtualDirectory: Prevent storing . and .. entries
2022-05-16 21:32:59 +02:00
Lynix
52f822fbcb
Math/Matrix4: Add TransformInverse(translation, rotation, scale)
2022-05-15 22:29:20 +02:00
Lynix
dd4be081aa
Core/VirtualDirectory: Add Uproot property
2022-05-14 10:22:22 +02:00
SirLynix
b6ab3ba1b3
Graphics: Add light type
2022-05-12 23:09:40 +02:00
SirLynix
5544d336ab
Shader: Fix index remapping when importing a text shader in a precompiled shader
2022-05-12 23:08:21 +02:00
SirLynix
6469ab5fde
Utility: Refactor some algorithms
2022-05-12 18:15:20 +02:00
SirLynix
7c2b8e0576
Core/File: Add WriteWhole static function
2022-05-12 18:11:41 +02:00
SirLynix
b0ecb64f19
OpenGLRenderer: Fix loading of glSpecializeShader
2022-05-09 13:19:31 +02:00
SirLynix
6dc2cefc2c
Add some missing includes
2022-05-09 09:00:17 +02:00
Lynix
df55a02fa7
Core/VirtualDirectory: Add GetFileContent method
2022-05-08 15:50:59 +02:00
Lynix
5f389ef0a4
Core/File: Add ReadWhole
2022-05-08 15:50:29 +02:00
Lynix
17b1c2407d
Audio/AudioSource: Add GetSampleOffsetAndLatency
2022-05-08 15:44:41 +02:00
SirLynix
41712a3f18
Minor fixes
2022-05-08 13:21:20 +02:00
SirLynix
4794073b73
Audio: Add support for AL_SOFT_source_latency
2022-05-08 13:20:55 +02:00
SirLynix
81085508ec
Minor fixes
2022-05-05 20:20:44 +02:00
SirLynix
973b589b08
Shader: Fix conditional statement handling in partial compilation mode
2022-05-05 20:19:27 +02:00
SirLynix
e62969999a
ShaderCompiler: Add --log-format option
2022-05-05 20:18:34 +02:00
SirLynix
106d629342
Shader: Update SPIRV data
2022-05-05 20:17:32 +02:00
Alexandre Janniaux
f146661a76
VulkanRenderer: implement metal view
...
The metal view backing the MoltenVK compatibility wrapper is written in
Obj-C.
It would have been possible to use the Objective-C runtime in C++ but
the code is less performant (the symbol binding is done at first use
instead of the beginning of the program) and actually harder to get
right.
Note that MoltenVK is not linked to the loader, so the libMoltenVK.dylib
object must be available for loading.
2022-05-04 22:12:01 +02:00
Jérôme Leclercq
e6c74fbc5f
Physics2D/Constraint2D: Add method GetLastImpulse
2022-05-01 17:37:11 +02:00
SirLynix
13f765fc0d
Utility: Fix GIF loading
2022-04-27 18:24:00 +02:00
SirLynix
2a091d25b7
Utility: Add ImageStream and GIF support
2022-04-27 18:24:00 +02:00
SirLynix
3d15f3578b
Utility: Use UInt64 to store index/vertex instead of size_t
2022-04-23 23:12:40 +02:00
SirLynix
0f58117b76
Fix compilation on macOS
2022-04-23 22:23:07 +02:00
SirLynix
2389a2fe53
Platform/WindowManager: Rename to WindowBackend
2022-04-23 16:26:59 +02:00
SirLynix
e7274b24e9
Core/Color: Switch formal from RGBA8 to RGBA32F
2022-04-23 16:08:15 +02:00
SirLynix
de53c88c01
Utility/Algorithm: Use UInt64 for index count and vertex count
2022-04-23 14:07:26 +02:00
SirLynix
e11644a81d
Shader/IndexRemapperVisitor: Fix unhandled cases
2022-04-20 01:02:42 +02:00
SirLynix
7fccfbb63e
Minor fixes
2022-04-19 18:32:16 +02:00
SirLynix
c209552f81
Math/Matrix4: Rework "transform matrix" support
2022-04-19 18:32:16 +02:00
SirLynix
f9d4451b4a
OCD fix
2022-04-19 18:32:16 +02:00
SirLynix
138f2b88b3
Fix buffering issues
2022-04-19 13:38:44 +02:00
SirLynix
22f58fdbf5
Add stream buffering (WIP)
2022-04-09 18:22:57 +02:00
SirLynix
2b66ea1e90
Core/Bitset: Fix doc
2022-04-09 18:21:16 +02:00
SirLynix
447cdfddc9
Shader: Error fixes
2022-04-06 09:06:02 +02:00
SirLynix
8784ec9b47
Add shader compiler (nzslc) and use it
2022-04-06 09:04:09 +02:00
SirLynix
262c82b9e1
Shader: Use constexpr maps for static data
2022-04-05 08:41:47 +02:00
SirLynix
18edd41048
Shader: Fix dependency check of modules
2022-04-05 08:35:12 +02:00
SirLynix
7f15c66f16
Shader/EliminateUnusedPassVisitor: Handle alias declarations
2022-04-04 19:23:20 +02:00
SirLynix
68d2dfcae6
Move FieldOffsets class to Shader module and remove Utility dependency
2022-04-04 19:22:18 +02:00
SirLynix
998bcde2e2
Fix compilation
2022-04-04 12:14:56 +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
Lynix
5cd9f6fdcd
Minor fixes
2022-04-02 21:18:04 +02:00
SirLynix
71db80c374
Update global headers
2022-04-02 17:25:08 +02:00
SirLynix
aa43db956c
Shader: Fixes some errors and add unit tests
2022-04-02 16:07:13 +02:00
SirLynix
1c7a3a96e5
Shader/SourceLocation: Fix column index
2022-04-02 03:03:06 +02:00
SirLynix
81b1b9b473
Shader/DependencyCheckerVisitor: Handle aliases
2022-04-02 02:04:42 +02:00
SirLynix
7c640f5c00
Shader: Add types to error messages (and remove ID)
2022-04-01 18:19:50 +02:00
SirLynix
16cf75440b
Shader: Turn every AstError into a proper compilation error (with source info)
2022-04-01 18:19:50 +02:00
SirLynix
ac9e7207ac
Shader: Add compiler and AST errors (WIP)
...
I'm so afraid to lose all this work
2022-04-01 18:19:50 +02:00
SirLynix
35f6240786
Shader: Fix some errors
2022-04-01 18:19:50 +02:00
SirLynix
78f4751967
Shader: Fill SourceLocation info to AST when parsing
2022-04-01 18:19:50 +02:00
SirLynix
8429411755
Shader: Improve attribute source location
2022-04-01 18:19:50 +02:00
SirLynix
960ab64d98
Shader: Add SourceLocation members
...
TODO: Fill from Parser and use them for error throwing in SanitizeVisitor
2022-04-01 18:19:50 +02:00
SirLynix
ebad7b5e8c
Shader: Add support for error messages (WIP)
2022-04-01 18:19:50 +02:00
SirLynix
f14b10baf4
Graphics/ViewerInstance: fix typo
2022-03-31 13:35:08 +02: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
Jérôme Leclercq
f1af498710
Update Prerequisites.hpp
2022-03-20 19:09:45 +01:00
Alexandre Janniaux
ccb36e2e4c
Prerequisites: differentiate MacOS from iOS/tvOS
...
TargetConditionals.h is exposed on every Apple Darwin platforms and
provides defines to signal the kind of underlying device.
2022-03-20 19:09:45 +01:00
Jérôme Leclercq
a541d44d03
MoltenVK fix
2022-03-20 15:30:19 +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
63320fa205
macOS fixes (+ cache deps)
2022-03-20 11:29:39 +01:00
Jérôme Leclercq
bd4cf8e264
macOS fixes
2022-03-20 10:52:19 +01:00
Jérôme Leclercq
a6dce6861d
macOS fixes
2022-03-20 10:02:31 +01:00
Jérôme Leclercq
04dfd25c74
CI: Try to build NazaraCore on macOS
2022-03-19 23:29:19 +01:00
Jérôme Leclercq
021fd9d031
macOS fix
2022-03-19 20:01:49 +01:00
Lynix
cf5e4b72e1
Core/StringExt: Add overloads of EndsWith
2022-03-19 14:19: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
19f6bdf7e0
Add Physics2D components and systems (WIP)
2022-03-16 08:24:57 +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
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
6bd9f1a9e4
Add unity build support
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
1c4ce75aa0
Fix compilation
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
b92a9f8a1c
Core/VirtualDirectory: Fix physical path traversal
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
3d4271706a
Core/VirtualDirectory: Fix some bugs and add more tests
2022-03-14 18:30:55 +01:00
Jérôme Leclercq
bfaa428b39
Fix compilation
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
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
Lynix
8dcce73738
Fix after rebase
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
505d996c88
Core: Add constexpr CRC32 function
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
acf1b30355
Shader/AstCompare: Fix missing ConditionalStatement compare
2022-03-06 13:19:19 +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
Lynix
1e606f3043
Fix compilation after merge
2022-02-27 20:18:36 +01:00
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
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
Lynix
ccccbfe0ad
Shader/SpirV: Fix UInt32 support
2021-05-16 23:14:39 +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
Lynix
525f24af2e
Shader/ShaderLang: Add support for Unary operators
2021-05-16 23:07:25 +02:00
Jérôme Leclercq
cb881612cc
Renderer: OCD fix
2021-05-15 15:27:37 +02:00
Jérôme Leclercq
51c099b3ce
Renderer: Allow UploadPool to handle very big (>= 2MB) blocks
2021-05-15 15:27:17 +02:00
Jérôme Leclercq
572dc56b10
Update global headers
2021-05-14 03:35:32 +02:00
Jérôme Leclercq
2641117847
Add building using xmake and cleanup thirdparty
2021-05-14 03:35:32 +02:00
Jérôme Leclercq
830ec6ac94
Add a few helper functions
2021-05-14 02:09:25 +02:00
Jérôme Leclercq
f280cff0a2
Renderer: Add release queue to fix deletion while use
2021-05-14 02:04:47 +02:00
Jérôme Leclercq
51ecff2912
ShaderLang: Add support for length intrinsic
2021-05-14 02:02:12 +02:00
Jérôme Leclercq
24f7b75654
Renderer: Add support for PixelFormat_RGBA32F
2021-05-14 01:57:32 +02:00
Jérôme Leclercq
bbfe06c443
Renderer: Fix UploadPool allocations references
2021-05-14 01:56:32 +02:00
Jérôme Leclercq
aeac3282e4
Renderer: Add RenderDevice::GetDeviceInfo()
2021-05-14 01:55:16 +02:00
Jérôme Leclercq
adbf1e1da0
Renderer: Add proper support for blending
2021-05-14 01:50:46 +02:00
Jérôme Leclercq
61dbd91346
Lot of small fixes/improvements
2021-05-14 01:48:47 +02:00
Jérôme Leclercq
9376cfefd2
Graphics/FrameGraph: Add support for pass name (as debug sections)
2021-05-14 01:45:45 +02:00