This commit is contained in:
Confideo-IOM
2026-08-04 17:39:07 +01:00
parent d074dc71a5
commit 3e8b8952f7
42 changed files with 228 additions and 94 deletions
@@ -1,11 +1,13 @@
#ifndef HYDRACREATESHADOWFRAMEBUFFER
#define HYDRACREATESHADOWFRAMEBUFFER
#include "../HydraTask.h"
#include "../../engine/HydraEngine.h"
#include "../../renderer/HydraRenderer.h"
#include <GLMIncludes.h>
#include "../../GlewIncludes.h"
#include "../../buffer/HydraTextureBufferManager.h"
class HydraCreateShadowFrameBuffer : public HydraTask
{
@@ -13,7 +15,7 @@ private:
uint32_t *m_texture_id = 0;
uint32_t *m_depth_texture_id = 0;
uint32_t *m_frame_buffer_id = nullptr;
protected:
public:
void Process() override
@@ -23,21 +25,21 @@ public:
HydraTextureBufferManager *tex_buffer_manager = engine->TextureBufferManager();
HydraRenderSettings render_settings = engine->RenderSettings();
*m_texture_id = tex_buffer_manager->CreateTextureArray("shadow_FB",
*m_texture_id = tex_buffer_manager->CreateTexture("shadow_FB",
SHADOW_MAP_SIZE, SHADOW_MAP_SIZE,
GL_RGBA8,
GL_NEAREST,
GL_NEAREST,
6);
1);
HydraTextureBuffer texture = tex_buffer_manager->GetTexture(*m_texture_id);
*m_depth_texture_id = tex_buffer_manager->CreateTextureArray("shadow_depth_buffer",
*m_depth_texture_id = tex_buffer_manager->CreateTexture("shadow_depth_buffer",
SHADOW_MAP_SIZE, SHADOW_MAP_SIZE,
GL_DEPTH_COMPONENT32F,
GL_NEAREST,
GL_NEAREST,
6);
1);
HydraTextureBuffer depth_texture = tex_buffer_manager->GetTexture(*m_depth_texture_id);
glGenFramebuffers(1, m_frame_buffer_id);
@@ -72,7 +74,8 @@ public:
}
glBindFramebuffer(GL_FRAMEBUFFER, 0);
tex_buffer_manager->BindTexture(*m_depth_texture_id, GL_TEXTURE_2D_ARRAY);
tex_buffer_manager->BindTexture(*m_depth_texture_id, GL_TEXTURE_2D);
}
void Initialise(uint32_t *texture_id, uint32_t *depth_texture_id, uint32_t *frame_buffer_id)
{
@@ -81,4 +84,6 @@ public:
m_depth_texture_id = depth_texture_id;
}
};
#endif /* HYDRACREATESHADOWFRAMEBUFFER */