Skip to content

Commit 4f754a2

Browse files
authored
Slight improvements to Renderer in prep for Decals (#48)
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 4f754a2

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)