Commit Graph

374 Commits

Author SHA1 Message Date
Jérôme Leclercq 557c23a9fa Minor stuff 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 453a75a37d DeferredShading: Improve lights 2021-05-30 16:45:16 +02:00
Jérôme Leclercq a24c8b559a Remove leftovers 2021-05-30 16:04:07 +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 336e70f72e DeferredShading: Implement stencil optimization 2021-05-28 23:00:16 +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 392a23eeb1 Add Std140Debug "example" (using OpenGL directly to debug stuff) 2021-05-26 22:23:30 +02:00
Jérôme Leclercq d2734d4f4b Examples/DeferredShading: Optimize rendering with light meshes 2021-05-26 22:23:00 +02:00
Jérôme Leclercq 68447ef0da Update main.cpp 2021-05-25 15:37:59 +02:00
Jérôme Leclercq 335bb82be1 Renderer/Texture: Add static helpers 2021-05-25 15:37:55 +02:00
Jérôme Leclercq 44c8e7a627 Upgrade example code 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 f4bc104810 Improve DeferredShading demo 2021-05-22 13:38:41 +02:00
Jérôme Leclercq 8a6f0db034 Example: replace pointlights by spotlights 2021-05-19 21:16:55 +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 1f05e950e8 Move resources to bin 2021-05-16 15:38:34 +02:00
Jérôme Leclercq 131d5f7afb Add DeferredShading example 2021-05-15 15:26:53 +02:00
Jérôme Leclercq 24c2de405f Improve xmake build 2021-05-14 03:35:32 +02:00
Jérôme Leclercq 2a4f020dd7 Move resources to bin directory 2021-05-14 03:35:32 +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 7da02c8708 Fix RenderTest shader code 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 3499c1f92f Shader: Remove the need of layout(std140) in external block 2021-04-20 18:18:27 +02:00
Jérôme Leclercq 5a63eb4d97 Update RenderTest demo with shaderlang 2021-04-20 18:18:27 +02:00
Jérôme Leclercq 08c2f711b0 Graphics/Material: Add UpdateBuffers 2021-02-15 18:16:19 +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 a6ff64106e Minor stuff 2021-01-22 23:23:28 +01:00
Jérôme Leclercq ef1f4c770a Use a better texture for alpha-testing 2021-01-03 10:48:30 +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 ad88561245 Graphics: Fix MaterialPipeline::GetRenderPipeline 2020-10-31 16:29:02 +01:00
Jérôme Leclercq a02c300c0c Add GraphicsTest demo 2020-10-30 23:08:55 +01: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 77b46e4811 Update RenderTest shaders 2020-09-20 14:54:09 +02:00
Jérôme Leclercq 84a25df0bf Update RenderTest demo 2020-09-20 14:53:44 +02:00
Jérôme Leclercq 98e20ecbb7 Last modules fixes 2020-09-17 18:54:33 +02:00
Jérôme Leclercq 0a46b83061 RenderTest: Make UBO Dynamic 2020-09-02 17:21:07 +02:00
Jérôme Leclercq b2a7e620e0 Merge branch 'master' into nazara-next 2020-08-27 20:12:36 +02:00
Jérôme Leclercq c8e74b6196 Rename VulkanTest to RenderTest 2020-08-27 19:44:31 +02:00
Jérôme Leclercq 2a875c8bdc Remove Graphics module and fix compilation 2020-08-27 19:43:31 +02:00
Jérôme Leclercq bc92d030ed Fix VulkanTest 2020-08-27 19:29:40 +02:00
Jérôme Leclercq cbdac32f5f VulkanRenderer: Handle window resize 2020-08-27 16:16:33 +02:00
Jérôme Leclercq 6c379eff68 Update vert.shader 2020-08-23 18:32:31 +02:00
Jérôme Leclercq 9df219e402 Add SpirvConstantCache
And unsigned int types for shaders
2020-08-20 01:05:16 +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 777121dbce Remove SPIRV handling in demo 2020-08-09 18:42:01 +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 251810ca99 WIP SpirvWriter 2020-07-29 11:22:52 +02:00
Jérôme Leclercq 6d0a59caab VulkanTest: Use generated shader nodes 2020-07-22 14:48:35 +02:00
Jérôme Leclercq 4c0dc7813d VulkanTest: Enable relative mouse mode 2020-07-14 21:59:25 +02:00
Jérôme Leclercq b076a517c6 Merge branch 'vulkan' into shader-nodes 2020-07-08 22:38:24 +02:00
Lynix 4f671873c1 Renderer: Add NazaraBinary shader "language" and handle it in OpenGLRenderer 2020-06-18 20:05:22 +02:00
Lynix ad687b2afe Demo/SpaceBattle: Fix mouse 2020-06-02 16:24:31 +02:00
Lynix e4c95da19a Update Vulkan shaders 2020-06-01 17:13:58 +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 b0c72a6101 Replace platform backends by SDL 2020-05-27 17:47:52 +02:00
Lynix c071f52d8f Platform/Mouse: Add SetRelativeMouseMode 2020-05-27 17:08:49 +02:00
Lynix 71c11c5d6f Add PlatformSDL2_Path config 2020-05-27 16:58:21 +02:00
Jérôme Leclercq 1425f99edf Merge branch 'master' into SDL2 2020-05-27 11:11:21 +02:00
Lynix 77186ba456 Update VulkanTest demo 2020-05-11 14:12:38 +02:00
Lynix b7a7c84a89 Minor fixes 2020-04-26 18:22:07 +02:00
Lynix dd74e5ecc1 Includes fix 2020-04-13 16:29:15 +02:00
Lynix a82c393a05 Don't link VulkanTest with VulkanRenderer 2020-04-13 15:13:15 +02:00
Lynix e905c3a004 Move Vulkan debug callback to module 2020-04-13 15:12:58 +02:00
Lynix f1811df6f6 Add lighting in VulkanTest 2020-04-10 17:36:52 +02:00
Lynix 8eccbe8189 VulkanTest now longer require Vulkan 2020-04-10 17:36:26 +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 cf396b0792 Add support for VK_EXT_debug_utils 2020-03-26 23:34:58 +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 509c392e05 Implement UploadPool to efficiently update UBOs 2020-03-26 21:13:06 +01:00
REMqb 96ea792656 ~ Formatting 2020-03-21 12:42:50 +01:00
Lynix 4ede9f1cfe Add texture in demo 2020-03-18 13:48:05 +01:00
Lynix 8d0a2cb70c Fix example 2020-03-14 18:10:50 +01:00
Lynix b774a879b6 Rework buffers synchronization 2020-03-13 18:44:49 +01:00
Lynix 63547fcd4e Replace DeviceHandle by references
and keep device alive until Vulkan is freed
2020-03-13 18:38:26 +01:00
Lynix 2b3241f354 Add RenderPipelineLayout 2020-03-05 20:35:31 +01:00
Lynix 74275292bf Some cleanup 2020-03-05 17:24:55 +01:00
Lynix 9515f1c807 Improve synchronization based on vulkan-tutorial
https://vulkan-tutorial.com/Drawing_a_triangle/Drawing/Rendering_and_presentation
2020-03-04 20:13:37 +01:00
Lynix 771355ec87 Switch to Dr Freak model 2020-03-04 18:55:52 +01:00
Lynix 7ba9a33d35 Add Fence objects (+ use them for sync) 2020-03-04 18:50:41 +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 286461c482 Make use of Nazara uniform buffer 2020-03-01 12:49:49 +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 2154782840 Fix Tut00 linking 2020-02-24 19:43:52 +01:00
Lynix f0d11aea72 Fix missing include 2020-02-24 18:05:12 +01:00
Lynix 43ee75b75f Replace #include <NDK/ by #include <NazaraSDK/ 2020-02-24 17:57:46 +01:00
Lynix eb8800f812 Remove Lua and Noise modules 2020-02-24 17:52:06 +01:00
Lynix 79f732ee8a VulkanRenderer: Replace ObjectHandle by std::shared_ptr/raw pointers 2020-02-23 12:02:15 +01:00
Lynix 0c008236ba Minor fixes + update vulkan include 2020-02-23 01:28:16 +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 5dd37ed3d8 Demo: Remove useless line 2020-01-25 19:15:45 +01:00
Lynix 380c5eb9ae Fix SpacebattleDemo 2020-01-04 12:16:19 +01:00
Lynix b3af14f65a Utility/OBJLoader: Fix OBJ uvs 2020-01-04 12:15:54 +01:00
REMqb ef791e2f3c ~ WIP input IME 2019-12-19 19:59:43 +01:00
REMqb 350a1cf09f ~ Fix linux build
~ Fix dopler example
2019-05-19 17:17:37 +02:00
Lynix ab5188c57d Add scancode and virtual key and fix some sdl stuff on Windows 2019-05-19 16:34:29 +02:00
Lynix 79b0bd644c Add text outlines! 2019-04-16 01:46:26 +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
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 960af3afa3 Fix example not compiling 2018-09-01 13:22:37 +02:00
Lynix 03d2742fed Demo: Fix Particles not building 2018-08-31 22:07:47 +02:00
Jérôme Leclercq 5e6204fad4 Fix compilation 2018-08-31 17:33:51 +02:00
S6066 f9c5867d72 Fix cursor when switching demo in DemoParticles (#168)
* fix cursor

* whoopsie
2018-06-28 16:11:54 +02:00
Lynix 43bb487801 Merge branch 'master' into vulkan 2018-04-26 22:48:49 +02:00
Jérôme Leclercq 2da086b7df New Render queues (#161)
* Add new render queues proof of concept + scissoring support (WIP)

* Graphics: Adapt basic sprites rendering to new render queue system

* Graphics: Fix layers when rendering sprites

* Graphics/RenderQueue: Fix sprite default overlay

* Graphics: Enable scissor test by default

* SDK/Widgets: Enable scissoring on widgets

* Graphics: Handle almost everything with the new renderqueues system

Todo:
- Billboard rendering
- Proper model rendering

* Graphics/RenderQueue: Billboard drawing now works (WIP)

At 1/4 of previous code performances due to individually process of billboards

* Add new render queues proof of concept + scissoring support (WIP)

* Graphics: Adapt basic sprites rendering to new render queue system

* Graphics: Fix layers when rendering sprites

* Graphics/RenderQueue: Fix sprite default overlay

* Graphics: Enable scissor test by default

* SDK/Widgets: Enable scissoring on widgets

* Graphics: Handle almost everything with the new renderqueues system

Todo:
- Billboard rendering
- Proper model rendering

* Graphics/RenderQueue: Billboard drawing now works (WIP)

At 1/4 of previous code performances due to individually process of billboards

* Graphics/RenderQueues: Add full support for billboards

* Graphics/RenderQueue: Cleanup and improve billboard rendering

* Graphics/RenderQueue: Fix model drawing

* Examples/Particles: Fix lighting on space station

* Graphics: Cleanup forward render queue/technique

* Fix compilation under Linux

* Graphics/ForwardRenderTechnique: Fix case when scissoring is enabled on material but disabled on element

* Add support for Deferred Shading

* SDK/Widgets: Fix widget rendering

* Graphics: Remove legacy code from render queues

* Graphics: Fix some objects sometimes not showing up due to broken scissor box

* Fix compilation error

* Sdk/GraphicsGraphics: Fix bounding volume

* SDK/World: Fix self-assignation

* Update changelog for render queues
2018-04-11 19:36:52 +02:00
Lynix 14248bb6c6 Example/SpacebattleDemo: Take const ref to EntityHandles 2018-04-10 23:52:28 +02:00
Jérôme Leclercq cd31e6c397 Add buffer support 2018-03-09 16:49:01 +01:00
Lynix b2d10f6e69 Examples: Fix FirstScene movements 2018-02-18 14:17:13 +01:00
Jérôme Leclercq 7d54ac4c10 Merge branch 'master' into vulkan 2018-02-13 13:06:01 +01:00
Jérôme Leclercq fb3eb9443e Core/Clock: Restart now returns the elapsed time in milliseconds 2018-02-07 15:02:44 +01:00
Faymoon e86e29f822 Update FirstScene to use EventHandler and remove useless lines (#151)
* Update FirstScene to use EventHandler and remove useless lines

* Update strange indentations made by VS

* Oops

* fix a little error

* fixed stranges comments

* fix littles errors

* fix indent

* Re fix Indent

* fix last errors

* fix errors fund by alexandre jannaiux

* fix lisibility of comments
2018-01-15 23:46:52 +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 220e985144 Fix compilation of Particles demo 2017-11-19 20:14:41 +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
Lynix 302a65a8aa Fix warning 2017-10-19 20:59:38 +02:00
Lynix b14a9f219a Small change 2017-10-11 00:33:41 +02:00
Lynix 7fb1bd387d Demo: Change keyboard control by mouse control 2017-10-11 00:30:05 +02:00
Lynix 4bdcb1f31f Fix demo compilation and warnings 2017-10-10 21:52:36 +02:00
Jérôme Leclercq 67ddbbe494 Fix LogoDemo after mapper change 2017-10-10 21:52:31 +02:00
Lynix c763dea4e1 Merge branch 'master' into reflection-mapping 2017-10-02 21:11:15 +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 bccbc0dbf1 Move warning fixes! 2017-09-30 15:23:05 +02:00
Gawaboumga 5aa072cee3 New module: Platform - Split window management from Utility module (#128)
* New module: Platform - Split window management from Utility module

Final touch

* NDK/SDK: Bring back initialization of Utility
2017-08-30 10:22:50 +02:00
Lynix 596d65f1ed Merge branch 'master' into vulkan 2017-08-20 21:35:51 +02:00
Lynix a09accc22e LogoDemo: remove debug log 2017-08-16 20:34:19 +02:00
Lynix 0e99f93866 Demo: New LogoDemo for particles, yay 2017-08-16 20:32:50 +02:00
Lynix e2248ce543 Vulkan demo: Improve movements 2017-08-14 01:54:15 +02:00
Lynix 037274a57f Push vulkan shaders 2017-08-06 12:14:39 +02:00
Lynix cc0c661dd7 Add Vulkan demo 2017-08-06 12:13:39 +02:00
Lynix 9944a228b5 Merge branch 'master' into vulkan 2017-07-04 22:41:29 +02:00
Lynix 487bd64bcf Merge remote-tracking branch 'refs/remotes/origin/master' into reflection-mapping 2017-06-10 22:33:03 +02:00
Jérôme Leclercq 09bace0f28 Sdk/LuaBinding: Bind UdpSocket 2017-05-18 11:44:28 +02:00
Lynix 1305e8434a Merge remote-tracking branch 'refs/remotes/origin/master' into reflection-mapping 2017-04-17 23:42:21 +02:00
Lynix 5b236ab09a Add test shader 2017-03-19 20:31:04 +01:00