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
465837ff12
Renderer: Add support for cubemaps
2021-06-01 12:30:37 +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
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
874fb3542e
Convert all remaining enums to enum classes (!)
2021-05-25 10:40:07 +02:00
Jérôme Leclercq
7140e322c1
Commit missing files
2021-05-25 10:40:07 +02:00
Lynix
13feaf4aab
Renderer: RenderWindow now requires a RenderDevice
2021-05-16 23:13:00 +02:00
Jérôme Leclercq
cb881612cc
Renderer: OCD fix
2021-05-15 15:27:37 +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
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
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
87ce2edc6e
Shader: Add initial support for options (WIP)
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
ea99c6a19e
Shader: First working version on both Vulkan & OpenGL (ES)
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
fed7370e77
Rework shader AST (WIP)
2021-04-20 18:18:27 +02:00
Jérôme Leclercq
d59423afca
Renderer: Rename some TextureUsage
2021-02-24 23:50:12 +01:00
Jérôme Leclercq
b291f8a21c
Renderer: Implement TextureUsage
2021-02-20 19:25:25 +01:00
Jérôme Leclercq
fb3468854f
Renderer: Implement Framebuffers
2021-02-20 19:22:08 +01:00
Jérôme Leclercq
d058a127e1
Renderer/RenderPass: Implement RenderPass correctly
2021-02-15 18:14:47 +01:00
Jérôme Leclercq
b9151d8a7a
Graphics: Improve TextureSampler handling
2021-01-27 18:50:49 +01:00
Jérôme Leclercq
a6ff64106e
Minor stuff
2021-01-22 23:23:28 +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
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
89609570f4
Graphics: WIP (almost working)
2020-10-30 23:08:48 +01:00
Jérôme Leclercq
40f3072ff9
Renderer: Add RenderPipeline::GetPipelineInfo
2020-10-30 23:07:21 +01:00
Jérôme Leclercq
009e5a0466
Renderer: Rename ShaderStageImpl to ShaderStage
2020-10-30 23:06:15 +01:00
Jérôme Leclercq
3b2e375382
WIP
2020-09-26 20:04:05 +02:00
Jérôme Leclercq
2b6a463a45
Remove Nz::String and Nz::StringStream
2020-09-25 19:31:01 +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
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
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
8d873a8307
Fix a lot of small errors/warnings
2020-08-28 15:42:19 +02:00
Jérôme Leclercq
7c9dcdfbe4
Allocate command buffers from pools
2020-08-27 18:31:26 +02:00
Jérôme Leclercq
cbdac32f5f
VulkanRenderer: Handle window resize
2020-08-27 16:16:33 +02:00
Jérôme Leclercq
837a6585a1
Split shader generation to a new module
2020-08-11 00:00:36 +02:00
Jérôme Leclercq
d4f60c174e
OpenGLRenderer: Flip screenspace
2020-08-09 18:40:59 +02:00
Jérôme Leclercq
0da2ee6c99
First rendering using Spir-V generated shaders \o/
2020-08-09 00:24:07 +02:00
Jérôme Leclercq
3829f0a002
ShaderAstCloner: Improve code readability
2020-08-05 16:28:41 +02:00
Jérôme Leclercq
d6d452d43d
Add ShaderAstCloner
2020-08-05 15:30:23 +02:00
Jérôme Leclercq
74fb01af28
Rename a few classes
2020-08-04 15:31:47 +02:00
Jérôme Leclercq
7a5f91f740
SpivWriter WIP
...
We have debug label, annotations, types and constants. The big part missing is instructions
2020-08-04 01:35:30 +02:00
Jérôme Leclercq
7736312c2f
ShaderNodes: Replace union by std::variant
2020-08-04 01:33:31 +02:00
Lynix
50bd150345
WIP
2020-08-02 20:42:51 +02:00
Lynix
10860ed562
Improve code
2020-07-31 12:36:37 +02:00
Lynix
2271432748
Renderer/ShaderValidator: Use ShaderVarVisitor instead of switch
2020-07-29 14:39:34 +02:00
Lynix
a02dd3bf05
Renderer: Add ShaderRecursiveVisitor
2020-07-29 14:31:54 +02:00
Jérôme Leclercq
251810ca99
WIP SpirvWriter
2020-07-29 11:22:52 +02:00
Jérôme Leclercq
59add283cf
Add shader type
2020-07-27 18:52:58 +02:00
Jérôme Leclercq
063b7dd602
Renderer/GlslWriter: Add parenthesis where required (wip)
2020-07-22 14:48:15 +02:00
Jérôme Leclercq
086f76fb97
Renderer/ShaderNodes: Add support for accessing struct fields
2020-07-19 21:05:46 +02:00
Jérôme Leclercq
1d2fb88198
Renderer: Rename enums
...
ExpressionType => BasicType
ShaderAst::Type => ShaderExpressionType
2020-07-16 18:34:58 +02:00
Jérôme Leclercq
fbba281d14
Renderer: Add support for struct and UBO
2020-07-14 21:59:49 +02:00
Lynix
4f671873c1
Renderer: Add NazaraBinary shader "language" and handle it in OpenGLRenderer
2020-06-18 20:05:22 +02:00
Lynix
691de5b5c4
Renderer/ShaderSerialize: Use ByteStream instead of ByteArray
2020-06-18 20:03:56 +02:00
Lynix
66a98b234f
Renderer/GlslWriter: Add environment
2020-06-18 20:03:22 +02:00
Lynix
736ca1c409
Renderer/ShaderAst: Add serialization
2020-06-17 20:09:21 +02:00
Lynix
f38bfdde8a
ShaderAst: Big refactor + add binding/location support
2020-06-17 16:00:03 +02:00
Lynix
2258a4f87f
Add ShaderValidator
2020-06-06 16:44:17 +02:00
Lynix
8467c79021
Renderer: Add shader serialization
2020-06-05 19:47:29 +02:00
Lynix
de1c64253e
Fix missing files
2020-06-04 18:31:43 +02:00
Lynix
25562a5856
Renderer/ShaderAst: Add BinaryFunc
2020-06-04 18:29:50 +02:00
Lynix
effd1b4552
ShaderNode: Handle vector component count at runtime
2020-05-31 18:39:28 +02:00
Lynix
3fc4de26e3
ShaderGraph: Improve GLSL generation by introducing DeclareVariable statement
2020-05-27 20:08:41 +02:00
Lynix
e4348349da
Merge branch 'vulkan' into shader-nodes
2020-05-27 20:04:37 +02:00
Lynix
e0e7435c55
Merge fixes
2020-05-27 20:03:46 +02:00
Lynix
68208f5426
Merge branch 'master' into vulkan
2020-05-27 19:48:22 +02:00
Lynix
81f03f04e5
Revert Renderer to its pre-SDL state
2020-05-27 19:42:53 +02:00
Lynix
2d189dc85e
Fix WindowHandles
2020-05-27 18:55:03 +02:00
Lynix
b0c72a6101
Replace platform backends by SDL
2020-05-27 17:47:52 +02:00
Jérôme Leclercq
1425f99edf
Merge branch 'master' into SDL2
2020-05-27 11:11:21 +02:00
Lynix
d96bc9db6e
ShaderNode: Add automatic variables
2020-05-26 20:30:24 +02:00
Lynix
8fa456bdf5
Renderer: Remake backend selection
2020-05-23 22:07:22 +02:00
Lynix
e23eb74802
Renderer/ShaderAst: Add Sample2D
2020-05-19 20:06:11 +02:00
Lynix
332278dded
OpenGL: Random stuff I forgot
2020-05-11 14:05:40 +02:00
Lynix
b4b15f826d
OpenGL: Implement textures
2020-04-19 15:33:56 +02:00
Lynix
d9a08640d6
Vulkan: Add renderpass and framebuffers
2020-04-10 17:36:05 +02:00
Lynix
9507c56fc9
PixelFormat rename
...
PixelFormatInfo => PixelFormatDescription
PixelFormat => PixelFormatInfo
PixelFormatType => PixelFormat
2020-04-10 14:19:36 +02:00
Lynix
87f1209327
Vulkan: Refactor command buffer and introduce command pool
2020-04-07 21:10:16 +02:00
Lynix
ac8b908079
Vulkan: Replace ShaderBinding& by ShaderBindingPtr
2020-04-06 21:13:59 +02:00
Lynix
f443bec6bc
Add command buffers (WIP)
2020-04-02 21:07:01 +02:00
Lynix
15b95ca4a1
Minor and forgotten stuff
2020-03-26 21:20:00 +01:00
Lynix
1dc0ed8e94
Add ShaderBinding
2020-03-26 21:19:46 +01:00
Lynix
874130efd4
Implement Texture and TextureSampler
2020-03-26 21:18:35 +01:00
Lynix
b73d3e8f04
Add and make use of Vulkan Memory Allocator
2020-03-26 21:15:49 +01:00
Lynix
b774a879b6
Rework buffers synchronization
2020-03-13 18:44:49 +01:00
Lynix
2b3241f354
Add RenderPipelineLayout
2020-03-05 20:35:31 +01:00
Lynix
c23b6dfa01
Copyright year update
...
I can't wait to see the conflicts this will cause
2020-03-05 17:27:26 +01:00
Lynix
74275292bf
Some cleanup
2020-03-05 17:24:55 +01:00
Lynix
7bf734cdd4
Improve pipeline building
2020-03-03 22:26:57 +01:00
Lynix
7180a8d94e
WIP
2020-03-01 20:31:41 +01:00
Lynix
af28ea02a8
Vulkan usage fixes
2020-02-29 23:28:59 +01:00
Lynix
5d449095bf
Renderer: Add ShaderStage class
2020-02-29 23:28:21 +01:00
Lynix
798425ce10
Some work on render pipelines
2020-02-27 23:12:29 +01:00
Lynix
c05ea4095a
Begin work on RenderPipeline
2020-02-25 22:56:08 +01:00
Lynix
cb66dddd45
Merge branch 'nazara-next' into vulkan
2020-02-25 19:15:07 +01:00
Lynix
8be2342f25
Merge branch 'master' into vulkan
2020-02-23 00:46:48 +01:00
Lynix
3d22321109
Big f***ing cleanup part 1
2020-02-23 00:42:22 +01:00
Lynix
db78c9c948
Renderer/Texture: Remove Image constructor
2020-01-09 22:42:28 +01:00
Lynix
ab5188c57d
Add scancode and virtual key and fix some sdl stuff on Windows
2019-05-19 16:34:29 +02:00
REMqb
848f05a420
~ Initial SDL2 implementation
...
Limitation
- Dependent projects need to set NAZARA_PLATFORM_SDL2 if nazara has been build with SDL2 since OpenGL.hpp (and maybe some other headers) exposes platform details
- SDL2 window doesn't supports async window since the API isn't fitting for now
- Contexts parameters can't be changed until we close all the SDL windows (SDL limitation)
2019-04-03 21:17:06 +02:00
Alexandre Janniaux
5343b581ad
Warnings: fix opengl redefined name ( #196 )
...
* opengl: use official include names
* thirdparty: rename GL3 into GL
2019-02-13 01:05:07 +01:00
Jérôme Leclercq
ed46c87781
Refactor the way resources are loaded ( #191 )
...
* WIP
* WIP
* Font works
* WIP: Only Music remains
* Looks like it's working
* Fix oopsie
* Core/ObjectRef: Add cast functions
* Update ChangeLog.md
* Audio/SoundStream: Make sound stream thread-safe
2018-10-28 01:53:11 +02:00
Lynix
8ba8d2e92f
Merge branch 'ubo' into vulkan
2018-06-12 19:33:06 +02:00
Lynix
d7a2e9aad1
Merge branch 'ubo' into vulkan
2018-06-12 19:07:58 +02:00
Lynix
e4eae425b2
Add support for Uniform Buffer to Utility/Renderer
2018-06-06 20:18:42 +02:00
HardCPP
232a371fa5
Add normalLength parameter to the DebugDrawer::DrawNormals ( #163 )
2018-04-30 14:49:44 +02:00
Lynix
52f80a68cb
Renderer/OpenGL: Enable GL_TEXTURE_CUBE_MAP_SEAMLESS
2018-04-21 00:28:57 +02:00
Jérôme Leclercq
cd31e6c397
Add buffer support
2018-03-09 16:49:01 +01:00
Jérôme Leclercq
9b8e8042e4
Merge fix
2018-03-09 16:47:31 +01:00
Jérôme Leclercq
7d54ac4c10
Merge branch 'master' into vulkan
2018-02-13 13:06:01 +01:00
germinolegrand
1e55c4d9e9
Prerequisites instead of Prerequesites (typo) #152 ( #153 )
2018-01-16 12:23:01 +01:00
Lynix
1e190caa2c
Fix compilation
2017-11-24 20:15:04 +01:00
Lynix
4c6b5d0546
Merge branch 'master' into vulkan
2017-11-24 20:14:39 +01:00
Lynix
7eff1f34f1
Fix warning
2017-11-19 20:14:47 +01:00
Lynix
8dab3bf341
Renderer/ShaderBuilder: Fix compilation error when including ShaderBuilder.hpp
2017-10-30 22:30:04 +01:00
Lynix
d688cecbde
Renderer: Replaced RenderTarget::Get[Height|Width] by RenderTarget::GetSize
...
Utility: Removed Window::Get[Height|Width] methods
2017-10-28 23:26:22 +02:00
Gawaboumga
bbac0838dd
Include-What-You-Use ( #137 )
...
* IWYU Core
* IWYU Noise
* IWYU Utility
* IWYU Audio
* IWYU Platform
* IWYU Lua
* IWYU Network
* IWYU Physics2D
* IWYU Physics3D
* IWYU Renderer
* IWYU Graphics
* IWYU NDKServer
* IWYU Fix
* Try to fix compilation
* Other fixes
2017-10-01 11:17:09 +02:00
Lynix
8569d7da88
Renderer: Make RenderTarget movable
2017-09-30 15:00:54 +02:00
Lynix
508554fcb1
Fix some more warnings
2017-09-30 15:00:42 +02:00
Lynix
0fa3565435
Renderer/Context: Disable movement
2017-09-30 14:53:58 +02:00
Lynix
2cd9fa2b7a
Core: Add MovablePtr class
2017-09-30 13:57:25 +02:00
Lynix
c4edf54297
Vulkan/RenderBuffer: WIP
2017-09-16 10:36:41 +02:00
Lynix
923ffb6d0a
Renderer/ShaderAst: Fix missing file from previous commit
2017-08-30 18:21:44 +02:00
Lynix
cb69b1ed01
Renderer/ShaderAst: Add ConditionalStatement
2017-08-30 18:21:44 +02:00
Lynix
205b8b1ba6
Renderer/ShaderAst: Add Swizzle
2017-08-30 18:21:43 +02:00
Lynix
832237c6d4
Renderer/ShaderAst: Fix a few multiply/divide cases
2017-08-30 18:21:42 +02:00
Lynix
fd5bf16a90
Renderer/ShaderBuild: Fix build?
2017-08-30 18:21:42 +02:00
Lynix
8a68df4c56
Forgot to save all files..
2017-08-30 18:21:41 +02:00
Lynix
f0a7430d34
Renderer/ShaderAst: Fix compilation errors on Linux
2017-08-30 18:21:40 +02:00
Lynix
bd8a3ba47d
Renderer: Replace shaders files by runtime-generated GLSL
2017-08-30 18:21:40 +02:00
Lynix
8fd152aec0
Renderer/ShaderAst: Rename Builtin enum to BuiltinEntry
2017-08-30 18:21:39 +02:00
Lynix
a60836c45a
Revert "Renderer/ShaderBuilder: Rename Builtin to BuiltinVariable"
...
This reverts commit 193c0d4a92 .
2017-08-30 18:21:38 +02:00
Lynix
f72b3ed57d
Renderer/ShaderBuilder: Rename Builtin to BuiltinVariable
2017-08-30 18:21:37 +02:00
Lynix
a5a228e0c7
Renderer/ShaderAst: Add Constant overloads
2017-08-30 18:21:36 +02:00
Lynix
021ac3d971
Renderer/ShaderAst: Fix Mat4x4 handling
2017-08-30 18:21:36 +02:00
Lynix
10a1bec793
Renderer/ShaderAst: Fix support for matrix4 type
2017-08-30 18:21:35 +02:00
Lynix
2a57af9896
Renderer/ShaderAst: Add Cast node
2017-08-30 18:21:34 +02:00
Lynix
a84391cf08
Renderer/ShaderAst: Add support for expression type
2017-08-30 18:21:33 +02:00
Lynix
12321bc59a
Renderer/ShaderBuilder: Add builder for remaining binary operations
2017-08-30 18:21:33 +02:00
Lynix
3ed661f387
Renderer/ShaderAst: Add input and outputs variables
2017-08-30 18:21:32 +02:00
Lynix
f7c4c86934
Renderer/ShaderBuilder: Cleanup
2017-08-30 18:21:31 +02:00