Shadow buffer
This commit is contained in:
@@ -8,8 +8,6 @@ const uint DIRECTIONAL_LIGHT = 1;
|
||||
const uint POINT_LIGHT = 2;
|
||||
const uint SPOT_LIGHT = 3;
|
||||
|
||||
|
||||
|
||||
void main()
|
||||
{
|
||||
|
||||
|
||||
@@ -8,15 +8,13 @@ struct ShadowMapSet
|
||||
uint entity_id;
|
||||
uint cascade_count;
|
||||
uint shadow_texture_id;
|
||||
uint padding0;
|
||||
uint frame_buffer_id;
|
||||
float near_plane[8];
|
||||
float far_plane[8];
|
||||
mat4 light_space_proj[6];
|
||||
mat4 light_space_view[6];
|
||||
};
|
||||
|
||||
|
||||
|
||||
//Push constants updated for each light
|
||||
layout(binding = 0) uniform shadow_per_frame
|
||||
{
|
||||
@@ -24,8 +22,7 @@ layout(binding = 0) uniform shadow_per_frame
|
||||
uint shadow_idxs;
|
||||
};
|
||||
|
||||
|
||||
layout(std430, binding = 0) readonly buffer ShadowMapSets
|
||||
layout(std430, binding = 5) readonly buffer ShadowMapSets
|
||||
{
|
||||
ShadowMapSet shadows[10];
|
||||
};
|
||||
@@ -34,7 +31,6 @@ void main()
|
||||
{
|
||||
for (int i = 0; i < 3; ++i)
|
||||
{
|
||||
|
||||
gl_Position = shadows[shadow_idxs].light_space_proj[gl_InvocationID] *
|
||||
shadows[shadow_idxs].light_space_view[gl_InvocationID] *
|
||||
gl_in[i].gl_Position;
|
||||
|
||||
@@ -22,30 +22,6 @@ void HydraBufferManager::Shutdown()
|
||||
}
|
||||
}
|
||||
|
||||
// HydraID HydraBufferManager::CreateGPUBuffer(std::string buffer_name,
|
||||
// uint32_t buffer_size_bytes,
|
||||
// uint32_t binding,
|
||||
// HYDRA_BUFFER_TYPE buffer_type)
|
||||
// {
|
||||
// HydraID buffer_id = _GetBufferID();
|
||||
// HydraBuffer buffer = {};
|
||||
// buffer.buffer_id = buffer_id;
|
||||
// buffer.size_bytes = buffer_size_bytes;
|
||||
// buffer.buffer_name = buffer_name;
|
||||
// buffer.buffer_type = buffer_type;
|
||||
// uint32_t gl_buffer_type = _DecodeBufferType(buffer_type);
|
||||
// //Create the buffer
|
||||
// glGenBuffers(1, &buffer.gpu_buffer_id);
|
||||
// glBindBuffer(gl_buffer_type, buffer.gpu_buffer_id);
|
||||
// //Allocate storage
|
||||
// glBufferData(gl_buffer_type, buffer.size_bytes, NULL, GL_DYNAMIC_DRAW);
|
||||
// glBindBufferBase(gl_buffer_type, binding, buffer.gpu_buffer_id);
|
||||
// glBindBuffer(gl_buffer_type, 0);
|
||||
// m_buffers[buffer_id] = buffer;
|
||||
// return buffer_id;
|
||||
|
||||
// }
|
||||
|
||||
HydraID HydraBufferManager::CreateGPUBuffer(std::string buffer_name,
|
||||
uint32_t buffer_size_bytes,
|
||||
uint32_t binding,
|
||||
|
||||
@@ -107,6 +107,44 @@ HydraID HydraTextureBufferManager::_GetTextureID()
|
||||
return id;
|
||||
}
|
||||
|
||||
HydraID HydraTextureBufferManager::CreateTextureArray(std::string texture_name,
|
||||
uint32_t width,
|
||||
uint32_t height,
|
||||
uint32_t internal_format,
|
||||
uint32_t min_filter,
|
||||
uint32_t mag_filter,
|
||||
uint32_t levels
|
||||
)
|
||||
{
|
||||
uint32_t gl_tex_id = 0;
|
||||
glCreateTextures(GL_TEXTURE_2D_ARRAY, 1, &gl_tex_id);
|
||||
glBindTexture(GL_TEXTURE_2D_ARRAY, gl_tex_id);
|
||||
|
||||
|
||||
glTextureStorage3D(gl_tex_id, 1, internal_format, width, height, levels);
|
||||
|
||||
|
||||
glTextureParameteri(gl_tex_id, GL_TEXTURE_MIN_FILTER, min_filter);
|
||||
glTextureParameteri(gl_tex_id, GL_TEXTURE_MAG_FILTER, mag_filter);
|
||||
|
||||
glBindTexture(GL_TEXTURE_2D_ARRAY, 0);
|
||||
HydraTextureBuffer texture_buffer = {};
|
||||
HydraID texture_id = _GetTextureID();
|
||||
texture_buffer.texture_id = texture_id;
|
||||
texture_buffer.format = 0;
|
||||
texture_buffer.internal_format = internal_format;
|
||||
texture_buffer.width = width;
|
||||
texture_buffer.height = height;
|
||||
texture_buffer.gl_tex_id = gl_tex_id;
|
||||
texture_buffer.mag_filter = mag_filter;
|
||||
texture_buffer.min_filter = min_filter;
|
||||
|
||||
m_textures[texture_id] = texture_buffer;
|
||||
m_texture_lookup.insert(std::pair<std::string, HydraID>(texture_name, texture_id));
|
||||
|
||||
return texture_id;
|
||||
}
|
||||
|
||||
HydraID HydraTextureBufferManager::CreateTexture(std::string texture_name,
|
||||
uint32_t width,
|
||||
uint32_t height,
|
||||
@@ -162,7 +200,7 @@ HydraID HydraTextureBufferManager::CreateTexture(std::string texture_name,
|
||||
return texture_id;
|
||||
}
|
||||
|
||||
void HydraTextureBufferManager::BindTexture(HydraID texture_id)
|
||||
void HydraTextureBufferManager::BindTexture(HydraID texture_id, uint32_t target)
|
||||
{
|
||||
|
||||
if (texture_id >= MAX_TEXTURES)
|
||||
@@ -170,7 +208,7 @@ void HydraTextureBufferManager::BindTexture(HydraID texture_id)
|
||||
return;
|
||||
}
|
||||
HydraTextureBuffer texture = m_textures[texture_id];
|
||||
glBindTexture(GL_TEXTURE_2D, texture.gl_tex_id);
|
||||
glBindTexture(target, texture.gl_tex_id);
|
||||
glTextureParameteri(texture.gl_tex_id, GL_TEXTURE_WRAP_S, GL_REPEAT);
|
||||
glTextureParameteri(texture.gl_tex_id, GL_TEXTURE_WRAP_T, GL_REPEAT);
|
||||
glTextureParameteri(texture.gl_tex_id, GL_TEXTURE_MIN_FILTER, texture.min_filter);
|
||||
|
||||
@@ -18,10 +18,19 @@ class HydraTextureBufferManager : public HydraObject
|
||||
public:
|
||||
void Intialise();
|
||||
void Shutdown();
|
||||
HydraID CreateTexture(std::string texture_name, uint32_t width, uint32_t height, uint32_t internal_format,
|
||||
HydraID CreateTexture(std::string texture_name,
|
||||
uint32_t width, uint32_t height, uint32_t internal_format,
|
||||
uint32_t min_filter, uint32_t mag_filter, uint32_t levels,
|
||||
uint32_t format = GL_RGBA, uint32_t data_type = GL_UNSIGNED_BYTE, uint32_t mip_levels = 0, void* data = nullptr);
|
||||
void BindTexture(HydraID texture_id);
|
||||
|
||||
HydraID CreateTextureArray(std::string texture_name,
|
||||
uint32_t width,
|
||||
uint32_t height,
|
||||
uint32_t internal_format,
|
||||
uint32_t min_filter,
|
||||
uint32_t mag_filter,
|
||||
uint32_t levels);
|
||||
void BindTexture(HydraID texture_id, uint32_t target);
|
||||
void UnbindTexture(HydraID texture_id);
|
||||
void DeleteTexture(HydraID texture_id);
|
||||
HydraID LoadTexture(std::string texture_filename);
|
||||
|
||||
@@ -8,7 +8,7 @@ struct HydraShadowSourceComponent
|
||||
uint32_t entity_id;
|
||||
uint32_t cascade_count;
|
||||
uint32_t shadow_texture_id;
|
||||
uint32_t padding0;
|
||||
uint32_t frame_buffer_id;
|
||||
float near_plane[8];
|
||||
float far_plane[8];
|
||||
glm::mat4 light_space_proj[6];
|
||||
|
||||
@@ -14,48 +14,46 @@
|
||||
#include "../../task/buffer/HydraUpdateWholeGPUBufferTask.hpp"
|
||||
#include "../../task/buffer/HydraUpdatePartialGPUBufferTask.hpp"
|
||||
#include "../../task/buffer/HydraCreateUnBoundTextureTask.hpp"
|
||||
|
||||
#include "../../task/renderer/HydraCreateShadowFrameBuffer.hpp"
|
||||
#include "../../actor/HydraActorManager.h"
|
||||
|
||||
|
||||
void HydraShadowSourceSystem::Initialise()
|
||||
{
|
||||
HydraTaskScheduler *task_scheduler = GetEngine()->TaskScheduler();
|
||||
|
||||
HydraID create_gpu_buffer_task_id = task_scheduler->CreateTask<HydraCreateGPUBufferTask>(HydraThreadAffinity::Render);
|
||||
HydraCreateGPUBufferTask *task = static_cast<HydraCreateGPUBufferTask *>(task_scheduler->GetTask(create_gpu_buffer_task_id));
|
||||
task->Intialise("ShadowBuffer", 1, MAX_SHADOWS * sizeof(HydraShadowBuffer), &m_shadow_buffer_id, HYDRA_BUFFER_TYPE::HYDRA_SSBO_BUFFER);
|
||||
task->Intialise("ShadowBuffer", 1, MAX_SHADOWS * sizeof(HydraShadowSourceComponent), &m_shadow_buffer_id, HYDRA_BUFFER_TYPE::HYDRA_SSBO_BUFFER);
|
||||
task_scheduler->WaitForTask(create_gpu_buffer_task_id);
|
||||
}
|
||||
|
||||
void HydraShadowSourceSystem::InitialiseComponent(HydraID entity_id)
|
||||
{
|
||||
HydraEngine* engine = GetEngine();
|
||||
HydraECS* ecs = engine->ECS();
|
||||
HydraLightComponent& light_comp = ecs->GetComponent<HydraLightComponent>(entity_id);
|
||||
switch(light_comp.light_type)
|
||||
HydraEngine *engine = GetEngine();
|
||||
HydraECS *ecs = engine->ECS();
|
||||
HydraLightComponent &light_comp = ecs->GetComponent<HydraLightComponent>(entity_id);
|
||||
switch (light_comp.light_type)
|
||||
{
|
||||
case (int)HYDRA_LIGHT_TYPE::HYDRA_LIGHT_DIRECTIONAL:
|
||||
_InitialiseDirectionalLight(entity_id);
|
||||
break;
|
||||
case (int)HYDRA_LIGHT_TYPE::HYDRA_LIGHT_DIRECTIONAL:
|
||||
_InitialiseDirectionalLight(entity_id);
|
||||
break;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
void HydraShadowSourceSystem::UpdateSystem(float delta_t_seconds)
|
||||
{
|
||||
HydraEngine* engine = GetEngine();
|
||||
HydraECS* ecs = engine->ECS();
|
||||
HydraEngine *engine = GetEngine();
|
||||
HydraECS *ecs = engine->ECS();
|
||||
std::vector<HydraShadowSourceComponent> shadows;
|
||||
for(HydraID entity_id:Entities)
|
||||
for (HydraID entity_id : Entities)
|
||||
{
|
||||
|
||||
HydraLightComponent& light_comp = ecs->GetComponent<HydraLightComponent>(entity_id);
|
||||
switch(light_comp.light_type)
|
||||
HydraLightComponent &light_comp = ecs->GetComponent<HydraLightComponent>(entity_id);
|
||||
switch (light_comp.light_type)
|
||||
{
|
||||
case (int)HYDRA_LIGHT_TYPE::HYDRA_LIGHT_DIRECTIONAL:
|
||||
_UpdateDirectionalLight(entity_id);
|
||||
break;
|
||||
case (int)HYDRA_LIGHT_TYPE::HYDRA_LIGHT_DIRECTIONAL:
|
||||
_UpdateDirectionalLight(entity_id);
|
||||
break;
|
||||
}
|
||||
|
||||
HydraShadowSourceComponent shad_comp = ecs->GetComponent<HydraShadowSourceComponent>(entity_id);
|
||||
@@ -66,75 +64,74 @@ void HydraShadowSourceSystem::UpdateSystem(float delta_t_seconds)
|
||||
|
||||
void HydraShadowSourceSystem::_UpdateDirectionalLight(HydraID entity_id)
|
||||
{
|
||||
HydraEngine* engine = GetEngine();
|
||||
HydraECS* ecs = engine->ECS();
|
||||
HydraEngine *engine = GetEngine();
|
||||
HydraECS *ecs = engine->ECS();
|
||||
HydraPositionComponent pos_comp = ecs->GetComponent<HydraPositionComponent>(entity_id);
|
||||
HydraShadowSourceComponent& shad_comp = ecs->GetComponent<HydraShadowSourceComponent>(entity_id);
|
||||
HydraShadowSourceComponent &shad_comp = ecs->GetComponent<HydraShadowSourceComponent>(entity_id);
|
||||
|
||||
float view_size = 5.0f;
|
||||
float view_near = -5.0f;
|
||||
float view_far = 5.0f;
|
||||
|
||||
float view_size = 5.0f;
|
||||
float view_near = -5.0f;
|
||||
float view_far = 5.0f;
|
||||
float PI = 3.1415927;
|
||||
float TWO_PI = 6.2831854;
|
||||
|
||||
float PI = 3.1415927;
|
||||
float TWO_PI = 6.2831854;
|
||||
glm::vec3 light_dir = glm::vec3(0, 0, -1);
|
||||
glm::mat3 light_rot = glm::mat3(1);
|
||||
glm::vec3 light_euler = pos_comp.orientation;
|
||||
light_rot = glm::eulerAngleXYZ(light_euler.x, light_euler.y, light_euler.z);
|
||||
|
||||
glm::vec3 light_dir = glm::vec3(0, 0, -1);
|
||||
glm::mat3 light_rot = glm::mat3(1);
|
||||
glm::vec3 light_euler = pos_comp.orientation;
|
||||
light_rot = glm::eulerAngleXYZ(light_euler.x, light_euler.y, light_euler.z);
|
||||
light_dir = light_rot * light_dir;
|
||||
light_dir = glm::normalize(light_dir);
|
||||
glm::vec3 camera_pos = GetEngine()->Camera()->GetPosition();
|
||||
|
||||
light_dir = light_rot * light_dir;
|
||||
light_dir = glm::normalize(light_dir);
|
||||
glm::vec3 camera_pos = GetEngine()->Camera()->GetPosition();
|
||||
for (uint32_t i = 0; i < 6; i++)
|
||||
{
|
||||
glm::vec3 light_pos = camera_pos; // - (light_dir * light_distance);
|
||||
for (uint32_t i = 0; i < 6; i++)
|
||||
{
|
||||
glm::vec3 light_pos = camera_pos; // - (light_dir * light_distance);
|
||||
|
||||
glm::mat4 light_trans = glm::translate(light_pos * glm::vec3(-1, -1, -1));
|
||||
glm::mat4 light_orient = glm::eulerAngleXYZ(light_euler.x, light_euler.y, light_euler.z);
|
||||
glm::mat4 view = light_orient * light_trans;
|
||||
glm::mat4 proj = glm::orthoRH<float>(view_size, -view_size, -view_size, view_size, -15000, 15000);
|
||||
// glm::mat4 proj = glm::orthoRH<float>(view_size, -view_size, -view_size, view_size, view_near, view_far);
|
||||
glm::mat4 light_trans = glm::translate(light_pos * glm::vec3(-1, -1, -1));
|
||||
glm::mat4 light_orient = glm::eulerAngleXYZ(light_euler.x, light_euler.y, light_euler.z);
|
||||
glm::mat4 view = light_orient * light_trans;
|
||||
glm::mat4 proj = glm::orthoRH<float>(view_size, -view_size, -view_size, view_size, -15000, 15000);
|
||||
|
||||
shad_comp.far_plane[i] = view_far;
|
||||
shad_comp.near_plane[i] = view_near;
|
||||
shad_comp.light_space_proj[i] = proj;
|
||||
shad_comp.light_space_view[i] = view;
|
||||
shad_comp.far_plane[i] = view_far;
|
||||
shad_comp.near_plane[i] = view_near;
|
||||
shad_comp.light_space_proj[i] = proj;
|
||||
shad_comp.light_space_view[i] = view;
|
||||
|
||||
view_far *= 3.0f;
|
||||
view_near = -view_far;
|
||||
view_size *= 3.0f;
|
||||
}
|
||||
view_far *= 3.0f;
|
||||
view_near = -view_far;
|
||||
view_size *= 3.0f;
|
||||
}
|
||||
}
|
||||
|
||||
void HydraShadowSourceSystem::_InitialiseDirectionalLight(HydraID entity_id)
|
||||
{
|
||||
HydraEngine* engine = GetEngine();
|
||||
HydraECS* ecs = engine->ECS();
|
||||
HydraTextureBufferManager* tex_man = engine->TextureBufferManager();
|
||||
HydraShadowSourceComponent& shad_comp = ecs->GetComponent<HydraShadowSourceComponent>(entity_id);
|
||||
HydraEngine *engine = GetEngine();
|
||||
HydraECS *ecs = engine->ECS();
|
||||
HydraTextureBufferManager *tex_man = engine->TextureBufferManager();
|
||||
HydraShadowSourceComponent &shad_comp = ecs->GetComponent<HydraShadowSourceComponent>(entity_id);
|
||||
shad_comp.entity_id = entity_id;
|
||||
shad_comp.cascade_count = 6;
|
||||
|
||||
HydraTaskScheduler *task_scheduler = GetEngine()->TaskScheduler();
|
||||
|
||||
HydraID create_texture_task_id = task_scheduler->CreateTask<HydraCreateUnBoundTextureTask>(HydraThreadAffinity::Render);
|
||||
HydraCreateUnBoundTextureTask *task = static_cast<HydraCreateUnBoundTextureTask *>(task_scheduler->GetTask(create_texture_task_id));
|
||||
task->Initialise("shadow", SHADOW_MAP_SIZE, SHADOW_MAP_SIZE, GL_R32F, GL_R32F, GL_LINEAR, GL_LINEAR, 6, GL_BYTE, 0, nullptr, &shad_comp.shadow_texture_id);
|
||||
task_scheduler->WaitForTask(create_texture_task_id);
|
||||
HydraID create_framebuffer_task_id = task_scheduler->CreateTask<HydraCreateShadowFrameBuffer>(HydraThreadAffinity::Render);
|
||||
HydraCreateShadowFrameBuffer *fb_task = static_cast<HydraCreateShadowFrameBuffer *>(task_scheduler->GetTask(create_framebuffer_task_id));
|
||||
fb_task->Initialise(&shad_comp.shadow_texture_id, &shad_comp.frame_buffer_id);
|
||||
task_scheduler->WaitForTask(create_framebuffer_task_id);
|
||||
}
|
||||
|
||||
void HydraShadowSourceSystem::_WriteToGPU(std::vector<HydraShadowSourceComponent> shadows)
|
||||
{
|
||||
HydraEngine* engine = GetEngine();
|
||||
HydraECS* ecs = engine->ECS();
|
||||
HydraEngine *engine = GetEngine();
|
||||
HydraECS *ecs = engine->ECS();
|
||||
|
||||
void *buffer = static_cast<void *>(shadows.data());
|
||||
HydraTaskScheduler *task_scheduler = GetEngine()->TaskScheduler();
|
||||
|
||||
HydraID update_buffer_task_id = task_scheduler->CreateTask<HydraUpdatePartialGPUBufferTask>(HydraThreadAffinity::Render);
|
||||
HydraUpdatePartialGPUBufferTask *task = static_cast<HydraUpdatePartialGPUBufferTask *>(task_scheduler->GetTask(update_buffer_task_id));
|
||||
task->Intialise(m_shadow_buffer_id, 0, sizeof(HydraLightComponent) * shadows.size(), buffer);
|
||||
task->Intialise(m_shadow_buffer_id, 0, sizeof(HydraShadowSourceComponent) * shadows.size(), buffer);
|
||||
task_scheduler->WaitForTask(update_buffer_task_id);
|
||||
}
|
||||
@@ -52,7 +52,7 @@
|
||||
#include "../task/buffer/HydraShutdownBufferManagerTask.hpp"
|
||||
#include "../task/buffer/HydraInitialiseTextureManagerTask.hpp"
|
||||
#include "../task/actor/HydraUpdatePlayerTask.h"
|
||||
#include "../task/renderer/HydraBeginRenderTask.hpp"
|
||||
|
||||
#include "../task/renderer/HydraEndRenderTask.hpp"
|
||||
|
||||
#include "../mesh/HydraMeshManager.h"
|
||||
@@ -360,13 +360,7 @@ void HydraEngine::_GameLoop()
|
||||
|
||||
_UpdateSystems();
|
||||
|
||||
// HydraID render_task_id = m_task_scheduler->CreateTask<HydraRenderPipelineTask>(HydraThreadAffinity::Render);
|
||||
// HydraRenderPipelineTask* render_task = static_cast<HydraRenderPipelineTask*>(m_task_scheduler->GetTask(render_task_id));
|
||||
// render_task->Initialise(m_pipeline);
|
||||
// m_task_scheduler->WaitForTask(render_task_id);
|
||||
|
||||
HydraID begin_task_id = m_task_scheduler->CreateTask<HydraBeginRenderTask>(HydraThreadAffinity::Render);
|
||||
m_task_scheduler->WaitForTask(begin_task_id);
|
||||
|
||||
HydraID render_shadow_task_id = m_task_scheduler->CreateTask<HydraRenderPipelineTask>(HydraThreadAffinity::Render);
|
||||
HydraRenderPipelineTask* render_shadow_task = static_cast<HydraRenderPipelineTask*>(m_task_scheduler->GetTask(render_shadow_task_id));
|
||||
|
||||
@@ -291,7 +291,7 @@ void HydraGLTFLoader::_ProcessGLTFTextures(aiScene const *scene, std::vector<uin
|
||||
GL_UNSIGNED_BYTE,
|
||||
5,
|
||||
data);
|
||||
texture_manager->BindTexture(texture_id);
|
||||
texture_manager->BindTexture(texture_id, GL_TEXTURE_2D);
|
||||
// store the texture id against the scene index for the texture. Materials will have *n where n is the index
|
||||
texture_lookup[i_tex] = texture_id;
|
||||
}
|
||||
|
||||
@@ -39,21 +39,36 @@ void HydraDeferredPipeline::Render()
|
||||
{
|
||||
_UpdateUBO();
|
||||
|
||||
glBindFramebuffer(GL_FRAMEBUFFER, m_frame_buffer_id);
|
||||
glClearColor(0.0f, 0.0f, 0.0f, 0.0f);
|
||||
|
||||
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); // we're not using the stencil buffer now
|
||||
glEnable(GL_DEPTH_TEST);
|
||||
glBindFramebuffer(GL_FRAMEBUFFER, 0);
|
||||
|
||||
HydraECS* ecs = GetEngine()->ECS();
|
||||
std::shared_ptr<HydraRenderSystem> render_system = ecs->GetSystem<HydraRenderSystem>();
|
||||
|
||||
GetEngine()->Renderer()->BeginFrame();
|
||||
HydraRenderSettings render_settings = GetEngine()->RenderSettings();
|
||||
glEnable(GL_DEPTH_TEST);
|
||||
glEnable(GL_BLEND);
|
||||
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
|
||||
|
||||
glViewport(0, 0, render_settings.ViewportWidth, render_settings.ViewportHeight);
|
||||
|
||||
float clear_colour[4] = {0, 0, 0, 0};
|
||||
float depth_value = 1;
|
||||
|
||||
glClearNamedFramebufferfv(m_frame_buffer_id, GL_COLOR, 0, clear_colour);
|
||||
glClearNamedFramebufferfv(m_frame_buffer_id, GL_COLOR, 1, clear_colour);
|
||||
glClearNamedFramebufferfv(m_frame_buffer_id, GL_COLOR, 2, clear_colour);
|
||||
glClearNamedFramebufferfv(m_frame_buffer_id, GL_COLOR, 3, clear_colour);
|
||||
glClearNamedFramebufferfv(m_frame_buffer_id, GL_DEPTH, 0, &depth_value);
|
||||
|
||||
float screen_colour[4] = {0.0f, 0.5f, 0.7f, 1.0f};
|
||||
glClearNamedFramebufferfv(0, GL_COLOR, 0, screen_colour);
|
||||
glClearNamedFramebufferfv(0, GL_DEPTH, 0, &depth_value);
|
||||
|
||||
for(uint32_t rs_idx = 0; rs_idx <m_render_stages.size(); rs_idx++)
|
||||
{
|
||||
m_render_stages[rs_idx]->Render(render_system->Entities);
|
||||
}
|
||||
GetEngine()->Renderer()->EndFrame();
|
||||
|
||||
}
|
||||
|
||||
void HydraDeferredPipeline::_UpdateUBO()
|
||||
@@ -126,11 +141,11 @@ void HydraDeferredPipeline::_CreateFrameBuffer()
|
||||
glDrawBuffers(4, draw_buffers);
|
||||
glBindTexture(GL_TEXTURE_2D, 0);
|
||||
|
||||
tex_buffer_manager->BindTexture(depth_texture.texture_id);
|
||||
tex_buffer_manager->BindTexture(buffer_0_texture.texture_id);
|
||||
tex_buffer_manager->BindTexture(metal_rough_texture.texture_id);
|
||||
tex_buffer_manager->BindTexture(normal_texture.texture_id);
|
||||
tex_buffer_manager->BindTexture(position_texture.texture_id);
|
||||
tex_buffer_manager->BindTexture(depth_texture.texture_id, GL_TEXTURE_2D);
|
||||
tex_buffer_manager->BindTexture(buffer_0_texture.texture_id, GL_TEXTURE_2D);
|
||||
tex_buffer_manager->BindTexture(metal_rough_texture.texture_id, GL_TEXTURE_2D);
|
||||
tex_buffer_manager->BindTexture(normal_texture.texture_id, GL_TEXTURE_2D);
|
||||
tex_buffer_manager->BindTexture(position_texture.texture_id, GL_TEXTURE_2D);
|
||||
|
||||
|
||||
HydraBufferManager* buffer_manager = GetEngine()->BufferManager();
|
||||
|
||||
@@ -60,13 +60,16 @@ void HydraForwardPipeline::Render()
|
||||
HydraECS* ecs = GetEngine()->ECS();
|
||||
std::shared_ptr<HydraRenderSystem> render_system = ecs->GetSystem<HydraRenderSystem>();
|
||||
|
||||
GetEngine()->Renderer()->BeginFrame();
|
||||
float depth_value = 1;
|
||||
float screen_colour[4] = {0, 0.2, 0.7, 1};
|
||||
|
||||
glClearNamedFramebufferfv(0, GL_COLOR, 0, screen_colour);
|
||||
glClearNamedFramebufferfv(0, GL_DEPTH, 0, &depth_value);
|
||||
|
||||
for(uint32_t rs_idx = 0; rs_idx <m_render_stages.size(); rs_idx++)
|
||||
{
|
||||
m_render_stages[rs_idx]->Render(render_system->Entities);
|
||||
}
|
||||
GetEngine()->Renderer()->EndFrame();
|
||||
}
|
||||
|
||||
void HydraForwardPipeline::_UpdateUBO()
|
||||
|
||||
@@ -52,11 +52,13 @@ void HydraRenderStage::ShutDown()
|
||||
glDeleteProgram(m_program);
|
||||
}
|
||||
|
||||
void HydraRenderStage::Render(std::set<HydraID>& entities)
|
||||
void HydraRenderStage::Render(std::set<HydraID>& entities, uint32_t framebuffer_id)
|
||||
{
|
||||
HydraECS* ecs = GetEngine()->ECS();
|
||||
|
||||
glBindFramebuffer(GL_FRAMEBUFFER, m_framebuffer_id);
|
||||
if(framebuffer_id != INVALID_HYDRA_ID)
|
||||
{
|
||||
glBindFramebuffer(GL_FRAMEBUFFER, framebuffer_id);
|
||||
}
|
||||
//glDrawBuffers(m_rb_attachments.size(), &m_rb_attachments[0]);
|
||||
HydraVertexBufferManager* vert_buffer_mananger = GetEngine()->VertexBufferManager();
|
||||
glUseProgram(m_program);
|
||||
@@ -91,6 +93,11 @@ void HydraRenderStage::Render(std::set<HydraID>& entities)
|
||||
glBindFramebuffer(GL_FRAMEBUFFER, 0);
|
||||
}
|
||||
|
||||
void HydraRenderStage::Render(std::set<HydraID> &entities)
|
||||
{
|
||||
Render(entities, m_framebuffer_id);
|
||||
}
|
||||
|
||||
uint32_t HydraRenderStage::_LoadShader(std::string filename, uint32_t shader_type)
|
||||
{
|
||||
|
||||
|
||||
@@ -19,6 +19,7 @@ class HydraRenderStage : public HydraObject
|
||||
bool enable_culling,
|
||||
HYDRA_RENDERABLE_TYPE renderable_type);
|
||||
void ShutDown();
|
||||
void Render(std::set<HydraID>& entities, uint32_t framebuffer_id);
|
||||
void Render(std::set<HydraID>& entities);
|
||||
private:
|
||||
uint32_t _LoadShader(std::string filename, uint32_t shader_type);
|
||||
|
||||
@@ -16,12 +16,9 @@
|
||||
#include "../actor/HydraActorManager.h"
|
||||
#include "../actor/HydraOutputActor.h"
|
||||
|
||||
|
||||
|
||||
void HydraShadowPipeline::Initialise()
|
||||
{
|
||||
_CreateUBOs();
|
||||
_CreateFrameBuffer();
|
||||
_CreateRenderStage();
|
||||
}
|
||||
|
||||
@@ -31,21 +28,35 @@ void HydraShadowPipeline::Shutdown()
|
||||
|
||||
void HydraShadowPipeline::Render()
|
||||
{
|
||||
HydraECS* ecs = GetEngine()->ECS();
|
||||
HydraECS *ecs = GetEngine()->ECS();
|
||||
std::shared_ptr<HydraRenderSystem> render_system = ecs->GetSystem<HydraRenderSystem>();
|
||||
std::shared_ptr<HydraShadowSourceSystem> shadow_system = ecs->GetSystem<HydraShadowSourceSystem>();
|
||||
uint32_t shadow_idx =0;
|
||||
for(HydraID entity_id:shadow_system->Entities)
|
||||
uint32_t shadow_idx = 0;
|
||||
|
||||
glViewport(0, 0, SHADOW_MAP_SIZE, SHADOW_MAP_SIZE);
|
||||
|
||||
|
||||
glEnable(GL_DEPTH_TEST); // Depth testing must be active
|
||||
glDepthMask(GL_TRUE); // Depth buffer must be writable
|
||||
glDepthFunc(GL_LESS);
|
||||
|
||||
for (HydraID entity_id : shadow_system->Entities)
|
||||
{
|
||||
_UpdateUBO(shadow_idx);
|
||||
_BindFrameBufferAttachments(entity_id);
|
||||
GetEngine()->Renderer()->BeginFrame();
|
||||
for(uint32_t rs_idx = 0; rs_idx <m_render_stages.size(); rs_idx++)
|
||||
// _BindFrameBufferAttachments(entity_id);
|
||||
HydraShadowSourceComponent shad_comp = GetEngine()->ECS()->GetComponent<HydraShadowSourceComponent>(entity_id);
|
||||
glBindFramebuffer(GL_FRAMEBUFFER, shad_comp.frame_buffer_id);
|
||||
glBindTextureUnit(0, 0);
|
||||
|
||||
float depth_value = 1.0f;
|
||||
glClearNamedFramebufferfv(shad_comp.frame_buffer_id, GL_DEPTH, 0, &depth_value);
|
||||
|
||||
for (uint32_t rs_idx = 0; rs_idx < m_render_stages.size(); rs_idx++)
|
||||
{
|
||||
m_render_stages[rs_idx]->Render(render_system->Entities);
|
||||
m_render_stages[rs_idx]->Render(render_system->Entities, INVALID_HYDRA_ID);
|
||||
}
|
||||
GetEngine()->Renderer()->EndFrame();
|
||||
glBindFramebuffer(GL_FRAMEBUFFER, 0);
|
||||
|
||||
glBindFramebuffer(GL_FRAMEBUFFER, 0);
|
||||
shadow_idx++;
|
||||
}
|
||||
|
||||
@@ -53,9 +64,9 @@ void HydraShadowPipeline::Render()
|
||||
|
||||
void HydraShadowPipeline::_CreateRenderStage()
|
||||
{
|
||||
HydraRenderStage* render_stage = new HydraRenderStage();
|
||||
HydraRenderStage *render_stage = new HydraRenderStage();
|
||||
std::string shader_path = std::string(shader_base);
|
||||
HydraBufferManager* buffer_manager = GetEngine()->BufferManager();
|
||||
HydraBufferManager *buffer_manager = GetEngine()->BufferManager();
|
||||
|
||||
HydraID pos_buffer_id = buffer_manager->FindBuffer("PositionsBuffer");
|
||||
HydraID shadow_buffer_id = buffer_manager->FindBuffer("ShadowBuffer");
|
||||
@@ -69,73 +80,47 @@ void HydraShadowPipeline::_CreateRenderStage()
|
||||
shader_binding.buffer_type.push_back(HYDRA_BUFFER_TYPE::HYDRA_SSBO_BUFFER);
|
||||
|
||||
shader_binding.block_name.push_back("ShadowMapSets");
|
||||
shader_binding.binding_point.push_back(0);
|
||||
shader_binding.binding_point.push_back(5);
|
||||
shader_binding.buffer_id.push_back(shadow_buffer_id);
|
||||
shader_binding.buffer_type.push_back(HYDRA_BUFFER_TYPE::HYDRA_SSBO_BUFFER);
|
||||
|
||||
shader_binding.block_name.push_back("shadow_per_frame");
|
||||
shader_binding.binding_point.push_back(0);
|
||||
shader_binding.binding_point.push_back(1);
|
||||
shader_binding.buffer_id.push_back(per_frame_buffer_id);
|
||||
shader_binding.buffer_type.push_back(HYDRA_BUFFER_TYPE::HYDRA_UBO_BUFFER);
|
||||
|
||||
std::vector<uint32_t> textures;
|
||||
|
||||
render_stage->Initialise(shader_path + "shadow_shader.vert",
|
||||
shader_path + "shadow_shader.frag",
|
||||
shader_path + "shadow_shader.geom",
|
||||
shader_binding,
|
||||
m_frame_buffer_id,
|
||||
textures,
|
||||
true,
|
||||
HYDRA_RENDERABLE_TYPE::HYDRA_COLOUR);
|
||||
shader_path + "shadow_shader.frag",
|
||||
shader_path + "shadow_shader.geom",
|
||||
shader_binding,
|
||||
0,
|
||||
textures,
|
||||
true,
|
||||
HYDRA_RENDERABLE_TYPE::HYDRA_COLOUR);
|
||||
m_render_stages.push_back(render_stage);
|
||||
}
|
||||
|
||||
void HydraShadowPipeline::_UpdateUBO(uint32_t shadow_idx)
|
||||
{
|
||||
HydraBufferManager* buffer_manager = GetEngine()->BufferManager();
|
||||
buffer_manager->UpdatePartialBuffer(m_per_frame_ubo,3*sizeof(float), sizeof(uint32_t), &shadow_idx);
|
||||
HydraBufferManager *buffer_manager = GetEngine()->BufferManager();
|
||||
buffer_manager->UpdatePartialBuffer(m_per_frame_ubo, 3 * sizeof(float), sizeof(uint32_t), &shadow_idx);
|
||||
glBindBuffer(GL_UNIFORM_BUFFER, m_per_frame_ubo);
|
||||
}
|
||||
|
||||
void HydraShadowPipeline::_BindFrameBufferAttachments(HydraID entity_id)
|
||||
{
|
||||
HydraShadowSourceComponent shad_comp = GetEngine()->ECS()->GetComponent<HydraShadowSourceComponent>(entity_id);
|
||||
HydraTextureBuffer texture = GetEngine()->TextureBufferManager()->GetTexture(shad_comp.shadow_texture_id);
|
||||
glBindFramebuffer(GL_FRAMEBUFFER, m_frame_buffer_id);
|
||||
|
||||
glBindTexture(GL_TEXTURE_2D, texture.gl_tex_id);
|
||||
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
|
||||
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
|
||||
glFramebufferTexture2D(GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT, GL_TEXTURE_2D, texture.gl_tex_id, 0);
|
||||
|
||||
GLenum draw_buffers[4] = {GL_COLOR_ATTACHMENT0, GL_COLOR_ATTACHMENT1, GL_COLOR_ATTACHMENT2, GL_COLOR_ATTACHMENT3};
|
||||
|
||||
glDrawBuffer(GL_NONE);
|
||||
glReadBuffer(GL_NONE);
|
||||
glBindTexture(GL_TEXTURE_2D, 0);
|
||||
|
||||
|
||||
glClearColor(0.0f, 0.0f, 0.0f, 0.0f);
|
||||
|
||||
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); // we're not using the stencil buffer now
|
||||
glEnable(GL_DEPTH_TEST);
|
||||
glBindFramebuffer(GL_FRAMEBUFFER, 0);
|
||||
|
||||
glBindFramebuffer(GL_FRAMEBUFFER, shad_comp.frame_buffer_id);
|
||||
glBindTextureUnit(0, 0);
|
||||
}
|
||||
|
||||
void HydraShadowPipeline::_CreateFrameBuffer()
|
||||
{
|
||||
HydraEngine* engine = GetEngine();
|
||||
HydraTextureBufferManager* tex_buffer_manager = engine->TextureBufferManager();
|
||||
HydraRenderSettings render_settings = engine->RenderSettings();
|
||||
glGenFramebuffers(1, &m_frame_buffer_id);
|
||||
glBindFramebuffer(GL_FRAMEBUFFER, m_frame_buffer_id);
|
||||
}
|
||||
|
||||
void HydraShadowPipeline::_CreateUBOs()
|
||||
{
|
||||
HydraBufferManager* buffer_manager = GetEngine()->BufferManager();
|
||||
HydraBufferManager *buffer_manager = GetEngine()->BufferManager();
|
||||
|
||||
m_per_frame_ubo = buffer_manager->CreateGPUBuffer("ShadowPerFrameUBO",
|
||||
sizeof(float)*4, 0, HYDRA_BUFFER_TYPE::HYDRA_UBO_BUFFER);
|
||||
sizeof(float) * 4, 0, HYDRA_BUFFER_TYPE::HYDRA_UBO_BUFFER);
|
||||
}
|
||||
|
||||
@@ -18,12 +18,12 @@ class HydraShadowPipeline : public HydraPipeline
|
||||
void Render() override;
|
||||
private:
|
||||
void _CreateUBOs();
|
||||
void _CreateFrameBuffer();
|
||||
|
||||
void _CreateRenderStage();
|
||||
void _UpdateUBO(uint32_t shadow_idx);
|
||||
void _BindFrameBufferAttachments(HydraID entity_id);
|
||||
HydraID m_per_frame_ubo = INVALID_HYDRA_ID;
|
||||
uint32_t m_frame_buffer_id;
|
||||
|
||||
|
||||
};
|
||||
|
||||
|
||||
@@ -31,18 +31,18 @@ void HydraRenderer::Initialise(HydraRenderSettings render_settings)
|
||||
}
|
||||
}
|
||||
|
||||
void HydraRenderer::BeginFrame()
|
||||
{
|
||||
// void HydraRenderer::BeginFrame()
|
||||
// {
|
||||
|
||||
glViewport(0, 0, m_render_settings.ViewportWidth, m_render_settings.ViewportHeight);
|
||||
// glViewport(0, 0, m_render_settings.ViewportWidth, m_render_settings.ViewportHeight);
|
||||
|
||||
glEnable(GL_BLEND);
|
||||
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
|
||||
glClearColor(0.0f, 0.5f, 0.7f, 1.0f);
|
||||
// glEnable(GL_BLEND);
|
||||
// glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
|
||||
// glClearColor(0.0f, 0.5f, 0.7f, 1.0f);
|
||||
|
||||
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
|
||||
// glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
|
||||
|
||||
}
|
||||
// }
|
||||
|
||||
void HydraRenderer::EndFrame()
|
||||
{
|
||||
|
||||
@@ -7,7 +7,7 @@ class HydraRenderer : public HydraObject
|
||||
{
|
||||
public:
|
||||
void Initialise(HydraRenderSettings render_settings);
|
||||
void BeginFrame();
|
||||
//void BeginFrame();
|
||||
void EndFrame();
|
||||
|
||||
|
||||
|
||||
@@ -18,6 +18,7 @@ private:
|
||||
uint32_t m_min_filter;
|
||||
uint32_t m_mag_filter;
|
||||
uint32_t m_levels;
|
||||
uint32_t m_target;
|
||||
void *m_data;
|
||||
HydraID *m_texture_id;
|
||||
|
||||
@@ -35,7 +36,7 @@ public:
|
||||
m_data_type,
|
||||
m_mip_levels,
|
||||
m_data);
|
||||
GetEngine()->TextureBufferManager()->BindTexture(*m_texture_id);
|
||||
GetEngine()->TextureBufferManager()->BindTexture(*m_texture_id, GL_TEXTURE_2D);
|
||||
|
||||
}
|
||||
void Initialise(std::string texture_name,
|
||||
|
||||
@@ -51,6 +51,7 @@ public:
|
||||
HydraID *texture_id)
|
||||
{
|
||||
m_texture_name = texture_name;
|
||||
|
||||
m_width = width;
|
||||
m_height = height;
|
||||
m_internal_format = internal_format;
|
||||
|
||||
@@ -1,19 +0,0 @@
|
||||
#ifndef HYDRABEGINRENDERTASK
|
||||
#define HYDRABEGINRENDERTASK
|
||||
#include "../HydraTask.h"
|
||||
#include "../../engine/HydraEngine.h"
|
||||
#include "../../renderer/HydraRenderer.h"
|
||||
|
||||
class HydraBeginRenderTask : public HydraTask
|
||||
{
|
||||
private:
|
||||
protected:
|
||||
public:
|
||||
virtual void Process() override
|
||||
{
|
||||
GetEngine()->Renderer()->BeginFrame();
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
#endif /* HYDRABEGINRENDERTASK */
|
||||
@@ -0,0 +1,61 @@
|
||||
#ifndef HYDRACREATESHADOWFRAMEBUFFER
|
||||
#define HYDRACREATESHADOWFRAMEBUFFER
|
||||
|
||||
#include "../HydraTask.h"
|
||||
#include "../../engine/HydraEngine.h"
|
||||
#include "../../renderer/HydraRenderer.h"
|
||||
#include <GLMIncludes.h>
|
||||
#include "../../GlewIncludes.h"
|
||||
|
||||
class HydraCreateShadowFrameBuffer : public HydraTask
|
||||
{
|
||||
private:
|
||||
uint32_t *m_texture_id = 0;
|
||||
uint32_t *m_frame_buffer_id = nullptr;
|
||||
|
||||
protected:
|
||||
public:
|
||||
void Process() override
|
||||
{
|
||||
HydraEngine *engine = GetEngine();
|
||||
|
||||
HydraTextureBufferManager *tex_buffer_manager = engine->TextureBufferManager();
|
||||
HydraRenderSettings render_settings = engine->RenderSettings();
|
||||
|
||||
*m_texture_id = tex_buffer_manager->CreateTextureArray("shadow_FB",
|
||||
SHADOW_MAP_SIZE, SHADOW_MAP_SIZE,
|
||||
GL_DEPTH_COMPONENT24,
|
||||
GL_NEAREST,
|
||||
GL_NEAREST,
|
||||
6);
|
||||
|
||||
HydraTextureBuffer texture = tex_buffer_manager->GetTexture(*m_texture_id);
|
||||
|
||||
glGenFramebuffers(1, m_frame_buffer_id);
|
||||
glBindFramebuffer(GL_FRAMEBUFFER, *m_frame_buffer_id);
|
||||
|
||||
glNamedFramebufferDrawBuffer(*m_frame_buffer_id, GL_NONE);
|
||||
glNamedFramebufferReadBuffer(*m_frame_buffer_id, GL_NONE);
|
||||
|
||||
glBindTexture(GL_TEXTURE_2D_ARRAY, texture.gl_tex_id);
|
||||
glTexParameteri(GL_TEXTURE_2D_ARRAY, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
|
||||
glTexParameteri(GL_TEXTURE_2D_ARRAY, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
|
||||
|
||||
glFramebufferTexture(GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT, texture.gl_tex_id, 0);
|
||||
|
||||
GLenum status = glCheckNamedFramebufferStatus(*m_frame_buffer_id, GL_FRAMEBUFFER);
|
||||
if (status != GL_FRAMEBUFFER_COMPLETE)
|
||||
{
|
||||
std::cout << "Framebuffer error: " << status << std::endl;
|
||||
}
|
||||
glBindFramebuffer(GL_FRAMEBUFFER, 0);
|
||||
glBindTexture(GL_TEXTURE_2D_ARRAY, 0);
|
||||
tex_buffer_manager->BindTexture(*m_texture_id, GL_TEXTURE_2D_ARRAY);
|
||||
}
|
||||
void Initialise(uint32_t *texture_id, uint32_t *frame_buffer_id)
|
||||
{
|
||||
m_texture_id = texture_id;
|
||||
m_frame_buffer_id = frame_buffer_id;
|
||||
}
|
||||
};
|
||||
#endif /* HYDRACREATESHADOWFRAMEBUFFER */
|
||||
@@ -11,7 +11,6 @@ class HydraRenderTask : public HydraTask
|
||||
public:
|
||||
virtual void Process() override
|
||||
{
|
||||
GetEngine()->Renderer()->BeginFrame();
|
||||
GetEngine()->Renderer()->EndFrame();
|
||||
}
|
||||
};
|
||||
|
||||
+8
-8
@@ -161,7 +161,7 @@
|
||||
{
|
||||
"directoryIndex" : 0,
|
||||
"id" : "ALL_BUILD::@6890427a1f51a3e7e1df",
|
||||
"jsonFile" : "target-ALL_BUILD-Debug-cadb66c5dccd0bd206e6.json",
|
||||
"jsonFile" : "target-ALL_BUILD-Debug-9ddbbbeb4caedf0a48f0.json",
|
||||
"name" : "ALL_BUILD",
|
||||
"projectIndex" : 0
|
||||
},
|
||||
@@ -182,7 +182,7 @@
|
||||
{
|
||||
"directoryIndex" : 1,
|
||||
"id" : "HydraEngine::@fafd37b19aacd4c483ed",
|
||||
"jsonFile" : "target-HydraEngine-Debug-a388455bc5d4b1d63093.json",
|
||||
"jsonFile" : "target-HydraEngine-Debug-2faea7c156292a0c0ce8.json",
|
||||
"name" : "HydraEngine",
|
||||
"projectIndex" : 1
|
||||
},
|
||||
@@ -355,7 +355,7 @@
|
||||
{
|
||||
"directoryIndex" : 0,
|
||||
"id" : "ALL_BUILD::@6890427a1f51a3e7e1df",
|
||||
"jsonFile" : "target-ALL_BUILD-Release-cadb66c5dccd0bd206e6.json",
|
||||
"jsonFile" : "target-ALL_BUILD-Release-9ddbbbeb4caedf0a48f0.json",
|
||||
"name" : "ALL_BUILD",
|
||||
"projectIndex" : 0
|
||||
},
|
||||
@@ -376,7 +376,7 @@
|
||||
{
|
||||
"directoryIndex" : 1,
|
||||
"id" : "HydraEngine::@fafd37b19aacd4c483ed",
|
||||
"jsonFile" : "target-HydraEngine-Release-4d51ecf0ab4ffdcb7da6.json",
|
||||
"jsonFile" : "target-HydraEngine-Release-b1d450122d30c349552d.json",
|
||||
"name" : "HydraEngine",
|
||||
"projectIndex" : 1
|
||||
},
|
||||
@@ -549,7 +549,7 @@
|
||||
{
|
||||
"directoryIndex" : 0,
|
||||
"id" : "ALL_BUILD::@6890427a1f51a3e7e1df",
|
||||
"jsonFile" : "target-ALL_BUILD-MinSizeRel-cadb66c5dccd0bd206e6.json",
|
||||
"jsonFile" : "target-ALL_BUILD-MinSizeRel-9ddbbbeb4caedf0a48f0.json",
|
||||
"name" : "ALL_BUILD",
|
||||
"projectIndex" : 0
|
||||
},
|
||||
@@ -570,7 +570,7 @@
|
||||
{
|
||||
"directoryIndex" : 1,
|
||||
"id" : "HydraEngine::@fafd37b19aacd4c483ed",
|
||||
"jsonFile" : "target-HydraEngine-MinSizeRel-8280923c3e8a8a1bd015.json",
|
||||
"jsonFile" : "target-HydraEngine-MinSizeRel-8b4acdd146655dce4c11.json",
|
||||
"name" : "HydraEngine",
|
||||
"projectIndex" : 1
|
||||
},
|
||||
@@ -743,7 +743,7 @@
|
||||
{
|
||||
"directoryIndex" : 0,
|
||||
"id" : "ALL_BUILD::@6890427a1f51a3e7e1df",
|
||||
"jsonFile" : "target-ALL_BUILD-RelWithDebInfo-cadb66c5dccd0bd206e6.json",
|
||||
"jsonFile" : "target-ALL_BUILD-RelWithDebInfo-9ddbbbeb4caedf0a48f0.json",
|
||||
"name" : "ALL_BUILD",
|
||||
"projectIndex" : 0
|
||||
},
|
||||
@@ -764,7 +764,7 @@
|
||||
{
|
||||
"directoryIndex" : 1,
|
||||
"id" : "HydraEngine::@fafd37b19aacd4c483ed",
|
||||
"jsonFile" : "target-HydraEngine-RelWithDebInfo-1179a3c8def17db9efd4.json",
|
||||
"jsonFile" : "target-HydraEngine-RelWithDebInfo-800c6fa211e5ae182b46.json",
|
||||
"name" : "HydraEngine",
|
||||
"projectIndex" : 1
|
||||
},
|
||||
+2
-2
@@ -27,7 +27,7 @@
|
||||
"objects" :
|
||||
[
|
||||
{
|
||||
"jsonFile" : "codemodel-v2-2319b378636e3c742c14.json",
|
||||
"jsonFile" : "codemodel-v2-ccd34cf25146cac2c39e.json",
|
||||
"kind" : "codemodel",
|
||||
"version" :
|
||||
{
|
||||
@@ -100,7 +100,7 @@
|
||||
}
|
||||
},
|
||||
{
|
||||
"jsonFile" : "codemodel-v2-2319b378636e3c742c14.json",
|
||||
"jsonFile" : "codemodel-v2-ccd34cf25146cac2c39e.json",
|
||||
"kind" : "codemodel",
|
||||
"version" :
|
||||
{
|
||||
+4
-4
@@ -22,10 +22,10 @@
|
||||
"dependencies" :
|
||||
[
|
||||
{
|
||||
"id" : "HydraEngine::@fafd37b19aacd4c483ed"
|
||||
"id" : "HydraClient::@6890427a1f51a3e7e1df"
|
||||
},
|
||||
{
|
||||
"id" : "HydraClient::@6890427a1f51a3e7e1df"
|
||||
"id" : "HydraEngine::@fafd37b19aacd4c483ed"
|
||||
},
|
||||
{
|
||||
"id" : "ZERO_CHECK::@6890427a1f51a3e7e1df"
|
||||
@@ -41,10 +41,10 @@
|
||||
"orderDependencies" :
|
||||
[
|
||||
{
|
||||
"id" : "HydraEngine::@fafd37b19aacd4c483ed"
|
||||
"id" : "HydraClient::@6890427a1f51a3e7e1df"
|
||||
},
|
||||
{
|
||||
"id" : "HydraClient::@6890427a1f51a3e7e1df"
|
||||
"id" : "HydraEngine::@fafd37b19aacd4c483ed"
|
||||
}
|
||||
],
|
||||
"paths" :
|
||||
+4
-4
@@ -22,10 +22,10 @@
|
||||
"dependencies" :
|
||||
[
|
||||
{
|
||||
"id" : "HydraEngine::@fafd37b19aacd4c483ed"
|
||||
"id" : "HydraClient::@6890427a1f51a3e7e1df"
|
||||
},
|
||||
{
|
||||
"id" : "HydraClient::@6890427a1f51a3e7e1df"
|
||||
"id" : "HydraEngine::@fafd37b19aacd4c483ed"
|
||||
},
|
||||
{
|
||||
"id" : "ZERO_CHECK::@6890427a1f51a3e7e1df"
|
||||
@@ -41,10 +41,10 @@
|
||||
"orderDependencies" :
|
||||
[
|
||||
{
|
||||
"id" : "HydraEngine::@fafd37b19aacd4c483ed"
|
||||
"id" : "HydraClient::@6890427a1f51a3e7e1df"
|
||||
},
|
||||
{
|
||||
"id" : "HydraClient::@6890427a1f51a3e7e1df"
|
||||
"id" : "HydraEngine::@fafd37b19aacd4c483ed"
|
||||
}
|
||||
],
|
||||
"paths" :
|
||||
+4
-4
@@ -22,10 +22,10 @@
|
||||
"dependencies" :
|
||||
[
|
||||
{
|
||||
"id" : "HydraEngine::@fafd37b19aacd4c483ed"
|
||||
"id" : "HydraClient::@6890427a1f51a3e7e1df"
|
||||
},
|
||||
{
|
||||
"id" : "HydraClient::@6890427a1f51a3e7e1df"
|
||||
"id" : "HydraEngine::@fafd37b19aacd4c483ed"
|
||||
},
|
||||
{
|
||||
"id" : "ZERO_CHECK::@6890427a1f51a3e7e1df"
|
||||
@@ -41,10 +41,10 @@
|
||||
"orderDependencies" :
|
||||
[
|
||||
{
|
||||
"id" : "HydraEngine::@fafd37b19aacd4c483ed"
|
||||
"id" : "HydraClient::@6890427a1f51a3e7e1df"
|
||||
},
|
||||
{
|
||||
"id" : "HydraClient::@6890427a1f51a3e7e1df"
|
||||
"id" : "HydraEngine::@fafd37b19aacd4c483ed"
|
||||
}
|
||||
],
|
||||
"paths" :
|
||||
+4
-4
@@ -22,10 +22,10 @@
|
||||
"dependencies" :
|
||||
[
|
||||
{
|
||||
"id" : "HydraEngine::@fafd37b19aacd4c483ed"
|
||||
"id" : "HydraClient::@6890427a1f51a3e7e1df"
|
||||
},
|
||||
{
|
||||
"id" : "HydraClient::@6890427a1f51a3e7e1df"
|
||||
"id" : "HydraEngine::@fafd37b19aacd4c483ed"
|
||||
},
|
||||
{
|
||||
"id" : "ZERO_CHECK::@6890427a1f51a3e7e1df"
|
||||
@@ -41,10 +41,10 @@
|
||||
"orderDependencies" :
|
||||
[
|
||||
{
|
||||
"id" : "HydraEngine::@fafd37b19aacd4c483ed"
|
||||
"id" : "HydraClient::@6890427a1f51a3e7e1df"
|
||||
},
|
||||
{
|
||||
"id" : "HydraClient::@6890427a1f51a3e7e1df"
|
||||
"id" : "HydraEngine::@fafd37b19aacd4c483ed"
|
||||
}
|
||||
],
|
||||
"paths" :
|
||||
+93
-87
@@ -203,35 +203,35 @@
|
||||
24,
|
||||
27,
|
||||
30,
|
||||
32,
|
||||
36,
|
||||
38,
|
||||
42,
|
||||
46,
|
||||
48,
|
||||
58,
|
||||
60,
|
||||
62,
|
||||
64,
|
||||
66,
|
||||
68,
|
||||
70,
|
||||
72,
|
||||
74,
|
||||
76,
|
||||
78,
|
||||
81,
|
||||
84,
|
||||
86,
|
||||
88,
|
||||
90,
|
||||
92,
|
||||
94,
|
||||
96,
|
||||
98,
|
||||
100,
|
||||
102,
|
||||
106
|
||||
33,
|
||||
37,
|
||||
39,
|
||||
43,
|
||||
47,
|
||||
49,
|
||||
59,
|
||||
61,
|
||||
63,
|
||||
65,
|
||||
67,
|
||||
69,
|
||||
71,
|
||||
73,
|
||||
75,
|
||||
77,
|
||||
79,
|
||||
82,
|
||||
85,
|
||||
87,
|
||||
89,
|
||||
91,
|
||||
93,
|
||||
95,
|
||||
97,
|
||||
99,
|
||||
101,
|
||||
103,
|
||||
107
|
||||
]
|
||||
}
|
||||
],
|
||||
@@ -322,35 +322,35 @@
|
||||
24,
|
||||
27,
|
||||
30,
|
||||
32,
|
||||
36,
|
||||
38,
|
||||
42,
|
||||
46,
|
||||
48,
|
||||
58,
|
||||
60,
|
||||
62,
|
||||
64,
|
||||
66,
|
||||
68,
|
||||
70,
|
||||
72,
|
||||
74,
|
||||
76,
|
||||
78,
|
||||
81,
|
||||
84,
|
||||
86,
|
||||
88,
|
||||
90,
|
||||
92,
|
||||
94,
|
||||
96,
|
||||
98,
|
||||
100,
|
||||
102,
|
||||
106
|
||||
33,
|
||||
37,
|
||||
39,
|
||||
43,
|
||||
47,
|
||||
49,
|
||||
59,
|
||||
61,
|
||||
63,
|
||||
65,
|
||||
67,
|
||||
69,
|
||||
71,
|
||||
73,
|
||||
75,
|
||||
77,
|
||||
79,
|
||||
82,
|
||||
85,
|
||||
87,
|
||||
89,
|
||||
91,
|
||||
93,
|
||||
95,
|
||||
97,
|
||||
99,
|
||||
101,
|
||||
103,
|
||||
107
|
||||
]
|
||||
},
|
||||
{
|
||||
@@ -376,18 +376,18 @@
|
||||
28,
|
||||
29,
|
||||
31,
|
||||
33,
|
||||
32,
|
||||
34,
|
||||
35,
|
||||
37,
|
||||
39,
|
||||
36,
|
||||
38,
|
||||
40,
|
||||
41,
|
||||
43,
|
||||
42,
|
||||
44,
|
||||
45,
|
||||
47,
|
||||
49,
|
||||
46,
|
||||
48,
|
||||
50,
|
||||
51,
|
||||
52,
|
||||
@@ -396,33 +396,34 @@
|
||||
55,
|
||||
56,
|
||||
57,
|
||||
59,
|
||||
61,
|
||||
63,
|
||||
65,
|
||||
67,
|
||||
69,
|
||||
71,
|
||||
73,
|
||||
75,
|
||||
77,
|
||||
79,
|
||||
58,
|
||||
60,
|
||||
62,
|
||||
64,
|
||||
66,
|
||||
68,
|
||||
70,
|
||||
72,
|
||||
74,
|
||||
76,
|
||||
78,
|
||||
80,
|
||||
82,
|
||||
81,
|
||||
83,
|
||||
85,
|
||||
87,
|
||||
89,
|
||||
91,
|
||||
93,
|
||||
95,
|
||||
97,
|
||||
99,
|
||||
101,
|
||||
103,
|
||||
84,
|
||||
86,
|
||||
88,
|
||||
90,
|
||||
92,
|
||||
94,
|
||||
96,
|
||||
98,
|
||||
100,
|
||||
102,
|
||||
104,
|
||||
105,
|
||||
107
|
||||
106,
|
||||
108
|
||||
]
|
||||
}
|
||||
],
|
||||
@@ -601,6 +602,11 @@
|
||||
"path" : "HydraEngine/source/buffer/HydraMaterialBufferManager.h",
|
||||
"sourceGroupIndex" : 1
|
||||
},
|
||||
{
|
||||
"backtrace" : 1,
|
||||
"path" : "HydraEngine/source/buffer/HydraShadowBuffer.h",
|
||||
"sourceGroupIndex" : 1
|
||||
},
|
||||
{
|
||||
"backtrace" : 1,
|
||||
"compileGroupIndex" : 0,
|
||||
+93
-87
@@ -203,35 +203,35 @@
|
||||
24,
|
||||
27,
|
||||
30,
|
||||
32,
|
||||
36,
|
||||
38,
|
||||
42,
|
||||
46,
|
||||
48,
|
||||
58,
|
||||
60,
|
||||
62,
|
||||
64,
|
||||
66,
|
||||
68,
|
||||
70,
|
||||
72,
|
||||
74,
|
||||
76,
|
||||
78,
|
||||
81,
|
||||
84,
|
||||
86,
|
||||
88,
|
||||
90,
|
||||
92,
|
||||
94,
|
||||
96,
|
||||
98,
|
||||
100,
|
||||
102,
|
||||
106
|
||||
33,
|
||||
37,
|
||||
39,
|
||||
43,
|
||||
47,
|
||||
49,
|
||||
59,
|
||||
61,
|
||||
63,
|
||||
65,
|
||||
67,
|
||||
69,
|
||||
71,
|
||||
73,
|
||||
75,
|
||||
77,
|
||||
79,
|
||||
82,
|
||||
85,
|
||||
87,
|
||||
89,
|
||||
91,
|
||||
93,
|
||||
95,
|
||||
97,
|
||||
99,
|
||||
101,
|
||||
103,
|
||||
107
|
||||
]
|
||||
}
|
||||
],
|
||||
@@ -322,35 +322,35 @@
|
||||
24,
|
||||
27,
|
||||
30,
|
||||
32,
|
||||
36,
|
||||
38,
|
||||
42,
|
||||
46,
|
||||
48,
|
||||
58,
|
||||
60,
|
||||
62,
|
||||
64,
|
||||
66,
|
||||
68,
|
||||
70,
|
||||
72,
|
||||
74,
|
||||
76,
|
||||
78,
|
||||
81,
|
||||
84,
|
||||
86,
|
||||
88,
|
||||
90,
|
||||
92,
|
||||
94,
|
||||
96,
|
||||
98,
|
||||
100,
|
||||
102,
|
||||
106
|
||||
33,
|
||||
37,
|
||||
39,
|
||||
43,
|
||||
47,
|
||||
49,
|
||||
59,
|
||||
61,
|
||||
63,
|
||||
65,
|
||||
67,
|
||||
69,
|
||||
71,
|
||||
73,
|
||||
75,
|
||||
77,
|
||||
79,
|
||||
82,
|
||||
85,
|
||||
87,
|
||||
89,
|
||||
91,
|
||||
93,
|
||||
95,
|
||||
97,
|
||||
99,
|
||||
101,
|
||||
103,
|
||||
107
|
||||
]
|
||||
},
|
||||
{
|
||||
@@ -376,18 +376,18 @@
|
||||
28,
|
||||
29,
|
||||
31,
|
||||
33,
|
||||
32,
|
||||
34,
|
||||
35,
|
||||
37,
|
||||
39,
|
||||
36,
|
||||
38,
|
||||
40,
|
||||
41,
|
||||
43,
|
||||
42,
|
||||
44,
|
||||
45,
|
||||
47,
|
||||
49,
|
||||
46,
|
||||
48,
|
||||
50,
|
||||
51,
|
||||
52,
|
||||
@@ -396,33 +396,34 @@
|
||||
55,
|
||||
56,
|
||||
57,
|
||||
59,
|
||||
61,
|
||||
63,
|
||||
65,
|
||||
67,
|
||||
69,
|
||||
71,
|
||||
73,
|
||||
75,
|
||||
77,
|
||||
79,
|
||||
58,
|
||||
60,
|
||||
62,
|
||||
64,
|
||||
66,
|
||||
68,
|
||||
70,
|
||||
72,
|
||||
74,
|
||||
76,
|
||||
78,
|
||||
80,
|
||||
82,
|
||||
81,
|
||||
83,
|
||||
85,
|
||||
87,
|
||||
89,
|
||||
91,
|
||||
93,
|
||||
95,
|
||||
97,
|
||||
99,
|
||||
101,
|
||||
103,
|
||||
84,
|
||||
86,
|
||||
88,
|
||||
90,
|
||||
92,
|
||||
94,
|
||||
96,
|
||||
98,
|
||||
100,
|
||||
102,
|
||||
104,
|
||||
105,
|
||||
107
|
||||
106,
|
||||
108
|
||||
]
|
||||
}
|
||||
],
|
||||
@@ -601,6 +602,11 @@
|
||||
"path" : "HydraEngine/source/buffer/HydraMaterialBufferManager.h",
|
||||
"sourceGroupIndex" : 1
|
||||
},
|
||||
{
|
||||
"backtrace" : 1,
|
||||
"path" : "HydraEngine/source/buffer/HydraShadowBuffer.h",
|
||||
"sourceGroupIndex" : 1
|
||||
},
|
||||
{
|
||||
"backtrace" : 1,
|
||||
"compileGroupIndex" : 0,
|
||||
+93
-87
@@ -203,35 +203,35 @@
|
||||
24,
|
||||
27,
|
||||
30,
|
||||
32,
|
||||
36,
|
||||
38,
|
||||
42,
|
||||
46,
|
||||
48,
|
||||
58,
|
||||
60,
|
||||
62,
|
||||
64,
|
||||
66,
|
||||
68,
|
||||
70,
|
||||
72,
|
||||
74,
|
||||
76,
|
||||
78,
|
||||
81,
|
||||
84,
|
||||
86,
|
||||
88,
|
||||
90,
|
||||
92,
|
||||
94,
|
||||
96,
|
||||
98,
|
||||
100,
|
||||
102,
|
||||
106
|
||||
33,
|
||||
37,
|
||||
39,
|
||||
43,
|
||||
47,
|
||||
49,
|
||||
59,
|
||||
61,
|
||||
63,
|
||||
65,
|
||||
67,
|
||||
69,
|
||||
71,
|
||||
73,
|
||||
75,
|
||||
77,
|
||||
79,
|
||||
82,
|
||||
85,
|
||||
87,
|
||||
89,
|
||||
91,
|
||||
93,
|
||||
95,
|
||||
97,
|
||||
99,
|
||||
101,
|
||||
103,
|
||||
107
|
||||
]
|
||||
}
|
||||
],
|
||||
@@ -322,35 +322,35 @@
|
||||
24,
|
||||
27,
|
||||
30,
|
||||
32,
|
||||
36,
|
||||
38,
|
||||
42,
|
||||
46,
|
||||
48,
|
||||
58,
|
||||
60,
|
||||
62,
|
||||
64,
|
||||
66,
|
||||
68,
|
||||
70,
|
||||
72,
|
||||
74,
|
||||
76,
|
||||
78,
|
||||
81,
|
||||
84,
|
||||
86,
|
||||
88,
|
||||
90,
|
||||
92,
|
||||
94,
|
||||
96,
|
||||
98,
|
||||
100,
|
||||
102,
|
||||
106
|
||||
33,
|
||||
37,
|
||||
39,
|
||||
43,
|
||||
47,
|
||||
49,
|
||||
59,
|
||||
61,
|
||||
63,
|
||||
65,
|
||||
67,
|
||||
69,
|
||||
71,
|
||||
73,
|
||||
75,
|
||||
77,
|
||||
79,
|
||||
82,
|
||||
85,
|
||||
87,
|
||||
89,
|
||||
91,
|
||||
93,
|
||||
95,
|
||||
97,
|
||||
99,
|
||||
101,
|
||||
103,
|
||||
107
|
||||
]
|
||||
},
|
||||
{
|
||||
@@ -376,18 +376,18 @@
|
||||
28,
|
||||
29,
|
||||
31,
|
||||
33,
|
||||
32,
|
||||
34,
|
||||
35,
|
||||
37,
|
||||
39,
|
||||
36,
|
||||
38,
|
||||
40,
|
||||
41,
|
||||
43,
|
||||
42,
|
||||
44,
|
||||
45,
|
||||
47,
|
||||
49,
|
||||
46,
|
||||
48,
|
||||
50,
|
||||
51,
|
||||
52,
|
||||
@@ -396,33 +396,34 @@
|
||||
55,
|
||||
56,
|
||||
57,
|
||||
59,
|
||||
61,
|
||||
63,
|
||||
65,
|
||||
67,
|
||||
69,
|
||||
71,
|
||||
73,
|
||||
75,
|
||||
77,
|
||||
79,
|
||||
58,
|
||||
60,
|
||||
62,
|
||||
64,
|
||||
66,
|
||||
68,
|
||||
70,
|
||||
72,
|
||||
74,
|
||||
76,
|
||||
78,
|
||||
80,
|
||||
82,
|
||||
81,
|
||||
83,
|
||||
85,
|
||||
87,
|
||||
89,
|
||||
91,
|
||||
93,
|
||||
95,
|
||||
97,
|
||||
99,
|
||||
101,
|
||||
103,
|
||||
84,
|
||||
86,
|
||||
88,
|
||||
90,
|
||||
92,
|
||||
94,
|
||||
96,
|
||||
98,
|
||||
100,
|
||||
102,
|
||||
104,
|
||||
105,
|
||||
107
|
||||
106,
|
||||
108
|
||||
]
|
||||
}
|
||||
],
|
||||
@@ -601,6 +602,11 @@
|
||||
"path" : "HydraEngine/source/buffer/HydraMaterialBufferManager.h",
|
||||
"sourceGroupIndex" : 1
|
||||
},
|
||||
{
|
||||
"backtrace" : 1,
|
||||
"path" : "HydraEngine/source/buffer/HydraShadowBuffer.h",
|
||||
"sourceGroupIndex" : 1
|
||||
},
|
||||
{
|
||||
"backtrace" : 1,
|
||||
"compileGroupIndex" : 0,
|
||||
+93
-87
@@ -203,35 +203,35 @@
|
||||
24,
|
||||
27,
|
||||
30,
|
||||
32,
|
||||
36,
|
||||
38,
|
||||
42,
|
||||
46,
|
||||
48,
|
||||
58,
|
||||
60,
|
||||
62,
|
||||
64,
|
||||
66,
|
||||
68,
|
||||
70,
|
||||
72,
|
||||
74,
|
||||
76,
|
||||
78,
|
||||
81,
|
||||
84,
|
||||
86,
|
||||
88,
|
||||
90,
|
||||
92,
|
||||
94,
|
||||
96,
|
||||
98,
|
||||
100,
|
||||
102,
|
||||
106
|
||||
33,
|
||||
37,
|
||||
39,
|
||||
43,
|
||||
47,
|
||||
49,
|
||||
59,
|
||||
61,
|
||||
63,
|
||||
65,
|
||||
67,
|
||||
69,
|
||||
71,
|
||||
73,
|
||||
75,
|
||||
77,
|
||||
79,
|
||||
82,
|
||||
85,
|
||||
87,
|
||||
89,
|
||||
91,
|
||||
93,
|
||||
95,
|
||||
97,
|
||||
99,
|
||||
101,
|
||||
103,
|
||||
107
|
||||
]
|
||||
}
|
||||
],
|
||||
@@ -322,35 +322,35 @@
|
||||
24,
|
||||
27,
|
||||
30,
|
||||
32,
|
||||
36,
|
||||
38,
|
||||
42,
|
||||
46,
|
||||
48,
|
||||
58,
|
||||
60,
|
||||
62,
|
||||
64,
|
||||
66,
|
||||
68,
|
||||
70,
|
||||
72,
|
||||
74,
|
||||
76,
|
||||
78,
|
||||
81,
|
||||
84,
|
||||
86,
|
||||
88,
|
||||
90,
|
||||
92,
|
||||
94,
|
||||
96,
|
||||
98,
|
||||
100,
|
||||
102,
|
||||
106
|
||||
33,
|
||||
37,
|
||||
39,
|
||||
43,
|
||||
47,
|
||||
49,
|
||||
59,
|
||||
61,
|
||||
63,
|
||||
65,
|
||||
67,
|
||||
69,
|
||||
71,
|
||||
73,
|
||||
75,
|
||||
77,
|
||||
79,
|
||||
82,
|
||||
85,
|
||||
87,
|
||||
89,
|
||||
91,
|
||||
93,
|
||||
95,
|
||||
97,
|
||||
99,
|
||||
101,
|
||||
103,
|
||||
107
|
||||
]
|
||||
},
|
||||
{
|
||||
@@ -376,18 +376,18 @@
|
||||
28,
|
||||
29,
|
||||
31,
|
||||
33,
|
||||
32,
|
||||
34,
|
||||
35,
|
||||
37,
|
||||
39,
|
||||
36,
|
||||
38,
|
||||
40,
|
||||
41,
|
||||
43,
|
||||
42,
|
||||
44,
|
||||
45,
|
||||
47,
|
||||
49,
|
||||
46,
|
||||
48,
|
||||
50,
|
||||
51,
|
||||
52,
|
||||
@@ -396,33 +396,34 @@
|
||||
55,
|
||||
56,
|
||||
57,
|
||||
59,
|
||||
61,
|
||||
63,
|
||||
65,
|
||||
67,
|
||||
69,
|
||||
71,
|
||||
73,
|
||||
75,
|
||||
77,
|
||||
79,
|
||||
58,
|
||||
60,
|
||||
62,
|
||||
64,
|
||||
66,
|
||||
68,
|
||||
70,
|
||||
72,
|
||||
74,
|
||||
76,
|
||||
78,
|
||||
80,
|
||||
82,
|
||||
81,
|
||||
83,
|
||||
85,
|
||||
87,
|
||||
89,
|
||||
91,
|
||||
93,
|
||||
95,
|
||||
97,
|
||||
99,
|
||||
101,
|
||||
103,
|
||||
84,
|
||||
86,
|
||||
88,
|
||||
90,
|
||||
92,
|
||||
94,
|
||||
96,
|
||||
98,
|
||||
100,
|
||||
102,
|
||||
104,
|
||||
105,
|
||||
107
|
||||
106,
|
||||
108
|
||||
]
|
||||
}
|
||||
],
|
||||
@@ -601,6 +602,11 @@
|
||||
"path" : "HydraEngine/source/buffer/HydraMaterialBufferManager.h",
|
||||
"sourceGroupIndex" : 1
|
||||
},
|
||||
{
|
||||
"backtrace" : 1,
|
||||
"path" : "HydraEngine/source/buffer/HydraShadowBuffer.h",
|
||||
"sourceGroupIndex" : 1
|
||||
},
|
||||
{
|
||||
"backtrace" : 1,
|
||||
"compileGroupIndex" : 0,
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -457,6 +457,7 @@ if %errorlevel% neq 0 goto :VCEnd</Command>
|
||||
<ClInclude Include="C:\Code\HydraV3\HydraEngine\source\buffer\HydraMaterialBuffer.h" />
|
||||
<ClCompile Include="C:\Code\HydraV3\HydraEngine\source\buffer\HydraMaterialBufferManager.cpp" />
|
||||
<ClInclude Include="C:\Code\HydraV3\HydraEngine\source\buffer\HydraMaterialBufferManager.h" />
|
||||
<ClInclude Include="C:\Code\HydraV3\HydraEngine\source\buffer\HydraShadowBuffer.h" />
|
||||
<ClCompile Include="C:\Code\HydraV3\HydraEngine\source\buffer\HydraTextureBufferManager.cpp" />
|
||||
<ClInclude Include="C:\Code\HydraV3\HydraEngine\source\buffer\HydraTextureBufferManager.h" />
|
||||
<ClInclude Include="C:\Code\HydraV3\HydraEngine\source\buffer\HydraTexureBuffer.h" />
|
||||
|
||||
@@ -186,6 +186,9 @@
|
||||
<ClInclude Include="C:\Code\HydraV3\HydraEngine\source\buffer\HydraMaterialBufferManager.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="C:\Code\HydraV3\HydraEngine\source\buffer\HydraShadowBuffer.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="C:\Code\HydraV3\HydraEngine\source\buffer\HydraTextureBufferManager.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
================================================================================
|
||||
Linker Errors
|
||||
Generated: 2026-07-27T23:22:14.073Z
|
||||
Generated: 2026-07-28T12:58:05.588Z
|
||||
Total Errors: 1
|
||||
================================================================================
|
||||
|
||||
|
||||
Reference in New Issue
Block a user