Commit Graph

538 Commits

Author SHA1 Message Date
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