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
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