Skip to content

Commit 49c1540

Browse files
committed
Slight improvements to Renderer
Rename Shadows descriptor set slot to Light Add Tiles descriptor set slot Add "AddOnRenderSizeChanged" function to register callbacks when render size changed Change SetRenderSize/GetRenderSize functions to not copy a vec2
1 parent 9ecb6d9 commit 49c1540

File tree

6 files changed

+30
-15
lines changed

6 files changed

+30
-15
lines changed

Source/Renderer/Renderer/DescriptorSet.h

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,8 @@ namespace Renderer
5252
{
5353
DEBUG,
5454
GLOBAL,
55-
SHADOWS,
55+
TILES,
56+
LIGHT,
5657
PER_PASS,
5758
PER_DRAW,
5859
TERRAIN,
@@ -65,7 +66,8 @@ namespace Renderer
6566
{
6667
case DEBUG: return "DEBUG";
6768
case GLOBAL: return "GLOBAL";
68-
case SHADOWS: return "SHADOWS";
69+
case TILES: return "TILES";
70+
case LIGHT: return "LIGHT";
6971
case PER_PASS: return "PER_PASS";
7072
case PER_DRAW: return "PER_DRAW";
7173
case TERRAIN: return "TERRAIN";

Source/Renderer/Renderer/Renderer.cpp

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,14 @@ namespace Renderer
1010
{
1111
}
1212

13+
void Renderer::SetRenderSize(const vec2& renderSize)
14+
{
15+
for (auto& callback : _onRenderSizeChangedCallbacks)
16+
{
17+
callback(renderSize);
18+
}
19+
}
20+
1321
RenderGraph& Renderer::CreateRenderGraph(RenderGraphDesc& desc)
1422
{
1523
RenderGraph* renderGraph = Memory::Allocator::New<RenderGraph>(desc.allocator, desc.allocator, this);

Source/Renderer/Renderer/Renderer.h

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,8 @@ namespace Renderer
4949
class Renderer
5050
{
5151
public:
52+
~Renderer();
53+
5254
virtual void InitDebug() = 0;
5355
virtual void InitWindow(Novus::Window* window) = 0;
5456
virtual void Deinit() = 0;
@@ -57,14 +59,13 @@ namespace Renderer
5759
virtual void ReloadShaders(bool forceRecompileAll) = 0;
5860
virtual void ClearUploadBuffers() = 0;
5961

60-
virtual void SetRenderSize(vec2 renderSize) = 0;
61-
virtual vec2 GetRenderSize() = 0;
62+
virtual void SetRenderSize(const vec2& renderSize);
63+
virtual const vec2& GetRenderSize() = 0;
64+
void AddOnRenderSizeChanged(const std::function<void(const vec2&)>& func) { _onRenderSizeChangedCallbacks.push_back(func); }
6265

6366
virtual vec2 GetWindowSize() = 0;
6467
virtual ImageFormat GetSwapChainImageFormat() = 0;
6568

66-
virtual ~Renderer();
67-
6869
[[nodiscard]] RenderGraph& CreateRenderGraph(RenderGraphDesc& desc);
6970

7071
// Creation
@@ -245,6 +246,7 @@ namespace Renderer
245246
bool _isExecutingCommandlist = false;
246247

247248
std::vector<TimeQueryID> _frameTimeQueries;
249+
std::vector<std::function<void(const vec2&)>> _onRenderSizeChangedCallbacks;
248250

249251
friend class RenderGraph;
250252
};

Source/Renderer/Renderer/Renderers/Vulkan/RendererVK.cpp

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -110,13 +110,15 @@ namespace Renderer
110110
_uploadBufferHandler->Clear();
111111
}
112112

113-
void RendererVK::SetRenderSize(vec2 renderSize)
113+
void RendererVK::SetRenderSize(const vec2& renderSize)
114114
{
115115
_renderSize = renderSize;
116116
_renderSizeChanged = true;
117+
118+
Renderer::SetRenderSize(renderSize);
117119
}
118120

119-
vec2 RendererVK::GetRenderSize()
121+
const vec2& RendererVK::GetRenderSize()
120122
{
121123
return _renderSize;
122124
}

Source/Renderer/Renderer/Renderers/Vulkan/RendererVK.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,8 +42,8 @@ namespace Renderer
4242
void ReloadShaders(bool forceRecompileAll) override;
4343
void ClearUploadBuffers() override;
4444

45-
void SetRenderSize(vec2 renderSize) override;
46-
vec2 GetRenderSize() override;
45+
void SetRenderSize(const vec2& renderSize) override;
46+
const vec2& GetRenderSize() override;
4747

4848
vec2 GetWindowSize() override;
4949
ImageFormat GetSwapChainImageFormat() override;

Source/ShaderCooker/ShaderCooker/DxcBridge.cpp

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -171,11 +171,12 @@ namespace ShaderCooker
171171

172172
defines.push_back(MakeDefine(L"DEBUG", L"0"));
173173
defines.push_back(MakeDefine(L"GLOBAL", L"1"));
174-
defines.push_back(MakeDefine(L"SHADOWS", L"2"));
175-
defines.push_back(MakeDefine(L"PER_PASS", L"3"));
176-
defines.push_back(MakeDefine(L"PER_DRAW", L"4"));
177-
defines.push_back(MakeDefine(L"TERRAIN", L"5"));
178-
defines.push_back(MakeDefine(L"MODEL", L"6"));
174+
defines.push_back(MakeDefine(L"TILES", L"2"));
175+
defines.push_back(MakeDefine(L"LIGHT", L"3"));
176+
defines.push_back(MakeDefine(L"PER_PASS", L"4"));
177+
defines.push_back(MakeDefine(L"PER_DRAW", L"5"));
178+
defines.push_back(MakeDefine(L"TERRAIN", L"6"));
179+
defines.push_back(MakeDefine(L"MODEL", L"7"));
179180

180181
// Define all SHADER_*PROFILE* to 0
181182
for (const char* profile : validProfilesArray)

0 commit comments

Comments
 (0)