Jérôme Leclercq
d704743712
OpenGLRenderer/UploadPool: Fix Allocate with size > maxBlockSize
2021-09-05 15:47:26 +02:00
Jérôme Leclercq
732bb89a86
Graphics/UberShader: Add config callback
2021-09-05 15:46:59 +02:00
Jérôme Leclercq
b6c3988bbe
Renderer: Implement firstIndex on DrawIndexed command for OpenGL
2021-09-05 15:46:00 +02:00
Jérôme Leclercq
02a12d9328
Handle shader options of any type
2021-09-03 19:33:41 +02:00
Jérôme Leclercq
cb911a6daa
Update HardwareInfoImpl.cpp
2021-08-27 15:39:29 +02:00
Jérôme Leclercq
120d8f5427
Renderer/RenderWindow: Remove Display and GetImpl methods
2021-08-27 15:39:23 +02:00
Jérôme Leclercq
2b9d8becea
Math: Rework Frustum class
2021-08-23 18:43:34 +02:00
Jérôme Leclercq
b31c56c642
Fix compilation with Clang
2021-08-21 15:27:32 +02:00
Jérôme Leclercq
db99196d3a
Fix compilation with Linux
2021-08-21 02:04:53 +02:00
Jérôme Leclercq
0179ef4d65
Graphics: Improve frustum culling (do it once per viewer)
2021-08-21 01:42:53 +02:00
Jérôme Leclercq
8546631f62
Add frustum culling (WIP)
2021-08-19 23:26:34 +02:00
Jérôme Leclercq
8db8533300
Fixes a lot of warnings and move math enums to enum classes
2021-08-19 20:27:20 +02:00
Jérôme Leclercq
a2a0e6bd54
Graphics: Add DepthMaterial
2021-08-19 18:47:11 +02:00
Jérôme Leclercq
7aafcfaae9
Minor stuff
2021-08-19 18:47:11 +02:00
Jérôme Leclercq
f5dac32020
Minor stuff
2021-08-19 18:47:11 +02:00
Jérôme Leclercq
ac08afe9f1
Shader: Add missing ! and != parsing
2021-08-19 18:47:11 +02:00
Jérôme Leclercq
a5b71f33b9
Shader: Fix support of conditional functions
2021-08-19 18:47:11 +02:00
Jérôme Leclercq
5ec7200644
Fix compilation
2021-08-19 18:47:11 +02:00
Jérôme Leclercq
793952eb67
Graphics: Add Camera class
2021-08-19 18:47:11 +02:00
Jérôme Leclercq
9a311da2c8
Graphics: Add MaterialPassRegistry
2021-08-19 18:47:11 +02:00
Jérôme Leclercq
5b1123b971
Graphics: Fix WorldInstance removal while being in use
2021-08-19 18:47:11 +02:00
Jérôme Leclercq
03236b70c1
Physics3D/RigidBody3D: Fix movement of already moved instance
2021-08-19 18:47:11 +02:00
Jérôme Leclercq
289472dc9f
Graphics/ForwardFramePipeline: Minor fixes
2021-08-19 18:47:11 +02:00
Jérôme Leclercq
3de0edec6f
Graphics/RenderQueue: Remake it with a naive implementation
...
The idea is to improve it in the future, after profiling
2021-08-19 18:47:11 +02:00
Jérôme Leclercq
08921b36a6
Graphics: Add RenderElement and ElementRenderer (WIP)
2021-08-19 18:47:11 +02:00
Jérôme Leclercq
b07d612506
OpenGLCommandBuffer: Don't force VAO bind each time
2021-08-19 18:47:11 +02:00
Jérôme Leclercq
e4a38d45bd
Renderer/CommandBufferBuilder: Take const AbstractBuffer* to match others methods
2021-08-19 18:47:11 +02:00
Jérôme Leclercq
532fb7641f
Graphics/BakedFrameGraph: Fix Resize method always returning true
2021-08-19 18:47:11 +02:00
Jérôme Leclercq
7fb5109dfa
Graphics/FrameGraph: Make use of RenderPassCache
2021-08-19 18:47:11 +02:00
Jérôme Leclercq
7e4f624ca7
Renderer: Add RenderPassCache
2021-08-19 18:47:11 +02:00
Jérôme Leclercq
52ec5d88f0
Graphics/FrameGraph: Fix depth stencil input not being taken into account for graph dependency
2021-08-19 18:47:11 +02:00
Jérôme Leclercq
1ee2122b3d
OpenGLRenderer: Fix initial depth mode
2021-08-19 18:47:11 +02:00
Jérôme Leclercq
b5045a2c59
Graphics: Add Material and made use of passes (WIP)
2021-08-19 18:47:11 +02:00
Jérôme Leclercq
f61deabe92
Graphics/BakedFrameGraph: Don't release in flight resources
2021-08-19 18:47:11 +02:00
Jérôme Leclercq
40ecdda3cd
VulkanRenderer: Handle VulkanRenderPass destruction
2021-08-19 18:47:11 +02:00
Jérôme Leclercq
5669b5bc60
Graphics: Rename Material to MaterialPass
2021-08-19 18:47:11 +02:00
Jérôme Leclercq
90df17d45a
Graphics/Material(Pipeline): Remove leftovers attributes
2021-07-13 14:38:09 +02:00
Jérôme Leclercq
863fb3ea7e
Shader: Fix optimization issues
...
Moving the unique_ptrs but failing to optimize the expression could cause issues
Also the constant query callback defaulted to ConstantValue (without const ref), thanks auto.
2021-07-11 11:17:48 +02:00
Jérôme Leclercq
ae364934bb
Graphics/CameraComponent: Add remaining features
2021-07-10 14:27:38 +02:00
Jérôme Leclercq
488ccf9648
Renderer/RenderTarget: Add OnRenderTargetRelease signal
2021-07-10 14:25:49 +02:00
Jérôme Leclercq
c6611fcb9f
Renderer/RenderTarget: Add size method and signal
2021-07-10 11:49:35 +02:00
Jérôme Leclercq
9854ebe950
OpenGLRenderer: Disable push/pop group notifications
2021-07-09 13:59:06 +02:00
Jérôme Leclercq
c72dfc8004
Graphics: Add forceDisableFeatures config
2021-07-09 12:37:11 +02:00
Jérôme Leclercq
9f410302d2
OpenGLRenderer/Context: Cleanup code
2021-07-09 12:36:24 +02:00
Jérôme Leclercq
681cf31b66
OpenGLRenderer: Disable notification messages
2021-07-09 12:36:00 +02:00
Jérôme Leclercq
56776c19c4
OpenGLRenderer: Fix device features not being correctly reported
2021-07-09 12:35:35 +02:00
Jérôme Leclercq
06b442ab58
OpenGLRenderer: Fix depth clamping not being reported as supported
2021-07-09 12:34:57 +02:00
Jérôme Leclercq
552dfbc01e
Renderer: Add pipeline and texture sampler info validation
2021-07-09 12:34:38 +02:00
Jérôme Leclercq
8458301a64
Add support for depth clamping
2021-07-09 00:22:08 +02:00
Jérôme Leclercq
3a3279246f
OpenGLRenderer: Enable GL_ARB_gl_spirv and GL_ARB_texture_filter_anisotropic with OpenGL 4.6
2021-07-09 00:01:33 +02:00
Jérôme Leclercq
996b5ef85c
Shader: Rename ConstantIndexExpression to ConstantExpression
2021-07-08 15:24:22 +02:00
Jérôme Leclercq
3a31c77524
Shader: Rename ConstantExpression to ConstantValueExpression
2021-07-08 15:22:08 +02:00
Jérôme Leclercq
a895e553d4
Graphics: rework ubershaders to prevent duplicate shaders modules
...
Also rename all remaining conditions to options
2021-07-08 14:52:39 +02:00
Jérôme Leclercq
9ab47edd11
Fix compilation
2021-07-08 12:27:18 +02:00
Jérôme Leclercq
1b4ab7e625
Graphics/BasicMaterial: Improve shader
2021-07-08 11:37:33 +02:00
Jérôme Leclercq
81b64e4fe2
Fix some shaders
2021-07-08 11:06:54 +02:00
Jérôme Leclercq
d3e0d8a39f
Shader: Replace select_opt by const_select
2021-07-08 10:53:11 +02:00
Jérôme Leclercq
838063c8b6
Shader: Fix nested blocks parsing
2021-07-08 10:52:29 +02:00
Jérôme Leclercq
5aa63831e8
Remove Nazara SDK
2021-07-07 22:56:50 +02:00
Jérôme Leclercq
bfab451633
Remove resources headers (as they will be generated on compilation)
2021-07-07 22:44:38 +02:00
Jérôme Leclercq
309fd547e1
Fix compilation errors and warnings
2021-07-07 22:38:24 +02:00
Jérôme Leclercq
1f6937ab1b
Shader: Implement const if and const values
2021-07-07 22:38:24 +02:00
Jérôme Leclercq
d679eccb43
Shader: Fix struct indexes in case of disabled field
2021-07-07 22:38:24 +02:00
Jérôme Leclercq
72edff30c7
Shader: Add support for logical and/or
2021-07-07 22:38:24 +02:00
Jérôme Leclercq
f9af35b489
Shader: Attribute can now have expressions as values and struct fields can be conditionally supported
2021-07-07 22:38:24 +02:00
Jérôme Leclercq
749b40cb31
Shader: Improve variable name sanitization
2021-07-07 22:38:24 +02:00
Jérôme Leclercq
ae73f68d8c
Shader: Fix variable shadowing with GLSL
2021-07-06 11:43:47 +02:00
Jérôme Leclercq
cb82951c9a
Fix Linux compilation
2021-07-06 11:29:14 +02:00
Jérôme Leclercq
fca8c8d01d
Physics3D/Physics3DSystem: Don't update sleeping rigid bodies
2021-07-06 11:04:51 +02:00
Jérôme Leclercq
4ac5fe7cba
Graphics: Add RenderSystem and frame pipeline
2021-07-06 11:04:22 +02:00
Jérôme Leclercq
428a706fbe
Replace basicmaterial nodes by NZSL source
2021-07-06 11:02:53 +02:00
Jérôme Leclercq
f9b453bd2b
Shader: Add support for branching and discard statements
2021-07-03 19:13:22 +02:00
Jérôme Leclercq
f2bb1a839c
Math/Matrix4: Remove implicit conversion to pointer
2021-07-03 18:20:00 +02:00
Jérôme Leclercq
ffb28a9044
Physics3D/RigidBody3D: Remove transform callback
2021-07-03 16:34:51 +02:00
Jérôme Leclercq
1c482bbde6
Graphics/BakedFrameGraph: Handle resize in a better way
2021-07-03 13:57:18 +02:00
Jérôme Leclercq
c42d18243b
Shader: Fix identifiers sanitization
2021-07-03 13:53:00 +02:00
Jérôme Leclercq
f14db3f5e9
Renderer: Expose RenderTarget and framebuffers indices
2021-07-03 13:52:29 +02:00
Jérôme Leclercq
930142b7a7
OpenGLRenderer: Fix double StackVector init
2021-07-03 13:35:59 +02:00
Jérôme Leclercq
343b0a6fd7
OpenGLRenderer/Context: Remove GL_AMD_debug_output support
...
It turns out callbacks are not compatibles between GL_AMD_debug_output and GL_ARB_debug_output (and GL_KHR_debug)
2021-07-03 13:01:41 +02:00
Jérôme Leclercq
9f76c84309
OpenGLRenderer/Context: Improve source readability
2021-07-03 12:59:06 +02:00
Jérôme Leclercq
d88c4ecb5b
Renderer/Framebuffer: Add GetType (and rework backend internals)
2021-06-22 17:30:08 +02:00
Jérôme Leclercq
c188d0616a
OpenGLRenderer: Implement AttachmentLoadOp::Discard using glInvalidateFramebuffer
2021-06-22 17:26:40 +02:00
Jérôme Leclercq
8eb1eb71ba
Merge branch 'nazara-next' of https://github.com/DigitalPulseSoftware/NazaraEngine into nazara-next
2021-06-20 14:13:21 +02:00
Jérôme Leclercq
d2144c8941
Graphics/FrameGraph: Mark subpass deps tilables
2021-06-20 14:12:58 +02:00
Jérôme Leclercq
517ca2d9c2
Graphics/Shaders: Remove pseudo-lighting from BasicMaterial shader
2021-06-20 14:12:30 +02:00
Jérôme Leclercq
233df1f0d4
VulkanRenderer: Fix fillModeNonSolid feature handling
2021-06-20 14:09:15 +02:00
Jérôme Leclercq
e896695179
Shader/LangWrite: Fix code generation with methods
2021-06-20 14:08:56 +02:00
Jérôme Leclercq
40bcfb1323
Audio: Allow to skip loaders
2021-06-20 14:08:12 +02:00
Jérôme Leclercq
d6248a061d
Add PhysicsDemo (first ECS demo)
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
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
8625c0a7ac
Fix compilation under Linux
2021-06-16 16:50:00 +02:00
Jérôme Leclercq
dfa46ebaa5
Fix shader generation unit tests
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
26f5d01c86
Graphics/BakedFrameGraph: Fix command buffer destruction when skipping a framepass
2021-06-06 16:00:03 +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
0411271851
Utility/Mesh: Fix Recenter() method for other vertex layouts
2021-06-05 19:09:12 +02:00
Jérôme Leclercq
20e982f5f2
Audio: Don't show errors when trying to load OpenAL library
2021-06-05 19:07:23 +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
da664d51ba
Shader/LangWriter: Fix texture sampling output
2021-06-05 01:29:48 +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
52490e0cf5
VulkanRenderer: Wait for device idle before recreating the swapchain
2021-06-04 19:35:59 +02:00
Jérôme Leclercq
4b3b595a99
Minor fixes
2021-06-04 18:02:28 +02:00
Jérôme Leclercq
0dd5e92a50
Audio: Add FLAC support
2021-06-03 17:21:15 +02:00
Jérôme Leclercq
f0b26efcd3
Audio/Music: Fix Seek method
2021-06-03 17:20:09 +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
4d74cef034
Math: Remove NAZARA_MATH_ANGLE_RADIAN and functions using it
2021-06-01 17:37:40 +02:00
Jérôme Leclercq
6fe7e5b16b
Graphics/FrameGraph: Fix infinite recursion when traversing graph
2021-06-01 16:24:14 +02:00
Jérôme Leclercq
43b73da3f4
Graphics/FrameGraph: Add support for loading a previous output texture
2021-06-01 16:24:00 +02:00
Jérôme Leclercq
eb6ca428a3
Update shader binaries
2021-06-01 16:23:21 +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
c243217dd8
Audio/minimp3Loader: Fix some warnings
2021-05-30 16:45:50 +02:00
Jérôme Leclercq
577643d128
Audio: Remove libsndfile loader
2021-05-30 16:45:50 +02:00
Jérôme Leclercq
312a6d3ba8
Fix libvorbisfile dependency
2021-05-30 16:45:50 +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
2d16cf81d1
Audio: Minor fixes
2021-05-30 16:45:50 +02:00
Jérôme Leclercq
79b6b87379
Audio: Add .ogg loader (using libvorbisfile)
2021-05-30 16:45:50 +02:00
Jérôme Leclercq
557c23a9fa
Minor stuff
2021-05-30 16:45:50 +02:00
Jérôme Leclercq
2cd09833a4
Minor fixes
2021-05-30 16:45:50 +02:00
Jérôme Leclercq
7ced0e5f08
Audio: Add .wav loader (using dr_wav)
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
d121393267
Audio: Add mp3 support + new demo
2021-05-30 16:45:50 +02:00
Jérôme Leclercq
9d1c821a16
Remove stb from thirdparty and use xmake instead
2021-05-30 16:45:50 +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
41baacd9ab
Fix linux compilation
2021-05-29 00:34:09 +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
c2b61b6732
A lot of fixes
2021-05-28 22:58:40 +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
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
ac57b3fbf4
Shader/GlslWriter: Accepts mono-functions shader without specifying entry points
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
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
709604c070
Shader/Spirv: Fix OpFunctionParameter type
2021-05-22 16:45:57 +02:00
Jérôme Leclercq
eab6b4a279
Update shaders
2021-05-22 13:38:29 +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
031e52b63f
Network: Fix compilation under Linux (fix merge)
2021-05-19 20:54:10 +02:00
Jérôme Leclercq
35060ab24e
Fix minor stuff
2021-05-19 20:32:16 +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
0339ea346f
Shader: Fix unary plus/minus on vector
2021-05-19 20:30:29 +02:00
Jérôme Leclercq
82d80a68ff
Shader: Cleanup optimizer
2021-05-18 17:25:48 +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
b0b1acf497
Shader: Fix LangWriter
2021-05-17 17:43:38 +02:00
Lynix
ccccbfe0ad
Shader/SpirV: Fix UInt32 support
2021-05-16 23:14:39 +02:00
Lynix
f2000f6068
Graphics: useDedicatedRenderDevice as false will now try to select an integrated device
2021-05-16 23:14:10 +02:00
Lynix
7bf380ad48
VulkanRenderer: Fix VkValidationFeatureEnableEXT usage
2021-05-16 23:13:40 +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
51c099b3ce
Renderer: Allow UploadPool to handle very big (>= 2MB) blocks
2021-05-15 15:27:17 +02:00
Jérôme Leclercq
a4052112fe
Update UnicodeData.hpp
2021-05-14 03:35:32 +02:00
Jérôme Leclercq
6ed3d2b144
Fix newton include
2021-05-14 03:35:32 +02:00
Jérôme Leclercq
223b41490b
Fix sndfile inclusion
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
a18d8859d5
Update basicmaterial binary
2021-05-14 02:11:08 +02:00
Jérôme Leclercq
8840f0bba8
Shader: Fix SPIRV operand for vector / primitive division
2021-05-14 02:10:29 +02:00
Jérôme Leclercq
bb207fea4f
Shader: Fix Swizzle generation for SPIRV
2021-05-14 02:09:54 +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
Jérôme Leclercq
ee690072f8
VulkanRenderer: Enable synchronization validation in debug
2021-05-05 12:06:30 +02:00
Jérôme Leclercq
961c3bf1df
Shader: Fix LangWriter generation
2021-05-05 12:06:02 +02:00
Jérôme Leclercq
7d4a084a62
Shader/Parser: Fix handling of . in rvalues + add support for swizzling
...
For example: var.field was okay but texture.Sample(uv).x wasn't
2021-05-05 12:05:46 +02:00
Jérôme Leclercq
eb67990b7b
Shader: Fix SpirV generation for Swizzle expressions
...
+ fix OpSampledImage
2021-05-05 12:04:09 +02:00
Jérôme Leclercq
bfb93bc925
VulkanRenderer: Fix VkRenderWindow subpass dependencies
2021-05-05 12:02:00 +02:00
Jérôme Leclercq
10aa7231b6
Renderer: Fix MRT support
2021-05-05 12:01:20 +02:00
Jérôme Leclercq
990193ebb4
Minor fixes
2021-05-02 13:58:56 +02:00
Jérôme Leclercq
55c2dd8485
Add FrameGraph (WIP)
2021-05-02 13:58:35 +02:00
Jérôme Leclercq
377129586b
Renderer: Rename some TextureLayout entry
2021-05-02 13:57:24 +02:00
Jérôme Leclercq
8028044966
Fix Linux compilation
2021-04-20 18:18:27 +02:00
Jérôme Leclercq
f85d11e55b
Fix Graphics module compilation
2021-04-20 18:18:27 +02:00
Jérôme Leclercq
0cc392b78f
Shader/SpirvWriter: Fix Image not registering Float as a dependent type
2021-04-20 18:18:27 +02:00
Jérôme Leclercq
044195b209
Minor fixes
2021-04-20 18:18:27 +02:00
Jérôme Leclercq
2238bbfa0c
Shader: Add AstReflect
2021-04-20 18:18:27 +02:00
Jérôme Leclercq
500ccda85a
Shader: StatementPtr& => const StatementPtr&
2021-04-20 18:18:27 +02:00
Jérôme Leclercq
1a8599ba29
Shader: Add sanitization of identifiers (fixes GLSL generation)
2021-04-20 18:18:27 +02:00
Jérôme Leclercq
8359d46711
Graphics fixes
2021-04-20 18:18:27 +02:00
Jérôme Leclercq
5bdbb866b5
Shader: Add LangWriter (outputs NZSL)
2021-04-20 18:18:27 +02:00
Jérôme Leclercq
e7a9fd95ea
ShaderNode fixes
2021-04-20 18:18:27 +02:00
Jérôme Leclercq
3a7f5c2630
Shader: Fix optimization
2021-04-20 18:18:27 +02:00
Jérôme Leclercq
87ce2edc6e
Shader: Add initial support for options (WIP)
2021-04-20 18:18:27 +02:00
Jérôme Leclercq
9fd4249a87
Shader: compilation fixes
2021-04-20 18:18:27 +02:00
Jérôme Leclercq
fce336bfc9
Shader: Fix struct attributes handling
2021-04-20 18:18:27 +02:00
Jérôme Leclercq
d335d44d6a
Shader: Cleanup and rename AST files
2021-04-20 18:18:27 +02:00
Jérôme Leclercq
afe3a0ea93
Shader: Merge AstScopedVisitor, AstValidator and TransformVisitor to SanitizeVisitor
2021-04-20 18:18:27 +02:00
Jérôme Leclercq
8515c9cea1
Shader: Improve ShaderAstCloner
2021-04-20 18:18:27 +02:00
Jérôme Leclercq
0bb9c37a38
Shader/Lang: [[attribute]] => [attribute]
2021-04-20 18:18:27 +02:00
Jérôme Leclercq
54c34869a4
Fix Shader unit tests
2021-04-20 18:18:27 +02:00
Jérôme Leclercq
3e704b9ea6
Shader: Minor fixes
2021-04-20 18:18:27 +02:00
Jérôme Leclercq
85ce6a4f43
Shader: Fix struct nesting
2021-04-20 18:18:27 +02:00
Jérôme Leclercq
0860a0689f
Shader/GlslWriter: Improve GLSL readability
2021-04-20 18:18:27 +02:00
Jérôme Leclercq
a90937eb4f
Update ShaderNode
2021-04-20 18:18:27 +02:00
Jérôme Leclercq
b234134abc
Shader/ShaderLang: Add type inference for variable declaration
2021-04-20 18:18:27 +02:00
Jérôme Leclercq
aababb205f
Shader: Move attribute parsing to parser, simplifying writer code
2021-04-20 18:18:27 +02:00
Jérôme Leclercq
bca1561f73
Shader/GlslWriter: Improve GLSL output
2021-04-20 18:18:27 +02:00
Jérôme Leclercq
3499c1f92f
Shader: Remove the need of layout(std140) in external block
2021-04-20 18:18:27 +02:00
Jérôme Leclercq
854bb16320
VulkanRenderer: Fix OpEntryPoint parsing
2021-04-20 18:18:27 +02:00
Jérôme Leclercq
ea99c6a19e
Shader: First working version on both Vulkan & OpenGL (ES)
2021-04-20 18:18:27 +02:00
Jérôme Leclercq
f93a5bbdc1
Shader: Rework scope handling
2021-04-20 18:18:27 +02:00
Jérôme Leclercq
feffcfa6e5
VulkanRenderer: Fix handling of shader modules
2021-04-20 18:18:27 +02:00
Jérôme Leclercq
09df5f389e
Shader: Add SpirvDecoder
2021-04-20 18:18:27 +02:00
Jérôme Leclercq
e4aabf309e
Renderer: Replace ShaderStage by ShaderModule (a module can handle multiple stages)
2021-04-20 18:18:27 +02:00
Jérôme Leclercq
c1d1838336
ShaderLang: Proof of concept (add support for a lot of things)
2021-04-20 18:18:27 +02:00
Jérôme Leclercq
9d8ce8f2cd
Shader: Add support for function attributes (entry)
2021-04-20 18:18:27 +02:00
Jérôme Leclercq
a318b28cd6
Shader: Improve SpirvPrinter output
2021-04-20 18:18:27 +02:00
Jérôme Leclercq
593d80c80e
SpirV grammar parser: Add result id operand and version info
2021-04-20 18:18:27 +02:00
Jérôme Leclercq
f694eb767f
Shader: Fix return type not being properly registered
2021-04-20 18:18:27 +02:00
Jérôme Leclercq
5598487e87
ShaderLang: Improve lexer
2021-04-20 18:18:27 +02:00
Jérôme Leclercq
da81a5b871
Shader: Add attribute parsing
2021-04-20 18:18:27 +02:00
Jérôme Leclercq
8135f22b2f
Shader: Add attribute and square bracket tokens (first step for attribute support)
2021-04-20 18:18:27 +02:00
Jérôme Leclercq
3f74ee4d66
Shader: Rework Parser internals
2021-04-20 18:18:27 +02:00
Jérôme Leclercq
48b93a9dea
Shader: Fix SPIRV generation
2021-04-20 18:18:27 +02:00
Jérôme Leclercq
fed7370e77
Rework shader AST (WIP)
2021-04-20 18:18:27 +02:00
Jérôme Leclercq
b320b5b44e
Shader: Add function parameters and return handling
2021-04-20 18:18:27 +02:00
Jérôme Leclercq
9a0f201433
Initial shaderlang commit
2021-04-20 18:18:27 +02:00
Jérôme Leclercq
57adfa09de
VulkanRenderer: Fix Depth24Stencil8 format
2021-02-20 19:25:38 +01:00
Jérôme Leclercq
b291f8a21c
Renderer: Implement TextureUsage
2021-02-20 19:25:25 +01:00
Jérôme Leclercq
311cfeaf3c
OpenGLRenderer: Fix Y flipping for FBOs
2021-02-20 19:23:29 +01:00
Jérôme Leclercq
fb3468854f
Renderer: Implement Framebuffers
2021-02-20 19:22:08 +01:00
Jérôme Leclercq
3ef74d6e1d
OpenGLRenderer: Use glTexStorage2D instead of glTexImage2D
2021-02-20 19:14:13 +01:00
Jérôme Leclercq
f7442982a4
OpenGLRenderer: Implement debug region data
2021-02-20 19:10:32 +01:00
Jérôme Leclercq
8f9f943e2c
OpenGLRenderer: Implement primitive mode
2021-02-20 18:56:54 +01:00
Jérôme Leclercq
ac3db8a8bf
Utility/PixelFormat: Add preliminary support for SRGB formats (WIP)
2021-02-20 18:01:03 +01:00
Jérôme Leclercq
36be581d9a
Shader/SpirV: Fix missing OpSelectionMerge before branching
2021-02-19 14:51:06 +01:00
Jérôme Leclercq
32569eef5e
Add SpirV masks and update grammar
2021-02-19 14:47:24 +01:00
Jérôme Leclercq
080fd9c7eb
Minor fixes
2021-02-15 18:17:30 +01:00
Jérôme Leclercq
a6b5246633
OpenGLRenderer: Fix clear values
2021-02-15 18:17:10 +01:00
Jérôme Leclercq
08c2f711b0
Graphics/Material: Add UpdateBuffers
2021-02-15 18:16:19 +01:00
Jérôme Leclercq
d058a127e1
Renderer/RenderPass: Implement RenderPass correctly
2021-02-15 18:14:47 +01:00
Jérôme Leclercq
2ef772cec7
Merge branch 'nazara-next' into graphics-next
2021-01-28 16:37:46 +01:00
Jérôme Leclercq
5eedd3c0bc
Renderers: Fix UploadPool
2021-01-28 15:59:18 +01:00
Jérôme Leclercq
b9151d8a7a
Graphics: Improve TextureSampler handling
2021-01-27 18:50:49 +01:00
Jérôme Leclercq
a9e9ef2524
Graphics: Add GraphicalMesh and Model classes
2021-01-27 16:45:00 +01:00
Jérôme Leclercq
e3e5c4ba8f
Graphics: Add ModelInstance class
2021-01-22 23:32:32 +01:00
Jérôme Leclercq
19783f7755
Graphics/Material: Rework UBO handling
2021-01-22 23:31:54 +01:00
Jérôme Leclercq
a0d5750ec8
Graphics: Add GetViewerDataUBO
2021-01-22 23:27:11 +01:00
Jérôme Leclercq
a6ff64106e
Minor stuff
2021-01-22 23:23:28 +01:00
Jérôme Leclercq
d52be87fd5
OpenGLRenderer: Fix Draw[Indexed]Data states
2021-01-22 23:18:35 +01:00
Jérôme Leclercq
dbcb4a61d0
OpenGLRenderer: Fix context not being shared on OpenGL ES
2021-01-22 23:17:55 +01:00
Jérôme Leclercq
c76d6505b0
Renderer/ShaderBinder: Make Update take a pointer and size
2021-01-22 23:15:31 +01:00
Jérôme Leclercq
e6ada6846d
Graphics: Fix PredefinedViewerData size
2021-01-22 18:04:58 +01:00
Jérôme Leclercq
711199fe51
Shader/ShaderAstOptimizer: Fix branch optimization
2021-01-15 19:19:19 +01:00
Jérôme Leclercq
bb18ca13ca
Fix shader generation
2021-01-15 19:19:05 +01:00
Jérôme Leclercq
96d7b9424b
Renderer: Handle null textures in shader binding
2021-01-14 22:03:01 +01:00
Jérôme Leclercq
c8f4e53244
ShaderNode: Add code output window
2021-01-14 22:02:34 +01:00
Jérôme Leclercq
a037eef4c9
Shader: Remove ShaderNode::GetExpressionType (replaced by visitor) and minor stuff
2021-01-14 22:01:53 +01:00
Jérôme Leclercq
00ac6e8a0a
Shader: Add ShaderAstOptimizer
2021-01-14 22:01:05 +01:00
Jérôme Leclercq
acb998f67e
ShaderAst: Add NoOp node
2021-01-14 21:58:06 +01:00
Jérôme Leclercq
a9f2e05b57
Fix typo in enum
2021-01-14 21:56:55 +01:00
Jérôme Leclercq
4d63d6e022
Shader: Add basic support for Branch node in spir-v
2021-01-04 10:27:08 +01:00
Jérôme Leclercq
44bc86d082
Shader/SpirvWriter: Rename MergeBlocks to MergeSections
...
to avoid confusion with SpirV blocks
2021-01-03 11:11:54 +01:00
Jérôme Leclercq
f327932738
Commit current work
...
Reworked conditions, added uber-shaders, comparison nodes, fixed Discard
2021-01-02 21:15:59 +01:00
Jérôme Leclercq
ed72d668d9
Shader: Add Discard node
2020-12-30 20:05:16 +01:00
ImperatorS79
9a613c6fd6
Fix ShaderNodes on macos
2020-11-27 14:44:19 +01:00
ImperatorS79
f05ed5781b
IP_MTU missing on macos
2020-11-22 13:32:17 +01:00
ImperatorS79
d4cd0581e4
Update SocketImpl.cpp
2020-11-21 21:35:51 +01:00
ImperatorS79
255812c80e
Fix missing MSG_NOSIGNAL and TCP_KEEPIDLE on macos
2020-11-21 21:29:23 +01:00
ImperatorS79
143d7d391a
Remove Value for size_t and correctly fix the problem
2020-11-21 20:21:26 +01:00
ImperatorS79
4bf49876c6
Build Nazara on macos up to Nazara_network (not included
2020-11-21 20:05:19 +01:00
Jérôme Leclercq
960817a1f1
Add conditional expression/statement support for shaders
2020-11-19 13:56:54 +01:00
Jérôme Leclercq
bd9d30407c
Fix SDL2 cursor
2020-11-17 17:44:31 +01:00
Jérôme Leclercq
7526923a8d
Platform: Fix space not generating a text event
2020-11-17 17:43:42 +01:00
Jérôme Leclercq
af55ecc2a5
Fix SDL2 crash when creating cursor
...
Enfoiré de REMqb
2020-11-12 16:28:33 +01:00
Jérôme Leclercq
f52c43df49
Network: Fix TcpClient::PollConnection on Linux
2020-10-31 17:33:56 +01:00
Jérôme Leclercq
ad88561245
Graphics: Fix MaterialPipeline::GetRenderPipeline
2020-10-31 16:29:02 +01:00
Jérôme Leclercq
8027ae9abe
Graphics: Fix PredefinedShaderBinding enum
2020-10-31 16:27:35 +01:00
Jérôme Leclercq
89609570f4
Graphics: WIP (almost working)
2020-10-30 23:08:48 +01:00
Jérôme Leclercq
73e86407b3
Fix some warnings
2020-10-30 23:08:27 +01:00
Jérôme Leclercq
e5cd461bae
ShaderNode: Fix possible crash with incompatible types
2020-10-30 23:08:03 +01:00
Jérôme Leclercq
5ca9776755
ShaderNode: Fix missing "add texture" button
2020-10-30 23:07:42 +01:00
Jérôme Leclercq
b62130dab9
VulkanRenderer: Fix physical device bullshit
...
Keep a single list instead of many
2020-10-30 23:06:56 +01:00
Jérôme Leclercq
009e5a0466
Renderer: Rename ShaderStageImpl to ShaderStage
2020-10-30 23:06:15 +01:00
Jérôme Leclercq
d243e7bcd2
OpenGLRenderer: Move error to string to Utils
2020-09-26 20:43:55 +02:00
Jérôme Leclercq
3b2e375382
WIP
2020-09-26 20:04:05 +02:00
Jérôme Leclercq
abf58857d7
Core/StringExt: Make PointerToString portable
2020-09-26 12:22:49 +02:00
Jérôme Leclercq
9291ef6299
Disable OpenGL overriding with MSVC / x86
...
Seems like a bug with MSVC when targetting 32bits targets
2020-09-26 11:50:37 +02:00
Jérôme Leclercq
65337c6a38
Fix a lot of warnings and some errors
2020-09-26 11:44:09 +02:00
Jérôme Leclercq
2b6a463a45
Remove Nz::String and Nz::StringStream
2020-09-25 19:31:01 +02:00
Lynix
d665af1f9d
Shader/SpirV: Fix sampler storage class
2020-09-22 21:50:56 +02:00
Lynix
79c53061e0
Shader: Add type functions
2020-09-22 21:50:07 +02:00
Jérôme Leclercq
f15709c8a3
Renderer: Replace unique_ptr by shared_ptr
2020-09-20 15:56:58 +02:00
Jérôme Leclercq
95c9ad0fd8
Add graphics module base
2020-09-20 14:52:44 +02:00
Jérôme Leclercq
790815e9ee
Merge branch 'master' into nazara-next
2020-09-17 20:28:11 +02:00
Jérôme Leclercq
37418d482e
Renderer: Allow to set a preferred render api using configuration
2020-09-17 20:11:10 +02:00
Jérôme Leclercq
36d3c51eeb
Add module configurations
2020-09-17 20:10:39 +02:00
Jérôme Leclercq
7a7a67cd40
Update OpenGLVaoCache.cpp
2020-09-17 18:54:41 +02:00
Jérôme Leclercq
98e20ecbb7
Last modules fixes
2020-09-17 18:54:33 +02:00
Jérôme Leclercq
fd1d416510
Rename Module to ModuleBase
2020-09-11 13:39:18 +02:00
Jérôme Leclercq
a7fac3beb8
Rework modules
2020-09-10 20:12:09 +02:00
Jérôme Leclercq
193deb6c04
Fix some minor stuff
2020-09-06 17:09:39 +02:00
Jérôme Leclercq
67b0d70b7c
Upgrade to Newton 3.14 and make it a thirdparty lib
2020-09-06 17:09:19 +02:00
Jérôme Leclercq
1e29790831
Physics2D/RigidBody2D: Fix velocity func not being copied
2020-09-05 12:56:35 +02:00
Jérôme Leclercq
385927b05a
Fix minor stuff
2020-09-04 16:14:11 +02:00
Jérôme Leclercq
33e60a97b6
VulkanRenderer: Fix case where swapchain has more image than requested
2020-09-04 15:59:01 +02:00
Jérôme Leclercq
53e5aa924f
VulkanRenderer/Swapchain: Rename Buffer to Image
2020-09-04 15:58:07 +02:00
Jérôme Leclercq
55ac0ccdf6
Restore Vulkan renderer
2020-09-04 15:25:49 +02:00
Jérôme Leclercq
f8dc5a5516
OpenGLRenderer: Default to WGL on Windows
2020-09-04 15:23:14 +02:00
Jérôme Leclercq
ab0cc800e3
Remove VMA dependency from OpenGLRenderer
2020-09-04 15:22:05 +02:00
Jérôme Leclercq
e0a4d27c2e
Fix some warnings
2020-09-04 15:21:53 +02:00
Jérôme Leclercq
69dda85e45
Vulkan: Refactor function list headers
2020-09-04 15:21:46 +02:00
Jérôme Leclercq
d98cddcfe0
Remove no longer used code
2020-09-04 14:19:11 +02:00
Jérôme Leclercq
a8b9a8c56d
Workaround MSVC bug
2020-09-04 14:18:57 +02:00
Jérôme Leclercq
3082620ef9
Remove useless code
2020-09-03 16:33:56 +02:00
Jérôme Leclercq
0255541b44
Replace EGL symbol loader
2020-09-03 16:33:37 +02:00
Jérôme Leclercq
addcd52552
Try to get around MSVC bug
2020-09-03 15:47:43 +02:00
Jérôme Leclercq
58efffc51f
Improve code a bit
...
Prevent converting back and forth the same function pointer
2020-09-03 13:58:45 +02:00
Jérôme Leclercq
0609a10c25
OpenGLRenderer: Get rid of std::function by using function indexes
2020-09-03 13:54:44 +02:00
Jérôme Leclercq
6848ff8b34
OpenGLRenderer: Add debug wrapper (which handle OpenGL errors)
2020-09-03 13:39:34 +02:00
Jérôme Leclercq
df33262ab4
OpenGLRenderer: Fix context activation
2020-09-03 13:18:09 +02:00
Jérôme Leclercq
d622a75d73
Add BufferUsage_Dynamic
...
Since OpenGL screams in performance warning because of a GL_STATIC_DRAW buffer being updated from another buffer
2020-09-02 17:19:52 +02:00
Jérôme Leclercq
b85a734e6e
Utility/OBJParser: Make OBJ meshes order deterministic
2020-09-02 16:30:31 +02:00
Jérôme Leclercq
d05df45cb6
Fix EGL context sharing
...
It seems contexts must be part of the same display to be shared, and that using default display with window isn't an issue on Windows/X11
2020-09-02 15:40:57 +02:00
Jérôme Leclercq
bc2f18c852
OpenGLRenderer: Try to fix EGLContext sharing with X11
2020-09-01 20:10:09 +02:00
Jérôme Leclercq
f4186fdeac
Fix context sharing
2020-09-01 20:01:36 +02:00
Jérôme Leclercq
c4e63a582c
OpenGLRenderer: initial support for X11
2020-09-01 19:49:50 +02:00