diff --git a/HydraClient/source/HydraGame.cpp b/HydraClient/source/HydraGame.cpp index 3cca47b..c3e1556 100644 --- a/HydraClient/source/HydraGame.cpp +++ b/HydraClient/source/HydraGame.cpp @@ -9,14 +9,14 @@ bool HydraGame::Initialise() // GetEngine()->ActorManager()->SetOrientation(m_sun_light_id, -0.5f, 0.0f, 0.0f); // GetEngine()->ActorManager()->SetPosition(m_sun_light_id, glm::dvec3(0.0f, 4.0f, 10.0f)); - m_sun_light_id = GetEngine()->ActorManager()->CreateActor(); - GetEngine()->ActorManager()->InitialiseActor(m_sun_light_id); - GetEngine()->ActorManager()->SetOrientation(m_sun_light_id, -0.5f, 0.0f, 0.0f); + // m_sun_light_id = GetEngine()->ActorManager()->CreateActor(); + // GetEngine()->ActorManager()->InitialiseActor(m_sun_light_id); + // GetEngine()->ActorManager()->SetOrientation(m_sun_light_id, -0.5f, -0.2f, 0.0f); - m_other_light_id = GetEngine()->ActorManager()->CreateActor(); + m_other_light_id = GetEngine()->ActorManager()->CreateActor(); GetEngine()->ActorManager()->InitialiseActor(m_other_light_id); - GetEngine()->ActorManager()->SetOrientation(m_other_light_id, -0.5f, 0.0f, 0.0f); + // GetEngine()->ActorManager()->SetOrientation(m_other_light_id, -0.7f, 0.0f, 0.0f); GetEngine()->ActorManager()->SetPosition(m_other_light_id, glm::dvec3(0.0f, 4.0f, 5.0f)); // m_other_light_id = GetEngine()->ActorManager()->CreateActor(); @@ -70,7 +70,7 @@ void HydraGame::Update(float delta_t_seconds) // } m_angle += m_diff; - // GetEngine()->ActorManager()->SetOrientation(m_other_light_id, -0.5f, m_angle/2.0f, 0); + //GetEngine()->ActorManager()->SetOrientation(m_other_light_id, -0.5f, m_angle, 0); // GetEngine()->ActorManager()->SetOrientation(m_gltf_id, 0, m_angle, 0); // GetEngine()->ActorManager()->SetOrientation(m_plane_actor_id, 0, m_angle, 0); } \ No newline at end of file diff --git a/HydraEngine/source/HydraDefines.h b/HydraEngine/source/HydraDefines.h index 2d14b0d..5425cbd 100644 --- a/HydraEngine/source/HydraDefines.h +++ b/HydraEngine/source/HydraDefines.h @@ -41,7 +41,8 @@ const uint32_t MAX_MATERIALS = 1000; const uint32_t MAX_TEXTURES = 1000; const uint32_t MAX_ACTORS = 10000; const uint32_t MAX_LIGHTS = 500; -const uint32_t MAX_SHADOWS = 10; +const uint32_t MAX_DIRECTIONAL_SHADOWS = 10; +const uint32_t MAX_SPOT_SHADOWS = 10; const uint32_t SHADOW_MAP_SIZE = 4096; diff --git a/HydraEngine/source/ShaderFiles/deferred_output_shader.frag b/HydraEngine/source/ShaderFiles/deferred_output_shader.frag index 38b6220..de1d197 100644 --- a/HydraEngine/source/ShaderFiles/deferred_output_shader.frag +++ b/HydraEngine/source/ShaderFiles/deferred_output_shader.frag @@ -35,10 +35,10 @@ struct LightStructure uint padding1; }; -struct ShadowMapSet +struct DirectionalShadowMapSet { uint entity_id; - uint cascade_count; + uint shadow_id; uint shadow_texture_id; uint frame_buffer_id; float near_plane[8]; @@ -47,6 +47,17 @@ struct ShadowMapSet mat4 light_space_view[6]; }; +struct SpotShadowMapSet +{ + uint entity_id; + uint shadow_id; + uint shadow_texture_id; + uint frame_buffer_id; + float far_plane; + uint padding[3]; + mat4 light_space_proj; + mat4 light_space_view; +}; layout(binding = 0) uniform uniform_per_frame { @@ -76,12 +87,15 @@ layout (std430, binding = 4) readonly buffer light_buffer LightStructure lights[500]; }; -layout (std430, binding = 5) readonly buffer shadow_map_sets +layout (std430, binding = 5) readonly buffer directional_shadow_map_sets { - ShadowMapSet shadows[10]; + DirectionalShadowMapSet directional_shadows[]; }; - +layout (std430, binding = 6) readonly buffer spot_shadow_map_sets +{ + SpotShadowMapSet spot_shadows[]; +}; layout (location=0) in VS_OUT { vec2 vsUV; @@ -235,28 +249,27 @@ vec3 SpotShading(vec3 normal, float light_linear, float light_quadratic, vec3 world_pos, - vec3 view_pos) + vec3 view_pos, + float shadow_val) { vec3 direction_to_light = normalize(light_pos - world_pos); float theta = dot(direction_to_light, light_dir); float falloff = 0.0f; - // if(theta > cutoff) - // { - float epsilon = cutoff - cutoff_outer; - falloff = clamp((theta - cutoff_outer) / epsilon, 0.0, 1.0); + float epsilon = cutoff - cutoff_outer; - //} + falloff = clamp((theta - cutoff_outer) / epsilon, 0.0, 1.0); float distance = length(light_pos - world_pos); float attenuation = 1.0; attenuation = light_intensity / (light_constant + (light_linear * distance) + (light_quadratic * distance * distance)); - vec3 radiance = diffuse * attenuation * falloff; + + vec3 radiance = diffuse * attenuation * falloff * (1.0-shadow_val); vec3 Lo = CalculatePBR(normal, view_pos, world_pos, direction_to_light, diffuse, radiance, roughness, metallic); - return Lo; + return Lo;// * shadow; } mat3 GetRotationOnlyMatrix(mat4 model_mat) @@ -284,7 +297,7 @@ float SimpleSampleShadow(vec4 frag_clip_space, sampler2DArray sampler_shadow_map return 1; } -float SampleShadow(vec4 frag_clip_space, sampler2DArray sampler_shadow_map, uint shadow_trans_idx, vec3 normal, vec3 light_dir) +float SampleCascadeShadow(vec4 frag_clip_space, sampler2DArray sampler_shadow_map, uint shadow_trans_idx, vec3 normal, vec3 light_dir) { vec3 frag_light_space = frag_clip_space.xyz / frag_clip_space.w; frag_light_space = (frag_light_space * 0.5) + 0.5; @@ -319,6 +332,41 @@ float SampleShadow(vec4 frag_clip_space, sampler2DArray sampler_shadow_map, uint return shadow; } + +float SampleSingleShadow(vec4 frag_clip_space, sampler2D sampler_shadow_map, vec3 normal, vec3 light_dir) +{ + vec3 frag_light_space = frag_clip_space.xyz / frag_clip_space.w; + frag_light_space = (frag_light_space * 0.5) + 0.5; + + float shadow_map_depth = texture(sampler_shadow_map, frag_light_space.xy).r; + // calculate bias (based on depth map resolution and slope) + + float bias = max(0.00005 * (1.0 - dot(normal, light_dir)), 0.000005); + // check whether current frag pos is in shadow + // float shadow = currentDepth - bias > closestDepth ? 1.0 : 0.0; + // PCF + //bias = 0; + float shadow = 0.0; + vec2 texel_size = 1.0 / textureSize(sampler_shadow_map, 0).xy; + if((frag_light_space.x >= 0.0)&&(frag_light_space.y >= 0.0) + &&(frag_light_space.x <= 1.0)&&(frag_light_space.y <= 1.0)) + { + for(int x = -1; x <= 1; ++x) + { + for(int y = -1; y <= 1; ++y) + { + shadow_map_depth = texture(sampler_shadow_map, frag_light_space.xy + vec2(x, y) * texel_size).r; + shadow += frag_light_space.z - bias > shadow_map_depth ? 1.0 : 0.0; + } + } + shadow /= 9.0; + } + // keep the shadow at 0.0 when outside the far_plane region of the light's frustum. + if(frag_light_space.z > 1.0) + shadow = 0.0; + + return shadow; +} vec3 CalculateDirectionalShadow(vec4 world_pos, uint shadow_idx, vec3 normal, vec3 light_dir, vec3 viewer_pos) { float shadow = 1; @@ -326,12 +374,12 @@ vec3 CalculateDirectionalShadow(vec4 world_pos, uint shadow_idx, vec3 normal, ve //measure the distance of the fragment from the light float frag_distance = abs(length(viewer_pos - world_pos.xyz)); - uint shadow_trans_idx = 6; + uint shadow_trans_idx = 5; uint ignore_shadow = 0; //Work out which shadowmap is appropriate for this distance for(uint i = 0; i < 6; i++) { - if(frag_distance <= shadows[shadow_idx].far_plane[i]) + if(frag_distance <= directional_shadows[shadow_idx].far_plane[i]) { //record the shadow map level shadow_trans_idx = i; @@ -343,39 +391,30 @@ vec3 CalculateDirectionalShadow(vec4 world_pos, uint shadow_idx, vec3 normal, ve if(ignore_shadow == 1) { - vec4 translated_pixel = shadows[shadow_idx].light_space_proj[shadow_trans_idx] * - shadows[shadow_idx].light_space_view[shadow_trans_idx] * + vec4 translated_pixel = directional_shadows[shadow_idx].light_space_proj[shadow_trans_idx] * + directional_shadows[shadow_idx].light_space_view[shadow_trans_idx] * world_pos; - uvec2 shadow_handle = textures[shadows[shadow_idx].shadow_texture_id]; - shadow = 1.0 - SampleShadow(translated_pixel, sampler2DArray(shadow_handle), shadow_trans_idx, normal, light_dir); + uvec2 shadow_handle = textures[directional_shadows[shadow_idx].shadow_texture_id]; + shadow = 1.0 - SampleCascadeShadow(translated_pixel, sampler2DArray(shadow_handle), shadow_trans_idx, normal, light_dir); } return vec3(shadow); - - if(shadow_trans_idx == 0) - { - return vec3(1,0,0) * shadow; - } - if(shadow_trans_idx == 1) - { - return vec3(1,1,0) * shadow; - } - if(shadow_trans_idx == 2) - { - return vec3(0.5,0.5,1) * shadow; - } - if(shadow_trans_idx == 3) - { - return vec3(1,0,1) * shadow; - } - if(shadow_trans_idx == 4) - { - return vec3(1,1,1) * shadow; - } - return vec3(0,1,1) * shadow; } +float CalculateSpotShadow(vec4 world_pos, uint shadow_idx, vec3 normal, vec3 light_dir, vec3 viewer_pos) +{ + vec4 translated_pixel = spot_shadows[shadow_idx].light_space_proj * + spot_shadows[shadow_idx].light_space_view * + world_pos; + + uvec2 shadow_handle = textures[spot_shadows[shadow_idx].shadow_texture_id]; + + float shadow =(SampleSingleShadow(translated_pixel, sampler2D(shadow_handle), normal, light_dir)); + + return shadow; +} + void main() { uvec2 diffuse_handle = textures[texture_ids[DIFFUSE_TEXTURE_ID]]; @@ -431,6 +470,16 @@ void main() } else if(lights[i].light_type == HYDRA_LIGHT_SPOT) { + float shadow = 0; + if(lights[i].shadow_caster == 1) + { + float distance = length(light_pos - world_pos); + shadow = CalculateSpotShadow(vec4(world_pos, 1.0), + lights[i].shadow_map_id, + normal, + light_direction, + ubo_per_frame.viewer_pos); + } Lo += SpotShading(normal, diffuse.xyz, rough, @@ -444,16 +493,15 @@ void main() lights[i].linear, lights[i].quadratic, world_pos, - ubo_per_frame.viewer_pos); + ubo_per_frame.viewer_pos, + shadow); + + } } float lighting = 0; - // ambient lighting (note that the next IBL tutorial will replace - // this ambient lighting with environment lighting). - - vec3 output_color = Lo; // HDR tonemapping diff --git a/HydraEngine/source/ShaderFiles/shadow_cascade_shader.frag b/HydraEngine/source/ShaderFiles/shadow_cascade_shader.frag index 9688f5a..83faf8e 100644 --- a/HydraEngine/source/ShaderFiles/shadow_cascade_shader.frag +++ b/HydraEngine/source/ShaderFiles/shadow_cascade_shader.frag @@ -59,8 +59,5 @@ void main() discard; output_colour = vec4(0,1,1,1); } - // Calculate the accurate, unclamped distance from the light source - // output_colour = diffuse_val; - // output_colour = vec4(geom_out.vsUV, 1,1); } diff --git a/HydraEngine/source/ShaderFiles/shadow_cascade_shader.geom b/HydraEngine/source/ShaderFiles/shadow_cascade_shader.geom index d5ea3ad..156b93f 100644 --- a/HydraEngine/source/ShaderFiles/shadow_cascade_shader.geom +++ b/HydraEngine/source/ShaderFiles/shadow_cascade_shader.geom @@ -3,10 +3,10 @@ layout(triangles, invocations = 6) in; layout(triangle_strip, max_vertices = 3) out; -struct ShadowMapSet +struct DirectionalShadowMapSet { uint entity_id; - uint cascade_count; + uint shadow_id; uint shadow_texture_id; uint frame_buffer_id; float near_plane[8]; @@ -14,7 +14,8 @@ struct ShadowMapSet mat4 light_space_proj[6]; mat4 light_space_view[6]; }; - + + //Push constants updated for each light layout(binding = 0) uniform shadow_per_frame { @@ -22,12 +23,13 @@ layout(binding = 0) uniform shadow_per_frame uint shadow_idxs; }; -layout(std430, binding = 5) readonly buffer shadow_map_sets +layout (std430, binding = 5) readonly buffer directional_shadow_map_sets { - ShadowMapSet shadows[10]; + DirectionalShadowMapSet directional_shadows[]; }; + layout (location=0) in VS_OUT { vec2 vsUV; @@ -42,8 +44,8 @@ layout (location=0) out GEOM_OUT void main() { - mat4 view = shadows[shadow_idxs].light_space_view[gl_InvocationID]; - mat4 proj = shadows[shadow_idxs].light_space_proj[gl_InvocationID]; + mat4 view = directional_shadows[shadow_idxs].light_space_view[gl_InvocationID]; + mat4 proj = directional_shadows[shadow_idxs].light_space_proj[gl_InvocationID]; for (int i = 0; i < 3; ++i) { diff --git a/HydraEngine/source/ShaderFiles/shadow_cascade_shader.vert b/HydraEngine/source/ShaderFiles/shadow_cascade_shader.vert index 4e647ae..4ca7447 100644 --- a/HydraEngine/source/ShaderFiles/shadow_cascade_shader.vert +++ b/HydraEngine/source/ShaderFiles/shadow_cascade_shader.vert @@ -1,12 +1,37 @@ //*VERTEX* #version 460 +struct ShadowMapSet +{ + uint entity_id; + uint shadow_id; + uint shadow_texture_id; + uint frame_buffer_id; + float near_plane[8]; + float far_plane[8]; + mat4 light_space_proj[6]; + mat4 light_space_view[6]; +}; + +struct SpotShadowMapSet +{ + uint entity_id; + uint shadow_id; + uint shadow_texture_id; + uint frame_buffer_id; + float far_plane; + uint padding[3]; + mat4 light_space_proj; + mat4 light_space_view; +}; layout(binding = 1) readonly buffer positions_buffer { mat4 model_matrix[]; }; + + layout (location = 0) in vec3 inPos; //12 bytes : 0 layout (location = 1) in vec2 inUV; //8 Bytes : 12 layout (location = 2) in uvec3 inChunkID; //12 Bytes : 20 diff --git a/HydraEngine/source/ShaderFiles/shadow_spot_shader.vert b/HydraEngine/source/ShaderFiles/shadow_spot_shader.vert index 94cc02a..a3dd41d 100644 --- a/HydraEngine/source/ShaderFiles/shadow_spot_shader.vert +++ b/HydraEngine/source/ShaderFiles/shadow_spot_shader.vert @@ -2,11 +2,34 @@ #version 460 +struct SpotShadowMapSet +{ + uint entity_id; + uint shadow_id; + uint shadow_texture_id; + uint frame_buffer_id; + float far_plane; + uint padding[3]; + mat4 light_space_proj; + mat4 light_space_view; +}; + layout(binding = 1) readonly buffer positions_buffer { mat4 model_matrix[]; }; +layout (std430, binding = 6) readonly buffer spot_shadow_map_sets +{ + SpotShadowMapSet spot_shadows[]; +}; + +layout(binding = 0) uniform shadow_per_frame +{ + vec3 camera_pos; + uint shadow_idxs; +}; + layout (location = 0) in vec3 inPos; //12 bytes : 0 layout (location = 1) in vec2 inUV; //8 Bytes : 12 layout (location = 2) in uvec3 inChunkID; //12 Bytes : 20 @@ -24,7 +47,11 @@ void main() { uint chunkid = inChunkID[0]; mat4 model = model_matrix[chunkid]; - gl_Position = model * vec4(inPos, 1.0); + mat4 proj = spot_shadows[shadow_idxs].light_space_proj; + mat4 view = spot_shadows[shadow_idxs].light_space_view; + //view = mat4(1); + //proj = mat4(1); + gl_Position = proj * view * model * vec4(inPos, 1.0); vs_out.vsUV = inUV; vs_out.vsMaterialID = inChunkID[1]; } \ No newline at end of file diff --git a/HydraEngine/source/actor/HydraPointLightActor.cpp b/HydraEngine/source/actor/HydraPointLightActor.cpp index 2de16f8..95776d1 100644 --- a/HydraEngine/source/actor/HydraPointLightActor.cpp +++ b/HydraEngine/source/actor/HydraPointLightActor.cpp @@ -21,7 +21,7 @@ void HydraPointLightActor::InitialiseComponents() HydraECS *ecs = GetEngine()->ECS(); light_comp.diffuse = glm::vec4(1,1,1,1); - light_comp.intensity = 100.0f; + light_comp.intensity = 1000.0f; light_comp.light_type = static_cast(HYDRA_LIGHT_TYPE::HYDRA_LIGHT_POINT); light_comp.entity_id = GetID(); diff --git a/HydraEngine/source/actor/HydraSpotLightActor.cpp b/HydraEngine/source/actor/HydraSpotLightActor.cpp index cc44f7c..2e572d4 100644 --- a/HydraEngine/source/actor/HydraSpotLightActor.cpp +++ b/HydraEngine/source/actor/HydraSpotLightActor.cpp @@ -22,7 +22,7 @@ void HydraSpotLightActor::InitialiseComponents() HydraECS *ecs = GetEngine()->ECS(); light_comp.diffuse = glm::vec4(1,1,1,1); - light_comp.intensity = 1000.0f; + light_comp.intensity = 10000.0f; light_comp.light_type = static_cast(HYDRA_LIGHT_TYPE::HYDRA_LIGHT_SPOT); light_comp.cutoff = glm::cos(glm::radians(10.0f)); light_comp.cutoff_outer = glm::cos(glm::radians(25.0f)); diff --git a/HydraEngine/source/buffer/HydraShadowBuffer.h b/HydraEngine/source/buffer/HydraShadowBuffer.h index 2ea5ce4..085789c 100644 --- a/HydraEngine/source/buffer/HydraShadowBuffer.h +++ b/HydraEngine/source/buffer/HydraShadowBuffer.h @@ -3,15 +3,12 @@ #include "../engine/HydraEngine.h" +#include "../ecs/components/HydraDirectionalShadowSourceComponent.h" +#include "../ecs/components/HydraSpotShadowSourceComponent.h" + struct HydraShadowBuffer { - uint32_t entity_id; - uint32_t cascade_count; - uint32_t shadow_texture_id; - uint32_t padding0; - float near_plane[8]; - float far_plane[8]; - glm::mat4 light_space_proj[6]; - glm::mat4 light_space_view[6]; + HydraDirectionalShadowSourceComponent directional_shadows[MAX_DIRECTIONAL_SHADOWS]; + HydraSpotShadowSourceComponent spot_shadows[MAX_SPOT_SHADOWS]; }; #endif /* HYDRASHADOWBUFFER */ diff --git a/HydraEngine/source/buffer/HydraShadowBufferManager.cpp b/HydraEngine/source/buffer/HydraShadowBufferManager.cpp new file mode 100644 index 0000000..ab652c2 --- /dev/null +++ b/HydraEngine/source/buffer/HydraShadowBufferManager.cpp @@ -0,0 +1,115 @@ +#include "HydraShadowBufferManager.h" +#include "../scheduler/HydraTaskScheduler.h" +#include "../task/buffer/HydraCreateGPUBufferTask.hpp" +#include "../task/buffer/HydraUpdateWholeGPUBufferTask.hpp" +#include "../task/buffer/HydraUpdatePartialGPUBufferTask.hpp" +#include "../task/buffer/HydraCreateUnBoundTextureTask.hpp" +#include "../task/renderer/HydraCreateCascadeShadowFrameBuffer.hpp" +#include "../task/renderer/HydraCreateShadowFrameBuffer.hpp" + +void HydraShadowBufferManager::Initialise() +{ + HydraTaskScheduler *task_scheduler = GetEngine()->TaskScheduler(); + for(uint32_t i = 0; i < MAX_DIRECTIONAL_SHADOWS; i++) + { + m_available_dir.push(i); + } + for(uint32_t i = 0; i < MAX_SPOT_SHADOWS; i++) + { + m_available_spot.push(i); + } + m_directional_shadow_buffer.resize(MAX_DIRECTIONAL_SHADOWS); + m_spot_shadow_buffer.resize(MAX_SPOT_SHADOWS); + + + uint32_t buffer_size = (MAX_DIRECTIONAL_SHADOWS * sizeof(HydraDirectionalShadowSourceComponent)); + + HydraID create_gpu_buffer_task_id = task_scheduler->CreateTask(HydraThreadAffinity::Render); + HydraCreateGPUBufferTask *task = static_cast(task_scheduler->GetTask(create_gpu_buffer_task_id)); + task->Intialise("DirectionalShadowBuffer", 1, buffer_size, &m_directional_shadow_buffer_id, HYDRA_BUFFER_TYPE::HYDRA_SSBO_BUFFER); + task_scheduler->WaitForTask(create_gpu_buffer_task_id); + + buffer_size = (MAX_SPOT_SHADOWS * sizeof(HydraSpotShadowSourceComponent)); + + create_gpu_buffer_task_id = task_scheduler->CreateTask(HydraThreadAffinity::Render); + HydraCreateGPUBufferTask *spot_task = static_cast(task_scheduler->GetTask(create_gpu_buffer_task_id)); + spot_task->Intialise("SpotShadowBuffer", 1, buffer_size, &m_spot_shadow_buffer_id, HYDRA_BUFFER_TYPE::HYDRA_SSBO_BUFFER); + task_scheduler->WaitForTask(create_gpu_buffer_task_id); +} +void HydraShadowBufferManager::Shutdown() +{ + +} +HydraID HydraShadowBufferManager::AddDirectionalShadow(HydraDirectionalShadowSourceComponent shadow) +{ + std::lock_guard lock(m_mutex); + if(m_available_dir.size() == 0) + { + return INVALID_HYDRA_ID; + } + + HydraID shadow_id = m_available_dir.front(); + shadow.shadow_id = shadow_id; + m_directional_shadow_buffer[shadow_id] = shadow; + return shadow_id; +} +HydraID HydraShadowBufferManager::AddSpotShadow(HydraSpotShadowSourceComponent shadow) +{ + std::lock_guard lock(m_mutex); + if(m_available_spot.size() == 0) + { + return INVALID_HYDRA_ID; + } + + HydraID shadow_id = m_available_spot.front(); + m_spot_shadow_buffer[shadow_id] = shadow; + return shadow_id; +} + +void HydraShadowBufferManager::UpdateDirectionalShadow(HydraID shadow_id, HydraDirectionalShadowSourceComponent shadow) +{ + std::lock_guard lock(m_mutex); + if(shadow_id < MAX_DIRECTIONAL_SHADOWS) + { + m_directional_shadow_buffer[shadow_id] = shadow; + } +} + +void HydraShadowBufferManager::UpdateSpotShadow(HydraID shadow_id, HydraSpotShadowSourceComponent shadow) +{ + std::lock_guard lock(m_mutex); + if(shadow_id < MAX_SPOT_SHADOWS) + { + m_spot_shadow_buffer[shadow_id] = shadow; + } +} + +void HydraShadowBufferManager::RemoveDirectionalShadow(HydraID shadow_id) +{ + +} +void HydraShadowBufferManager::RemoveSpotShadow(HydraID shadow_id) +{ + +} + +void HydraShadowBufferManager::UpdateShadowBuffer() +{ + HydraEngine *engine = GetEngine(); + HydraECS *ecs = engine->ECS(); + + HydraTaskScheduler *task_scheduler = GetEngine()->TaskScheduler(); + void *buffer = static_cast(m_directional_shadow_buffer.data()); + + HydraID update_buffer_task_id = task_scheduler->CreateTask(HydraThreadAffinity::Render); + HydraUpdateWholeGPUBufferTask *task = static_cast(task_scheduler->GetTask(update_buffer_task_id)); + task->Intialise(m_directional_shadow_buffer_id, buffer); + task_scheduler->WaitForTask(update_buffer_task_id); + + void *spot_buffer = static_cast(m_spot_shadow_buffer.data()); + + update_buffer_task_id = task_scheduler->CreateTask(HydraThreadAffinity::Render); + HydraUpdateWholeGPUBufferTask *spot_task = static_cast(task_scheduler->GetTask(update_buffer_task_id)); + spot_task->Intialise(m_spot_shadow_buffer_id, spot_buffer); + task_scheduler->WaitForTask(update_buffer_task_id); +} diff --git a/HydraEngine/source/buffer/HydraShadowBufferManager.h b/HydraEngine/source/buffer/HydraShadowBufferManager.h new file mode 100644 index 0000000..e8f6f99 --- /dev/null +++ b/HydraEngine/source/buffer/HydraShadowBufferManager.h @@ -0,0 +1,34 @@ +#ifndef HYDRASHADOWBUFFERMANAGER +#define HYDRASHADOWBUFFERMANAGER + +#include "../engine/HydraObject.h" +#include "HydraShadowBuffer.h" +#include "../ecs/components/HydraDirectionalShadowSourceComponent.h" +#include "../ecs/components/HydraSpotShadowSourceComponent.h" + +#include +#include + +class HydraShadowBufferManager : public HydraObject +{ + public: + void Initialise(); + void Shutdown(); + HydraID AddDirectionalShadow(HydraDirectionalShadowSourceComponent shadow); + HydraID AddSpotShadow(HydraSpotShadowSourceComponent shadow); + void UpdateDirectionalShadow(HydraID shadow_id, HydraDirectionalShadowSourceComponent shadow); + void UpdateSpotShadow(HydraID shadow_id, HydraSpotShadowSourceComponent shadow); + void RemoveDirectionalShadow(HydraID shadow_id); + void RemoveSpotShadow(HydraID shadow_id); + void UpdateShadowBuffer(); + private: + std::vector m_directional_shadow_buffer; + std::vector m_spot_shadow_buffer; + std::queue m_available_dir; + std::queue m_available_spot; + uint32_t m_directional_shadow_buffer_id; + uint32_t m_spot_shadow_buffer_id; + std::mutex m_mutex; + +}; +#endif /* HYDRASHADOWBUFFERMANAGER */ diff --git a/HydraEngine/source/ecs/components/HydraDirectionalShadowSourceComponent.h b/HydraEngine/source/ecs/components/HydraDirectionalShadowSourceComponent.h index 5749047..a7f1072 100644 --- a/HydraEngine/source/ecs/components/HydraDirectionalShadowSourceComponent.h +++ b/HydraEngine/source/ecs/components/HydraDirectionalShadowSourceComponent.h @@ -6,13 +6,13 @@ struct HydraDirectionalShadowSourceComponent { uint32_t entity_id; - uint32_t cascade_count; + uint32_t shadow_id; uint32_t shadow_texture_id; uint32_t frame_buffer_id; float near_plane[8]; float far_plane[8]; - glm::mat4 light_space_proj[6]; - glm::mat4 light_space_view[6]; + alignas(16) glm::mat4 light_space_proj[6]; + alignas(16) glm::mat4 light_space_view[6]; }; #endif /* HYDRACASTERCOMPONENT */ diff --git a/HydraEngine/source/ecs/components/HydraSpotShadowSourceComponent.h b/HydraEngine/source/ecs/components/HydraSpotShadowSourceComponent.h index b1c6555..fc1e18d 100644 --- a/HydraEngine/source/ecs/components/HydraSpotShadowSourceComponent.h +++ b/HydraEngine/source/ecs/components/HydraSpotShadowSourceComponent.h @@ -6,11 +6,13 @@ struct HydraSpotShadowSourceComponent { uint32_t entity_id; + uint32_t shadow_id; uint32_t shadow_texture_id; uint32_t frame_buffer_id; float far_plane; - glm::mat4 light_space_proj; - glm::mat4 light_space_view; + uint32_t padding[3]; + alignas(16) glm::mat4 light_space_proj; + alignas(16) glm::mat4 light_space_view; }; #endif /* HYDRASPOTSHADOWCOMPONENT */ diff --git a/HydraEngine/source/ecs/systems/HydraDirectionalShadowSourceSystem.cpp b/HydraEngine/source/ecs/systems/HydraDirectionalShadowSourceSystem.cpp index f7c6280..13b430c 100644 --- a/HydraEngine/source/ecs/systems/HydraDirectionalShadowSourceSystem.cpp +++ b/HydraEngine/source/ecs/systems/HydraDirectionalShadowSourceSystem.cpp @@ -8,6 +8,7 @@ #include "../../buffer/HydraShadowBuffer.h" #include "../../buffer/HydraTextureBufferManager.h" +#include "../../buffer/HydraShadowBufferManager.h" #include "../../scheduler/HydraTaskScheduler.h" #include "../../task/buffer/HydraCreateGPUBufferTask.hpp" @@ -20,19 +21,7 @@ void HydraDirectionalShadowSourceSystem::Initialise() { - HydraTaskScheduler *task_scheduler = GetEngine()->TaskScheduler(); - for(uint32_t i = 0; i < MAX_SHADOWS; i++) - { - m_available_shadows.push(i); - } - - m_shadows.resize(MAX_SHADOWS); - - HydraID create_gpu_buffer_task_id = task_scheduler->CreateTask(HydraThreadAffinity::Render); - HydraCreateGPUBufferTask *task = static_cast(task_scheduler->GetTask(create_gpu_buffer_task_id)); - task->Intialise("ShadowBuffer", 1, MAX_SHADOWS * sizeof(HydraDirectionalShadowSourceComponent), &m_shadow_buffer_id, HYDRA_BUFFER_TYPE::HYDRA_SSBO_BUFFER); - task_scheduler->WaitForTask(create_gpu_buffer_task_id); } void HydraDirectionalShadowSourceSystem::InitialiseComponent(HydraID entity_id) @@ -41,36 +30,25 @@ void HydraDirectionalShadowSourceSystem::InitialiseComponent(HydraID entity_id) HydraECS *ecs = engine->ECS(); HydraLightComponent &light_comp = ecs->GetComponent(entity_id); - { - std::lock_guard lock(m_mutex); - assert(m_available_shadows.size() > 0 && "Run out of shadows"); - uint32_t shad_id = m_available_shadows.front(); - m_available_shadows.pop(); - light_comp.shadow_map_id = shad_id; - light_comp.shadow_caster = 1; - } + HydraDirectionalShadowSourceComponent& shadow_comp = ecs->GetComponent(entity_id); + HydraID shadow_id = GetEngine()->ShadowBufferManager()->AddDirectionalShadow(shadow_comp); + assert(shadow_id != INVALID_HYDRA_ID && "Add directional Shadow - out of shadows!"); + + light_comp.shadow_map_id = shadow_id; + light_comp.shadow_caster = 1; + shadow_comp.shadow_id = shadow_id; _InitialiseShadowMap(entity_id); } void HydraDirectionalShadowSourceSystem::UpdateSystem(float delta_t_seconds) { - HydraEngine *engine = GetEngine(); - HydraECS *ecs = engine->ECS(); - std::vector shadows; for (HydraID entity_id : Entities) { - - HydraLightComponent &light_comp = ecs->GetComponent(entity_id); - _UpdateShadowMap(entity_id); - - HydraDirectionalShadowSourceComponent shad_comp = ecs->GetComponent(entity_id); - m_shadows[light_comp.shadow_map_id] = shad_comp; } - _WriteToGPU(); } void HydraDirectionalShadowSourceSystem::_UpdateShadowMap(HydraID entity_id) @@ -113,6 +91,7 @@ void HydraDirectionalShadowSourceSystem::_UpdateShadowMap(HydraID entity_id) view_size *= 3.0f; view_far *= 3.0f; } + GetEngine()->ShadowBufferManager()->UpdateDirectionalShadow(shad_comp.shadow_id, shad_comp); } @@ -124,8 +103,7 @@ void HydraDirectionalShadowSourceSystem::_InitialiseShadowMap(HydraID entity_id) HydraDirectionalShadowSourceComponent &shad_comp = ecs->GetComponent(entity_id); HydraLightComponent &light_comp = ecs->GetComponent(entity_id); - shad_comp.entity_id = entity_id; - shad_comp.cascade_count = 6; + shad_comp.entity_id = entity_id; HydraTaskScheduler *task_scheduler = GetEngine()->TaskScheduler(); @@ -138,16 +116,3 @@ void HydraDirectionalShadowSourceSystem::_InitialiseShadowMap(HydraID entity_id) shad_comp.shadow_texture_id = depth_texture_id; } -void HydraDirectionalShadowSourceSystem::_WriteToGPU() -{ - HydraEngine *engine = GetEngine(); - HydraECS *ecs = engine->ECS(); - - void *buffer = static_cast(m_shadows.data()); - HydraTaskScheduler *task_scheduler = GetEngine()->TaskScheduler(); - - HydraID update_buffer_task_id = task_scheduler->CreateTask(HydraThreadAffinity::Render); - HydraUpdateWholeGPUBufferTask *task = static_cast(task_scheduler->GetTask(update_buffer_task_id)); - task->Intialise(m_shadow_buffer_id, buffer); - task_scheduler->WaitForTask(update_buffer_task_id); -} \ No newline at end of file diff --git a/HydraEngine/source/ecs/systems/HydraDirectionalShadowSourceSystem.h b/HydraEngine/source/ecs/systems/HydraDirectionalShadowSourceSystem.h index 525b2e0..9725d65 100644 --- a/HydraEngine/source/ecs/systems/HydraDirectionalShadowSourceSystem.h +++ b/HydraEngine/source/ecs/systems/HydraDirectionalShadowSourceSystem.h @@ -18,10 +18,6 @@ class HydraDirectionalShadowSourceSystem : public HydraSystem private: void _UpdateShadowMap(HydraID entity_id); void _InitialiseShadowMap(HydraID entity_id); - void _WriteToGPU(); - HydraID m_shadow_buffer_id = INVALID_HYDRA_ID; - std::queue m_available_shadows; - std::vector m_shadows; std::mutex m_mutex; }; diff --git a/HydraEngine/source/ecs/systems/HydraSpotShadowSourceSystem.cpp b/HydraEngine/source/ecs/systems/HydraSpotShadowSourceSystem.cpp index b5ceb65..f453e52 100644 --- a/HydraEngine/source/ecs/systems/HydraSpotShadowSourceSystem.cpp +++ b/HydraEngine/source/ecs/systems/HydraSpotShadowSourceSystem.cpp @@ -8,31 +8,21 @@ #include "../../buffer/HydraShadowBuffer.h" #include "../../buffer/HydraTextureBufferManager.h" +#include "../../buffer/HydraShadowBufferManager.h" #include "../../scheduler/HydraTaskScheduler.h" #include "../../task/buffer/HydraCreateGPUBufferTask.hpp" #include "../../task/buffer/HydraUpdateWholeGPUBufferTask.hpp" #include "../../task/buffer/HydraUpdatePartialGPUBufferTask.hpp" #include "../../task/buffer/HydraCreateUnBoundTextureTask.hpp" + #include "../../task/renderer/HydraCreateCascadeShadowFrameBuffer.hpp" #include "../../task/renderer/HydraCreateShadowFrameBuffer.hpp" #include "../../actor/HydraActorManager.h" void HydraSpotShadowSourceSystem::Initialise() { - HydraTaskScheduler *task_scheduler = GetEngine()->TaskScheduler(); - for(uint32_t i = 0; i < MAX_SHADOWS; i++) - { - m_available_shadows.push(i); - } - - m_shadows.resize(MAX_SHADOWS); - - HydraID create_gpu_buffer_task_id = task_scheduler->CreateTask(HydraThreadAffinity::Render); - HydraCreateGPUBufferTask *task = static_cast(task_scheduler->GetTask(create_gpu_buffer_task_id)); - task->Intialise("ShadowBuffer", 1, MAX_SHADOWS * sizeof(HydraSpotShadowSourceComponent), &m_shadow_buffer_id, HYDRA_BUFFER_TYPE::HYDRA_SSBO_BUFFER); - task_scheduler->WaitForTask(create_gpu_buffer_task_id); } void HydraSpotShadowSourceSystem::InitialiseComponent(HydraID entity_id) @@ -41,14 +31,15 @@ void HydraSpotShadowSourceSystem::InitialiseComponent(HydraID entity_id) HydraECS *ecs = engine->ECS(); HydraLightComponent &light_comp = ecs->GetComponent(entity_id); - { - std::lock_guard lock(m_mutex); - assert(m_available_shadows.size() > 0 && "Run out of shadows"); - uint32_t shad_id = m_available_shadows.front(); - m_available_shadows.pop(); - light_comp.shadow_map_id = shad_id; - light_comp.shadow_caster = 1; - } + + HydraSpotShadowSourceComponent& shadow_comp = ecs->GetComponent(entity_id); + + HydraID shadow_id = GetEngine()->ShadowBufferManager()->AddSpotShadow(shadow_comp); + assert(shadow_id != INVALID_HYDRA_ID && "Add Spot Shadow - out of shadows!"); + + light_comp.shadow_map_id = shadow_id; + light_comp.shadow_caster = 1; + shadow_comp.shadow_id = shadow_id; _InitialiseShadowMap(entity_id); } @@ -60,15 +51,9 @@ void HydraSpotShadowSourceSystem::UpdateSystem(float delta_t_seconds) for (HydraID entity_id : Entities) { - - HydraLightComponent &light_comp = ecs->GetComponent(entity_id); - _UpdateShadowMap(entity_id); - - HydraSpotShadowSourceComponent shad_comp = ecs->GetComponent(entity_id); - m_shadows[light_comp.shadow_map_id] = shad_comp; } - _WriteToGPU(); + } void HydraSpotShadowSourceSystem::_UpdateShadowMap(HydraID entity_id) @@ -77,20 +62,16 @@ void HydraSpotShadowSourceSystem::_UpdateShadowMap(HydraID entity_id) HydraECS *ecs = engine->ECS(); HydraPositionComponent pos_comp = ecs->GetComponent(entity_id); HydraSpotShadowSourceComponent &shad_comp = ecs->GetComponent(entity_id); + HydraLightComponent light_comp = ecs->GetComponent(entity_id); float view_size = 50.0f; - float view_near = 0.1f; + float view_near = 0.3f; float view_far = 50.0f; - float PI = 3.1415927; - float TWO_PI = 6.2831854; - glm::mat4 light_rot = glm::eulerAngleXYZ(pos_comp.orientation.x, pos_comp.orientation.y, pos_comp.orientation.z); glm::vec3 light_dir = glm::normalize(glm::vec3(light_rot * glm::vec4(0.0f, 0.0f, -1.0f, 0.0f))); - glm::vec3 camera_pos = GetEngine()->Camera()->GetPosition(); - - glm::vec3 light_pos = pos_comp.position; + glm::vec3 light_pos = pos_comp.position; glm::vec3 target_pos = light_pos + light_dir; glm::vec3 up_vector = glm::vec3(0.0f, 1.0f, 0.0f); @@ -100,12 +81,15 @@ void HydraSpotShadowSourceSystem::_UpdateShadowMap(HydraID entity_id) } glm::mat4 view = glm::lookAt(light_pos, target_pos, up_vector); - glm::mat4 proj = glm::ortho(-view_size, view_size, -view_size, view_size, view_near, view_far); + + float fovRad = glm::radians(55.0f); + glm::mat4 proj = glm::perspectiveFovRH(fovRad, view_size, view_size, view_near, view_far); // Save data to component shad_comp.far_plane = view_far; shad_comp.light_space_proj = proj; - shad_comp.light_space_view = view; + shad_comp.light_space_view = view; + GetEngine()->ShadowBufferManager()->UpdateSpotShadow(shad_comp.shadow_id, shad_comp); } @@ -116,11 +100,9 @@ void HydraSpotShadowSourceSystem::_InitialiseShadowMap(HydraID entity_id) HydraTextureBufferManager *tex_man = engine->TextureBufferManager(); HydraSpotShadowSourceComponent &shad_comp = ecs->GetComponent(entity_id); HydraLightComponent &light_comp = ecs->GetComponent(entity_id); - shad_comp.entity_id = entity_id; - HydraTaskScheduler *task_scheduler = GetEngine()->TaskScheduler(); uint32_t depth_texture_id = 0; @@ -132,16 +114,3 @@ void HydraSpotShadowSourceSystem::_InitialiseShadowMap(HydraID entity_id) shad_comp.shadow_texture_id = depth_texture_id; } -void HydraSpotShadowSourceSystem::_WriteToGPU() -{ - HydraEngine *engine = GetEngine(); - HydraECS *ecs = engine->ECS(); - - void *buffer = static_cast(m_shadows.data()); - HydraTaskScheduler *task_scheduler = GetEngine()->TaskScheduler(); - - HydraID update_buffer_task_id = task_scheduler->CreateTask(HydraThreadAffinity::Render); - HydraUpdateWholeGPUBufferTask *task = static_cast(task_scheduler->GetTask(update_buffer_task_id)); - task->Intialise(m_shadow_buffer_id, buffer); - task_scheduler->WaitForTask(update_buffer_task_id); -} \ No newline at end of file diff --git a/HydraEngine/source/ecs/systems/HydraSpotShadowSourceSystem.h b/HydraEngine/source/ecs/systems/HydraSpotShadowSourceSystem.h index 6fe6264..0e70ded 100644 --- a/HydraEngine/source/ecs/systems/HydraSpotShadowSourceSystem.h +++ b/HydraEngine/source/ecs/systems/HydraSpotShadowSourceSystem.h @@ -20,10 +20,10 @@ class HydraSpotShadowSourceSystem : public HydraSystem private: void _UpdateShadowMap(HydraID entity_id); void _InitialiseShadowMap(HydraID entity_id); - void _WriteToGPU(); - HydraID m_shadow_buffer_id = INVALID_HYDRA_ID; - std::queue m_available_shadows; - std::vector m_shadows; + + + + std::mutex m_mutex; }; diff --git a/HydraEngine/source/engine/HydraEngine.cpp b/HydraEngine/source/engine/HydraEngine.cpp index 79f31e6..8de2739 100644 --- a/HydraEngine/source/engine/HydraEngine.cpp +++ b/HydraEngine/source/engine/HydraEngine.cpp @@ -13,6 +13,7 @@ #include "../buffer/HydraTextureBufferManager.h" #include "../buffer/HydraMaterialBufferManager.h" #include "../buffer/HydraLightBufferManager.h" +#include "../buffer/HydraShadowBufferManager.h" #include "../ecs/HydraECS.h" #include "../ecs/systems/HydraTransformSystem.h" @@ -54,6 +55,7 @@ #include "../task/ecs/HydraInitialiseComponentsTask.hpp" #include "../task/buffer/HydraShutdownBufferManagerTask.hpp" #include "../task/buffer/HydraInitialiseTextureManagerTask.hpp" +#include "../task/buffer/HydraInitialiseShadowBufferTask.hpp" #include "../task/actor/HydraUpdatePlayerTask.h" #include "../task/renderer/HydraEndRenderTask.hpp" @@ -149,6 +151,11 @@ HydraLightBufferManager *const HydraEngine::LightBufferManager() return m_light_buffer_manager; } +HydraShadowBufferManager *const HydraEngine::ShadowBufferManager() +{ + return m_shadow_buffer_manager; +} + void HydraEngine::PossessPlayer(HydraID actor_id) { m_possessed_actor_id = actor_id; @@ -187,6 +194,7 @@ void HydraEngine::_CreateManagers() m_texture_buffer_manager = new HydraTextureBufferManager(); m_material_buffer_manager = new HydraMaterialBufferManager(); m_light_buffer_manager = new HydraLightBufferManager(); + m_shadow_buffer_manager = new HydraShadowBufferManager(); } void HydraEngine::_InitialiseManagers() @@ -208,6 +216,9 @@ void HydraEngine::_InitialiseManagers() m_material_buffer_manager->Intialise(); m_light_buffer_manager->Initialise(); + HydraID create_shadow_buffer_task_id = m_task_scheduler->CreateTask(HydraThreadAffinity::Render); + m_task_scheduler->WaitForTask(create_shadow_buffer_task_id); + } void HydraEngine::_InitialiseSystems() @@ -277,7 +288,6 @@ void HydraEngine::_InitialiseSystems() m_task_scheduler->StartTask(update_trans_id); m_task_scheduler->StartTask(update_mat_id); - m_task_scheduler->WaitForBarrier(posUpdateBarrierID); HydraID update_light_id = m_task_scheduler->CreateTask(HydraThreadAffinity::General); @@ -285,16 +295,22 @@ void HydraEngine::_InitialiseSystems() update_light_task->Initialise(m_delta_t, m_light_system); m_task_scheduler->WaitForTask(update_light_id); - HydraID update_shadow_id = m_task_scheduler->CreateTask(HydraThreadAffinity::General); + HydraID shadow_barrier = m_task_scheduler->CreateBarrier(); + + HydraID update_shadow_id = m_task_scheduler->CreateTask(HydraThreadAffinity::General, shadow_barrier); HydraUpdateSystemTask* update_shadow_task = static_cast(m_task_scheduler->GetTask(update_shadow_id)); update_shadow_task->Initialise(m_delta_t, m_directional_shadow_system); - m_task_scheduler->WaitForTask(update_shadow_id); + - HydraID update_spot_shadow_id = m_task_scheduler->CreateTask(HydraThreadAffinity::General); + HydraID update_spot_shadow_id = m_task_scheduler->CreateTask(HydraThreadAffinity::General, shadow_barrier); HydraUpdateSystemTask* update_spot_shadow_task = static_cast(m_task_scheduler->GetTask(update_spot_shadow_id)); update_spot_shadow_task->Initialise(m_delta_t, m_spot_shadow_system); - m_task_scheduler->WaitForTask(update_spot_shadow_id); + + m_task_scheduler->StartTask(update_shadow_id); + m_task_scheduler->StartTask(update_spot_shadow_id); + m_task_scheduler->WaitForBarrier(shadow_barrier); + m_shadow_buffer_manager->UpdateShadowBuffer(); } void HydraEngine::_GameLoop() diff --git a/HydraEngine/source/engine/HydraEngine.h b/HydraEngine/source/engine/HydraEngine.h index 8460d19..5c8e1fc 100644 --- a/HydraEngine/source/engine/HydraEngine.h +++ b/HydraEngine/source/engine/HydraEngine.h @@ -27,6 +27,7 @@ class HydraLightBufferManager; class HydraLightSystem; class HydraDirectionalShadowSourceSystem; class HydraSpotShadowSourceSystem; +class HydraShadowBufferManager; class CLASS_DEFINE HydraEngine : public HydraObject { @@ -58,6 +59,7 @@ public: HydraTextureBufferManager* const TextureBufferManager(); HydraMaterialBufferManager* const MaterialBufferManager(); HydraLightBufferManager* const LightBufferManager(); + HydraShadowBufferManager* const ShadowBufferManager(); void PossessPlayer(HydraID actor_id); HydraID GetPossessedPlayer(); float GetDeltaT(); @@ -88,7 +90,7 @@ private: HydraTextureBufferManager* m_texture_buffer_manager = nullptr; HydraMaterialBufferManager* m_material_buffer_manager = nullptr; HydraLightBufferManager* m_light_buffer_manager = nullptr; - + HydraShadowBufferManager* m_shadow_buffer_manager = nullptr; std::shared_ptr m_mesh_system; std::shared_ptr m_transform_system; std::shared_ptr m_render_system; diff --git a/HydraEngine/source/pipeline/HydraDeferredPipeline.cpp b/HydraEngine/source/pipeline/HydraDeferredPipeline.cpp index a9d6aad..f8896f7 100644 --- a/HydraEngine/source/pipeline/HydraDeferredPipeline.cpp +++ b/HydraEngine/source/pipeline/HydraDeferredPipeline.cpp @@ -13,6 +13,8 @@ #include "../ecs/systems/HydraRenderSystem.h" #include "../ecs/systems/HydraDirectionalShadowSourceSystem.h" #include "../ecs/components/HydraDirectionalShadowSourceComponent.h" +#include "../ecs/systems/HydraSpotShadowSourceSystem.h" +#include "../ecs/components/HydraSpotShadowSourceComponent.h" #include "../mesh/StandardVertex.h" #include "../actor/HydraActorManager.h" #include "../actor/HydraOutputActor.h" @@ -95,12 +97,12 @@ void HydraDeferredPipeline::_UpdateUBO() buffer_manager->UpdateWholeBuffer(m_per_frame_output_ubo, &output_ubo); glBindBuffer(GL_UNIFORM_BUFFER, m_per_frame_output_ubo); - std::shared_ptr sys = GetEngine()->ECS()->GetSystem(); + std::shared_ptr sys = GetEngine()->ECS()->GetSystem(); HydraID texture_id = 0; if(sys->Entities.size() > 0) { auto it = sys->Entities.begin(); - HydraDirectionalShadowSourceComponent shad_comp = GetEngine()->ECS()->GetComponent(*it); + HydraSpotShadowSourceComponent shad_comp = GetEngine()->ECS()->GetComponent(*it); texture_id = shad_comp.shadow_texture_id; } TextureDebugUBO texture_ubo = {}; @@ -233,6 +235,8 @@ void HydraDeferredPipeline::_CreateOutputRenderStage() HydraID tex_buffer_id = buffer_manager->FindBuffer("TextureBuffer"); HydraID output_texture_buffer_id = buffer_manager->FindBuffer("DeferredOutputTextureUBO"); HydraID light_buffer_id = buffer_manager->FindBuffer("LightBuffer"); + HydraID directional_shadow_buffer_id = buffer_manager->FindBuffer("DirectionalShadowBuffer"); + HydraID spot_shadow_buffer_id = buffer_manager->FindBuffer("SpotShadowBuffer"); HydraShaderBinding shader_binding = {}; shader_binding.block_name.push_back("position_buffer"); @@ -240,7 +244,6 @@ void HydraDeferredPipeline::_CreateOutputRenderStage() shader_binding.buffer_id.push_back(pos_buffer_id); shader_binding.buffer_type.push_back(HYDRA_BUFFER_TYPE::HYDRA_SSBO_BUFFER); - shader_binding.block_name.push_back("texture_buffer"); shader_binding.binding_point.push_back(3); shader_binding.buffer_id.push_back(tex_buffer_id); @@ -260,7 +263,17 @@ void HydraDeferredPipeline::_CreateOutputRenderStage() shader_binding.binding_point.push_back(4); shader_binding.buffer_id.push_back(light_buffer_id); shader_binding.buffer_type.push_back(HYDRA_BUFFER_TYPE::HYDRA_SSBO_BUFFER); + + shader_binding.block_name.push_back("directional_shadow_buffer"); + shader_binding.binding_point.push_back(5); + shader_binding.buffer_id.push_back(directional_shadow_buffer_id); + shader_binding.buffer_type.push_back(HYDRA_BUFFER_TYPE::HYDRA_SSBO_BUFFER); + shader_binding.block_name.push_back("spot_shadow_buffer"); + shader_binding.binding_point.push_back(6); + shader_binding.buffer_id.push_back(spot_shadow_buffer_id); + shader_binding.buffer_type.push_back(HYDRA_BUFFER_TYPE::HYDRA_SSBO_BUFFER); + render_stage->Initialise(shader_path + "deferred_output_shader.vert", shader_path + "deferred_output_shader.frag", "", shader_binding, diff --git a/HydraEngine/source/pipeline/HydraShadowPipeline.cpp b/HydraEngine/source/pipeline/HydraShadowPipeline.cpp index eeefe6e..69704ed 100644 --- a/HydraEngine/source/pipeline/HydraShadowPipeline.cpp +++ b/HydraEngine/source/pipeline/HydraShadowPipeline.cpp @@ -85,7 +85,7 @@ void HydraShadowPipeline::_RenderSpotShadowMaps() glClearNamedFramebufferfv(shad_comp.frame_buffer_id, GL_DEPTH, 0, &depth_value); glClearNamedFramebufferfv(shad_comp.frame_buffer_id, GL_COLOR, 0, clear_colour); m_render_stages[SPOT_RENDER_STAGE]->Render(render_system->Entities, INVALID_HYDRA_ID); - glBindFramebuffer(GL_FRAMEBUFFER, 0); + glBindFramebuffer(GL_FRAMEBUFFER, 0); } } @@ -98,7 +98,7 @@ void HydraShadowPipeline::_CreateDirectionalRenderStage() HydraID pos_buffer_id = buffer_manager->FindBuffer("PositionsBuffer"); HydraID mat_buffer_id = buffer_manager->FindBuffer("MaterialBuffer"); HydraID tex_buffer_id = buffer_manager->FindBuffer("TextureBuffer"); - HydraID shadow_buffer_id = buffer_manager->FindBuffer("ShadowBuffer"); + HydraID shadow_buffer_id = buffer_manager->FindBuffer("DirectionalShadowBuffer"); HydraID per_frame_buffer_id = buffer_manager->FindBuffer("ShadowPerFrameUBO"); HydraShaderBinding shader_binding = {}; @@ -118,7 +118,7 @@ void HydraShadowPipeline::_CreateDirectionalRenderStage() shader_binding.buffer_id.push_back(tex_buffer_id); shader_binding.buffer_type.push_back(HYDRA_BUFFER_TYPE::HYDRA_SSBO_BUFFER); - shader_binding.block_name.push_back("shadow_map_sets"); + shader_binding.block_name.push_back("directional_shadow_map_sets"); 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); @@ -152,7 +152,7 @@ void HydraShadowPipeline::_CreateSpotRenderStage() HydraID pos_buffer_id = buffer_manager->FindBuffer("PositionsBuffer"); HydraID mat_buffer_id = buffer_manager->FindBuffer("MaterialBuffer"); HydraID tex_buffer_id = buffer_manager->FindBuffer("TextureBuffer"); - HydraID shadow_buffer_id = buffer_manager->FindBuffer("ShadowBuffer"); + HydraID shadow_buffer_id = buffer_manager->FindBuffer("SpotShadowBuffer"); HydraID per_frame_buffer_id = buffer_manager->FindBuffer("ShadowPerFrameUBO"); HydraShaderBinding shader_binding = {}; @@ -172,8 +172,8 @@ void HydraShadowPipeline::_CreateSpotRenderStage() shader_binding.buffer_id.push_back(tex_buffer_id); shader_binding.buffer_type.push_back(HYDRA_BUFFER_TYPE::HYDRA_SSBO_BUFFER); - shader_binding.block_name.push_back("shadow_map_sets"); - shader_binding.binding_point.push_back(5); + shader_binding.block_name.push_back("spot_shadow_map_sets"); + shader_binding.binding_point.push_back(6); shader_binding.buffer_id.push_back(shadow_buffer_id); shader_binding.buffer_type.push_back(HYDRA_BUFFER_TYPE::HYDRA_SSBO_BUFFER); diff --git a/HydraEngine/source/task/buffer/HydraInitialiseShadowBufferTask.hpp b/HydraEngine/source/task/buffer/HydraInitialiseShadowBufferTask.hpp new file mode 100644 index 0000000..2383641 --- /dev/null +++ b/HydraEngine/source/task/buffer/HydraInitialiseShadowBufferTask.hpp @@ -0,0 +1,18 @@ +#ifndef HYDRAINITIALISESHADOWBUFFERTASK +#define HYDRAINITIALISESHADOWBUFFERTASK +#include "../HydraTask.h" +#include "../../engine/HydraEngine.h" +#include "../../buffer/HydraShadowBufferManager.h" + +class HydraInitialiseShadowBufferTask : public HydraTask +{ + private: + protected: + public: + virtual void Process() override + { + GetEngine()->ShadowBufferManager()->Initialise(); + } +}; + +#endif /* HYDRAINITIALISESHADOWBUFFERTASK */ diff --git a/build/.cmake/api/v1/reply/codemodel-v2-b00a87c0d8bd86bc0bfe.json b/build/.cmake/api/v1/reply/codemodel-v2-096b8a8b347f4803f005.json similarity index 93% rename from build/.cmake/api/v1/reply/codemodel-v2-b00a87c0d8bd86bc0bfe.json rename to build/.cmake/api/v1/reply/codemodel-v2-096b8a8b347f4803f005.json index 53ee059..9149106 100644 --- a/build/.cmake/api/v1/reply/codemodel-v2-b00a87c0d8bd86bc0bfe.json +++ b/build/.cmake/api/v1/reply/codemodel-v2-096b8a8b347f4803f005.json @@ -161,28 +161,28 @@ { "directoryIndex" : 0, "id" : "ALL_BUILD::@6890427a1f51a3e7e1df", - "jsonFile" : "target-ALL_BUILD-Debug-9ddbbbeb4caedf0a48f0.json", + "jsonFile" : "target-ALL_BUILD-Debug-79cb89fa590649c6cd6a.json", "name" : "ALL_BUILD", "projectIndex" : 0 }, { "directoryIndex" : 1, "id" : "ALL_BUILD::@fafd37b19aacd4c483ed", - "jsonFile" : "target-ALL_BUILD-Debug-30097c8e6651db3aff43.json", + "jsonFile" : "target-ALL_BUILD-Debug-21126e6f26f8151b82a1.json", "name" : "ALL_BUILD", "projectIndex" : 1 }, { "directoryIndex" : 0, "id" : "HydraClient::@6890427a1f51a3e7e1df", - "jsonFile" : "target-HydraClient-Debug-78ce361b98c7c89e9629.json", + "jsonFile" : "target-HydraClient-Debug-ccca9689ebe6b19fe65a.json", "name" : "HydraClient", "projectIndex" : 0 }, { "directoryIndex" : 1, "id" : "HydraEngine::@fafd37b19aacd4c483ed", - "jsonFile" : "target-HydraEngine-Debug-7e25cfc8f576cb7c79ae.json", + "jsonFile" : "target-HydraEngine-Debug-c5670bbc5edcb254f4f2.json", "name" : "HydraEngine", "projectIndex" : 1 }, @@ -355,28 +355,28 @@ { "directoryIndex" : 0, "id" : "ALL_BUILD::@6890427a1f51a3e7e1df", - "jsonFile" : "target-ALL_BUILD-Release-9ddbbbeb4caedf0a48f0.json", + "jsonFile" : "target-ALL_BUILD-Release-79cb89fa590649c6cd6a.json", "name" : "ALL_BUILD", "projectIndex" : 0 }, { "directoryIndex" : 1, "id" : "ALL_BUILD::@fafd37b19aacd4c483ed", - "jsonFile" : "target-ALL_BUILD-Release-30097c8e6651db3aff43.json", + "jsonFile" : "target-ALL_BUILD-Release-21126e6f26f8151b82a1.json", "name" : "ALL_BUILD", "projectIndex" : 1 }, { "directoryIndex" : 0, "id" : "HydraClient::@6890427a1f51a3e7e1df", - "jsonFile" : "target-HydraClient-Release-5f750d1feb1d099be72b.json", + "jsonFile" : "target-HydraClient-Release-f300bf694420197200c5.json", "name" : "HydraClient", "projectIndex" : 0 }, { "directoryIndex" : 1, "id" : "HydraEngine::@fafd37b19aacd4c483ed", - "jsonFile" : "target-HydraEngine-Release-5b7c77d65c6b07892d53.json", + "jsonFile" : "target-HydraEngine-Release-88bc84ff8a06c001fb0b.json", "name" : "HydraEngine", "projectIndex" : 1 }, @@ -549,28 +549,28 @@ { "directoryIndex" : 0, "id" : "ALL_BUILD::@6890427a1f51a3e7e1df", - "jsonFile" : "target-ALL_BUILD-MinSizeRel-9ddbbbeb4caedf0a48f0.json", + "jsonFile" : "target-ALL_BUILD-MinSizeRel-79cb89fa590649c6cd6a.json", "name" : "ALL_BUILD", "projectIndex" : 0 }, { "directoryIndex" : 1, "id" : "ALL_BUILD::@fafd37b19aacd4c483ed", - "jsonFile" : "target-ALL_BUILD-MinSizeRel-30097c8e6651db3aff43.json", + "jsonFile" : "target-ALL_BUILD-MinSizeRel-21126e6f26f8151b82a1.json", "name" : "ALL_BUILD", "projectIndex" : 1 }, { "directoryIndex" : 0, "id" : "HydraClient::@6890427a1f51a3e7e1df", - "jsonFile" : "target-HydraClient-MinSizeRel-0b1754e9511a8dea2861.json", + "jsonFile" : "target-HydraClient-MinSizeRel-707588ed524688a0f034.json", "name" : "HydraClient", "projectIndex" : 0 }, { "directoryIndex" : 1, "id" : "HydraEngine::@fafd37b19aacd4c483ed", - "jsonFile" : "target-HydraEngine-MinSizeRel-dd7605eef8b41531d436.json", + "jsonFile" : "target-HydraEngine-MinSizeRel-3f820b7fb6c0cca80b22.json", "name" : "HydraEngine", "projectIndex" : 1 }, @@ -743,28 +743,28 @@ { "directoryIndex" : 0, "id" : "ALL_BUILD::@6890427a1f51a3e7e1df", - "jsonFile" : "target-ALL_BUILD-RelWithDebInfo-9ddbbbeb4caedf0a48f0.json", + "jsonFile" : "target-ALL_BUILD-RelWithDebInfo-79cb89fa590649c6cd6a.json", "name" : "ALL_BUILD", "projectIndex" : 0 }, { "directoryIndex" : 1, "id" : "ALL_BUILD::@fafd37b19aacd4c483ed", - "jsonFile" : "target-ALL_BUILD-RelWithDebInfo-30097c8e6651db3aff43.json", + "jsonFile" : "target-ALL_BUILD-RelWithDebInfo-21126e6f26f8151b82a1.json", "name" : "ALL_BUILD", "projectIndex" : 1 }, { "directoryIndex" : 0, "id" : "HydraClient::@6890427a1f51a3e7e1df", - "jsonFile" : "target-HydraClient-RelWithDebInfo-19110864938462bdea5b.json", + "jsonFile" : "target-HydraClient-RelWithDebInfo-a4b1a5ac731bdcc03733.json", "name" : "HydraClient", "projectIndex" : 0 }, { "directoryIndex" : 1, "id" : "HydraEngine::@fafd37b19aacd4c483ed", - "jsonFile" : "target-HydraEngine-RelWithDebInfo-86a99b5410ea40d8a242.json", + "jsonFile" : "target-HydraEngine-RelWithDebInfo-6380502de83523fc2633.json", "name" : "HydraEngine", "projectIndex" : 1 }, diff --git a/build/.cmake/api/v1/reply/index-2026-08-04T20-32-34-0190.json b/build/.cmake/api/v1/reply/index-2026-08-06T11-46-48-0603.json similarity index 94% rename from build/.cmake/api/v1/reply/index-2026-08-04T20-32-34-0190.json rename to build/.cmake/api/v1/reply/index-2026-08-06T11-46-48-0603.json index f4603c3..95d9138 100644 --- a/build/.cmake/api/v1/reply/index-2026-08-04T20-32-34-0190.json +++ b/build/.cmake/api/v1/reply/index-2026-08-06T11-46-48-0603.json @@ -27,7 +27,7 @@ "objects" : [ { - "jsonFile" : "codemodel-v2-b00a87c0d8bd86bc0bfe.json", + "jsonFile" : "codemodel-v2-096b8a8b347f4803f005.json", "kind" : "codemodel", "version" : { @@ -100,7 +100,7 @@ } }, { - "jsonFile" : "codemodel-v2-b00a87c0d8bd86bc0bfe.json", + "jsonFile" : "codemodel-v2-096b8a8b347f4803f005.json", "kind" : "codemodel", "version" : { diff --git a/build/.cmake/api/v1/reply/target-ALL_BUILD-MinSizeRel-30097c8e6651db3aff43.json b/build/.cmake/api/v1/reply/target-ALL_BUILD-Debug-21126e6f26f8151b82a1.json similarity index 100% rename from build/.cmake/api/v1/reply/target-ALL_BUILD-MinSizeRel-30097c8e6651db3aff43.json rename to build/.cmake/api/v1/reply/target-ALL_BUILD-Debug-21126e6f26f8151b82a1.json index 9fd930e..3293cbc 100644 --- a/build/.cmake/api/v1/reply/target-ALL_BUILD-MinSizeRel-30097c8e6651db3aff43.json +++ b/build/.cmake/api/v1/reply/target-ALL_BUILD-Debug-21126e6f26f8151b82a1.json @@ -22,10 +22,10 @@ "dependencies" : [ { - "id" : "HydraEngine::@fafd37b19aacd4c483ed" + "id" : "ZERO_CHECK::@6890427a1f51a3e7e1df" }, { - "id" : "ZERO_CHECK::@6890427a1f51a3e7e1df" + "id" : "HydraEngine::@fafd37b19aacd4c483ed" } ], "folder" : diff --git a/build/.cmake/api/v1/reply/target-ALL_BUILD-RelWithDebInfo-9ddbbbeb4caedf0a48f0.json b/build/.cmake/api/v1/reply/target-ALL_BUILD-Debug-79cb89fa590649c6cd6a.json similarity index 100% rename from build/.cmake/api/v1/reply/target-ALL_BUILD-RelWithDebInfo-9ddbbbeb4caedf0a48f0.json rename to build/.cmake/api/v1/reply/target-ALL_BUILD-Debug-79cb89fa590649c6cd6a.json index 93dc2e3..3ef51d0 100644 --- a/build/.cmake/api/v1/reply/target-ALL_BUILD-RelWithDebInfo-9ddbbbeb4caedf0a48f0.json +++ b/build/.cmake/api/v1/reply/target-ALL_BUILD-Debug-79cb89fa590649c6cd6a.json @@ -25,10 +25,10 @@ "id" : "HydraClient::@6890427a1f51a3e7e1df" }, { - "id" : "HydraEngine::@fafd37b19aacd4c483ed" + "id" : "ZERO_CHECK::@6890427a1f51a3e7e1df" }, { - "id" : "ZERO_CHECK::@6890427a1f51a3e7e1df" + "id" : "HydraEngine::@fafd37b19aacd4c483ed" } ], "folder" : diff --git a/build/.cmake/api/v1/reply/target-ALL_BUILD-RelWithDebInfo-30097c8e6651db3aff43.json b/build/.cmake/api/v1/reply/target-ALL_BUILD-MinSizeRel-21126e6f26f8151b82a1.json similarity index 100% rename from build/.cmake/api/v1/reply/target-ALL_BUILD-RelWithDebInfo-30097c8e6651db3aff43.json rename to build/.cmake/api/v1/reply/target-ALL_BUILD-MinSizeRel-21126e6f26f8151b82a1.json index 9fd930e..3293cbc 100644 --- a/build/.cmake/api/v1/reply/target-ALL_BUILD-RelWithDebInfo-30097c8e6651db3aff43.json +++ b/build/.cmake/api/v1/reply/target-ALL_BUILD-MinSizeRel-21126e6f26f8151b82a1.json @@ -22,10 +22,10 @@ "dependencies" : [ { - "id" : "HydraEngine::@fafd37b19aacd4c483ed" + "id" : "ZERO_CHECK::@6890427a1f51a3e7e1df" }, { - "id" : "ZERO_CHECK::@6890427a1f51a3e7e1df" + "id" : "HydraEngine::@fafd37b19aacd4c483ed" } ], "folder" : diff --git a/build/.cmake/api/v1/reply/target-ALL_BUILD-MinSizeRel-9ddbbbeb4caedf0a48f0.json b/build/.cmake/api/v1/reply/target-ALL_BUILD-MinSizeRel-79cb89fa590649c6cd6a.json similarity index 100% rename from build/.cmake/api/v1/reply/target-ALL_BUILD-MinSizeRel-9ddbbbeb4caedf0a48f0.json rename to build/.cmake/api/v1/reply/target-ALL_BUILD-MinSizeRel-79cb89fa590649c6cd6a.json index 93dc2e3..3ef51d0 100644 --- a/build/.cmake/api/v1/reply/target-ALL_BUILD-MinSizeRel-9ddbbbeb4caedf0a48f0.json +++ b/build/.cmake/api/v1/reply/target-ALL_BUILD-MinSizeRel-79cb89fa590649c6cd6a.json @@ -25,10 +25,10 @@ "id" : "HydraClient::@6890427a1f51a3e7e1df" }, { - "id" : "HydraEngine::@fafd37b19aacd4c483ed" + "id" : "ZERO_CHECK::@6890427a1f51a3e7e1df" }, { - "id" : "ZERO_CHECK::@6890427a1f51a3e7e1df" + "id" : "HydraEngine::@fafd37b19aacd4c483ed" } ], "folder" : diff --git a/build/.cmake/api/v1/reply/target-ALL_BUILD-Debug-30097c8e6651db3aff43.json b/build/.cmake/api/v1/reply/target-ALL_BUILD-RelWithDebInfo-21126e6f26f8151b82a1.json similarity index 100% rename from build/.cmake/api/v1/reply/target-ALL_BUILD-Debug-30097c8e6651db3aff43.json rename to build/.cmake/api/v1/reply/target-ALL_BUILD-RelWithDebInfo-21126e6f26f8151b82a1.json index 9fd930e..3293cbc 100644 --- a/build/.cmake/api/v1/reply/target-ALL_BUILD-Debug-30097c8e6651db3aff43.json +++ b/build/.cmake/api/v1/reply/target-ALL_BUILD-RelWithDebInfo-21126e6f26f8151b82a1.json @@ -22,10 +22,10 @@ "dependencies" : [ { - "id" : "HydraEngine::@fafd37b19aacd4c483ed" + "id" : "ZERO_CHECK::@6890427a1f51a3e7e1df" }, { - "id" : "ZERO_CHECK::@6890427a1f51a3e7e1df" + "id" : "HydraEngine::@fafd37b19aacd4c483ed" } ], "folder" : diff --git a/build/.cmake/api/v1/reply/target-ALL_BUILD-Release-9ddbbbeb4caedf0a48f0.json b/build/.cmake/api/v1/reply/target-ALL_BUILD-RelWithDebInfo-79cb89fa590649c6cd6a.json similarity index 100% rename from build/.cmake/api/v1/reply/target-ALL_BUILD-Release-9ddbbbeb4caedf0a48f0.json rename to build/.cmake/api/v1/reply/target-ALL_BUILD-RelWithDebInfo-79cb89fa590649c6cd6a.json index 93dc2e3..3ef51d0 100644 --- a/build/.cmake/api/v1/reply/target-ALL_BUILD-Release-9ddbbbeb4caedf0a48f0.json +++ b/build/.cmake/api/v1/reply/target-ALL_BUILD-RelWithDebInfo-79cb89fa590649c6cd6a.json @@ -25,10 +25,10 @@ "id" : "HydraClient::@6890427a1f51a3e7e1df" }, { - "id" : "HydraEngine::@fafd37b19aacd4c483ed" + "id" : "ZERO_CHECK::@6890427a1f51a3e7e1df" }, { - "id" : "ZERO_CHECK::@6890427a1f51a3e7e1df" + "id" : "HydraEngine::@fafd37b19aacd4c483ed" } ], "folder" : diff --git a/build/.cmake/api/v1/reply/target-ALL_BUILD-Release-30097c8e6651db3aff43.json b/build/.cmake/api/v1/reply/target-ALL_BUILD-Release-21126e6f26f8151b82a1.json similarity index 100% rename from build/.cmake/api/v1/reply/target-ALL_BUILD-Release-30097c8e6651db3aff43.json rename to build/.cmake/api/v1/reply/target-ALL_BUILD-Release-21126e6f26f8151b82a1.json index 9fd930e..3293cbc 100644 --- a/build/.cmake/api/v1/reply/target-ALL_BUILD-Release-30097c8e6651db3aff43.json +++ b/build/.cmake/api/v1/reply/target-ALL_BUILD-Release-21126e6f26f8151b82a1.json @@ -22,10 +22,10 @@ "dependencies" : [ { - "id" : "HydraEngine::@fafd37b19aacd4c483ed" + "id" : "ZERO_CHECK::@6890427a1f51a3e7e1df" }, { - "id" : "ZERO_CHECK::@6890427a1f51a3e7e1df" + "id" : "HydraEngine::@fafd37b19aacd4c483ed" } ], "folder" : diff --git a/build/.cmake/api/v1/reply/target-ALL_BUILD-Debug-9ddbbbeb4caedf0a48f0.json b/build/.cmake/api/v1/reply/target-ALL_BUILD-Release-79cb89fa590649c6cd6a.json similarity index 100% rename from build/.cmake/api/v1/reply/target-ALL_BUILD-Debug-9ddbbbeb4caedf0a48f0.json rename to build/.cmake/api/v1/reply/target-ALL_BUILD-Release-79cb89fa590649c6cd6a.json index 93dc2e3..3ef51d0 100644 --- a/build/.cmake/api/v1/reply/target-ALL_BUILD-Debug-9ddbbbeb4caedf0a48f0.json +++ b/build/.cmake/api/v1/reply/target-ALL_BUILD-Release-79cb89fa590649c6cd6a.json @@ -25,10 +25,10 @@ "id" : "HydraClient::@6890427a1f51a3e7e1df" }, { - "id" : "HydraEngine::@fafd37b19aacd4c483ed" + "id" : "ZERO_CHECK::@6890427a1f51a3e7e1df" }, { - "id" : "ZERO_CHECK::@6890427a1f51a3e7e1df" + "id" : "HydraEngine::@fafd37b19aacd4c483ed" } ], "folder" : diff --git a/build/.cmake/api/v1/reply/target-HydraClient-Debug-78ce361b98c7c89e9629.json b/build/.cmake/api/v1/reply/target-HydraClient-Debug-ccca9689ebe6b19fe65a.json similarity index 100% rename from build/.cmake/api/v1/reply/target-HydraClient-Debug-78ce361b98c7c89e9629.json rename to build/.cmake/api/v1/reply/target-HydraClient-Debug-ccca9689ebe6b19fe65a.json index 47646bd..c7b1ff5 100644 --- a/build/.cmake/api/v1/reply/target-HydraClient-Debug-78ce361b98c7c89e9629.json +++ b/build/.cmake/api/v1/reply/target-HydraClient-Debug-ccca9689ebe6b19fe65a.json @@ -107,11 +107,11 @@ "dependencies" : [ { - "backtrace" : 2, - "id" : "HydraEngine::@fafd37b19aacd4c483ed" + "id" : "ZERO_CHECK::@6890427a1f51a3e7e1df" }, { - "id" : "ZERO_CHECK::@6890427a1f51a3e7e1df" + "backtrace" : 2, + "id" : "HydraEngine::@fafd37b19aacd4c483ed" } ], "id" : "HydraClient::@6890427a1f51a3e7e1df", diff --git a/build/.cmake/api/v1/reply/target-HydraClient-MinSizeRel-0b1754e9511a8dea2861.json b/build/.cmake/api/v1/reply/target-HydraClient-MinSizeRel-707588ed524688a0f034.json similarity index 100% rename from build/.cmake/api/v1/reply/target-HydraClient-MinSizeRel-0b1754e9511a8dea2861.json rename to build/.cmake/api/v1/reply/target-HydraClient-MinSizeRel-707588ed524688a0f034.json index 14caed4..9381a96 100644 --- a/build/.cmake/api/v1/reply/target-HydraClient-MinSizeRel-0b1754e9511a8dea2861.json +++ b/build/.cmake/api/v1/reply/target-HydraClient-MinSizeRel-707588ed524688a0f034.json @@ -107,11 +107,11 @@ "dependencies" : [ { - "backtrace" : 2, - "id" : "HydraEngine::@fafd37b19aacd4c483ed" + "id" : "ZERO_CHECK::@6890427a1f51a3e7e1df" }, { - "id" : "ZERO_CHECK::@6890427a1f51a3e7e1df" + "backtrace" : 2, + "id" : "HydraEngine::@fafd37b19aacd4c483ed" } ], "id" : "HydraClient::@6890427a1f51a3e7e1df", diff --git a/build/.cmake/api/v1/reply/target-HydraClient-RelWithDebInfo-19110864938462bdea5b.json b/build/.cmake/api/v1/reply/target-HydraClient-RelWithDebInfo-a4b1a5ac731bdcc03733.json similarity index 100% rename from build/.cmake/api/v1/reply/target-HydraClient-RelWithDebInfo-19110864938462bdea5b.json rename to build/.cmake/api/v1/reply/target-HydraClient-RelWithDebInfo-a4b1a5ac731bdcc03733.json index b28d9b3..0e5cae5 100644 --- a/build/.cmake/api/v1/reply/target-HydraClient-RelWithDebInfo-19110864938462bdea5b.json +++ b/build/.cmake/api/v1/reply/target-HydraClient-RelWithDebInfo-a4b1a5ac731bdcc03733.json @@ -107,11 +107,11 @@ "dependencies" : [ { - "backtrace" : 2, - "id" : "HydraEngine::@fafd37b19aacd4c483ed" + "id" : "ZERO_CHECK::@6890427a1f51a3e7e1df" }, { - "id" : "ZERO_CHECK::@6890427a1f51a3e7e1df" + "backtrace" : 2, + "id" : "HydraEngine::@fafd37b19aacd4c483ed" } ], "id" : "HydraClient::@6890427a1f51a3e7e1df", diff --git a/build/.cmake/api/v1/reply/target-HydraClient-Release-5f750d1feb1d099be72b.json b/build/.cmake/api/v1/reply/target-HydraClient-Release-f300bf694420197200c5.json similarity index 100% rename from build/.cmake/api/v1/reply/target-HydraClient-Release-5f750d1feb1d099be72b.json rename to build/.cmake/api/v1/reply/target-HydraClient-Release-f300bf694420197200c5.json index f63d5ce..331eab5 100644 --- a/build/.cmake/api/v1/reply/target-HydraClient-Release-5f750d1feb1d099be72b.json +++ b/build/.cmake/api/v1/reply/target-HydraClient-Release-f300bf694420197200c5.json @@ -107,11 +107,11 @@ "dependencies" : [ { - "backtrace" : 2, - "id" : "HydraEngine::@fafd37b19aacd4c483ed" + "id" : "ZERO_CHECK::@6890427a1f51a3e7e1df" }, { - "id" : "ZERO_CHECK::@6890427a1f51a3e7e1df" + "backtrace" : 2, + "id" : "HydraEngine::@fafd37b19aacd4c483ed" } ], "id" : "HydraClient::@6890427a1f51a3e7e1df", diff --git a/build/.cmake/api/v1/reply/target-HydraEngine-Debug-7e25cfc8f576cb7c79ae.json b/build/.cmake/api/v1/reply/target-HydraEngine-Debug-c5670bbc5edcb254f4f2.json similarity index 98% rename from build/.cmake/api/v1/reply/target-HydraEngine-Debug-7e25cfc8f576cb7c79ae.json rename to build/.cmake/api/v1/reply/target-HydraEngine-Debug-c5670bbc5edcb254f4f2.json index 4d5a6f6..6debc33 100644 --- a/build/.cmake/api/v1/reply/target-HydraEngine-Debug-7e25cfc8f576cb7c79ae.json +++ b/build/.cmake/api/v1/reply/target-HydraEngine-Debug-c5670bbc5edcb254f4f2.json @@ -206,12 +206,12 @@ 31, 34, 37, - 41, + 39, 43, - 47, - 51, + 45, + 49, 53, - 64, + 55, 66, 68, 70, @@ -223,8 +223,8 @@ 82, 84, 86, - 89, - 92, + 88, + 91, 94, 96, 98, @@ -234,7 +234,8 @@ 106, 108, 110, - 114 + 112, + 116 ] } ], @@ -328,12 +329,12 @@ 31, 34, 37, - 41, + 39, 43, - 47, - 51, + 45, + 49, 53, - 64, + 55, 66, 68, 70, @@ -345,8 +346,8 @@ 82, 84, 86, - 89, - 92, + 88, + 91, 94, 96, 98, @@ -356,7 +357,8 @@ 106, 108, 110, - 114 + 112, + 116 ] }, { @@ -386,18 +388,17 @@ 35, 36, 38, - 39, 40, + 41, 42, 44, - 45, 46, + 47, 48, - 49, 50, + 51, 52, 54, - 55, 56, 57, 58, @@ -406,6 +407,7 @@ 61, 62, 63, + 64, 65, 67, 69, @@ -418,9 +420,9 @@ 83, 85, 87, - 88, + 89, 90, - 91, + 92, 93, 95, 97, @@ -431,9 +433,10 @@ 107, 109, 111, - 112, 113, - 115 + 114, + 115, + 117 ] } ], @@ -639,6 +642,17 @@ "path" : "HydraEngine/source/buffer/HydraShadowBuffer.h", "sourceGroupIndex" : 1 }, + { + "backtrace" : 1, + "compileGroupIndex" : 0, + "path" : "HydraEngine/source/buffer/HydraShadowBufferManager.cpp", + "sourceGroupIndex" : 0 + }, + { + "backtrace" : 1, + "path" : "HydraEngine/source/buffer/HydraShadowBufferManager.h", + "sourceGroupIndex" : 1 + }, { "backtrace" : 1, "compileGroupIndex" : 0, diff --git a/build/.cmake/api/v1/reply/target-HydraEngine-MinSizeRel-dd7605eef8b41531d436.json b/build/.cmake/api/v1/reply/target-HydraEngine-MinSizeRel-3f820b7fb6c0cca80b22.json similarity index 98% rename from build/.cmake/api/v1/reply/target-HydraEngine-MinSizeRel-dd7605eef8b41531d436.json rename to build/.cmake/api/v1/reply/target-HydraEngine-MinSizeRel-3f820b7fb6c0cca80b22.json index 2d8ac2a..225676e 100644 --- a/build/.cmake/api/v1/reply/target-HydraEngine-MinSizeRel-dd7605eef8b41531d436.json +++ b/build/.cmake/api/v1/reply/target-HydraEngine-MinSizeRel-3f820b7fb6c0cca80b22.json @@ -206,12 +206,12 @@ 31, 34, 37, - 41, + 39, 43, - 47, - 51, + 45, + 49, 53, - 64, + 55, 66, 68, 70, @@ -223,8 +223,8 @@ 82, 84, 86, - 89, - 92, + 88, + 91, 94, 96, 98, @@ -234,7 +234,8 @@ 106, 108, 110, - 114 + 112, + 116 ] } ], @@ -328,12 +329,12 @@ 31, 34, 37, - 41, + 39, 43, - 47, - 51, + 45, + 49, 53, - 64, + 55, 66, 68, 70, @@ -345,8 +346,8 @@ 82, 84, 86, - 89, - 92, + 88, + 91, 94, 96, 98, @@ -356,7 +357,8 @@ 106, 108, 110, - 114 + 112, + 116 ] }, { @@ -386,18 +388,17 @@ 35, 36, 38, - 39, 40, + 41, 42, 44, - 45, 46, + 47, 48, - 49, 50, + 51, 52, 54, - 55, 56, 57, 58, @@ -406,6 +407,7 @@ 61, 62, 63, + 64, 65, 67, 69, @@ -418,9 +420,9 @@ 83, 85, 87, - 88, + 89, 90, - 91, + 92, 93, 95, 97, @@ -431,9 +433,10 @@ 107, 109, 111, - 112, 113, - 115 + 114, + 115, + 117 ] } ], @@ -639,6 +642,17 @@ "path" : "HydraEngine/source/buffer/HydraShadowBuffer.h", "sourceGroupIndex" : 1 }, + { + "backtrace" : 1, + "compileGroupIndex" : 0, + "path" : "HydraEngine/source/buffer/HydraShadowBufferManager.cpp", + "sourceGroupIndex" : 0 + }, + { + "backtrace" : 1, + "path" : "HydraEngine/source/buffer/HydraShadowBufferManager.h", + "sourceGroupIndex" : 1 + }, { "backtrace" : 1, "compileGroupIndex" : 0, diff --git a/build/.cmake/api/v1/reply/target-HydraEngine-RelWithDebInfo-86a99b5410ea40d8a242.json b/build/.cmake/api/v1/reply/target-HydraEngine-RelWithDebInfo-6380502de83523fc2633.json similarity index 98% rename from build/.cmake/api/v1/reply/target-HydraEngine-RelWithDebInfo-86a99b5410ea40d8a242.json rename to build/.cmake/api/v1/reply/target-HydraEngine-RelWithDebInfo-6380502de83523fc2633.json index cb0b498..f31fceb 100644 --- a/build/.cmake/api/v1/reply/target-HydraEngine-RelWithDebInfo-86a99b5410ea40d8a242.json +++ b/build/.cmake/api/v1/reply/target-HydraEngine-RelWithDebInfo-6380502de83523fc2633.json @@ -206,12 +206,12 @@ 31, 34, 37, - 41, + 39, 43, - 47, - 51, + 45, + 49, 53, - 64, + 55, 66, 68, 70, @@ -223,8 +223,8 @@ 82, 84, 86, - 89, - 92, + 88, + 91, 94, 96, 98, @@ -234,7 +234,8 @@ 106, 108, 110, - 114 + 112, + 116 ] } ], @@ -328,12 +329,12 @@ 31, 34, 37, - 41, + 39, 43, - 47, - 51, + 45, + 49, 53, - 64, + 55, 66, 68, 70, @@ -345,8 +346,8 @@ 82, 84, 86, - 89, - 92, + 88, + 91, 94, 96, 98, @@ -356,7 +357,8 @@ 106, 108, 110, - 114 + 112, + 116 ] }, { @@ -386,18 +388,17 @@ 35, 36, 38, - 39, 40, + 41, 42, 44, - 45, 46, + 47, 48, - 49, 50, + 51, 52, 54, - 55, 56, 57, 58, @@ -406,6 +407,7 @@ 61, 62, 63, + 64, 65, 67, 69, @@ -418,9 +420,9 @@ 83, 85, 87, - 88, + 89, 90, - 91, + 92, 93, 95, 97, @@ -431,9 +433,10 @@ 107, 109, 111, - 112, 113, - 115 + 114, + 115, + 117 ] } ], @@ -639,6 +642,17 @@ "path" : "HydraEngine/source/buffer/HydraShadowBuffer.h", "sourceGroupIndex" : 1 }, + { + "backtrace" : 1, + "compileGroupIndex" : 0, + "path" : "HydraEngine/source/buffer/HydraShadowBufferManager.cpp", + "sourceGroupIndex" : 0 + }, + { + "backtrace" : 1, + "path" : "HydraEngine/source/buffer/HydraShadowBufferManager.h", + "sourceGroupIndex" : 1 + }, { "backtrace" : 1, "compileGroupIndex" : 0, diff --git a/build/.cmake/api/v1/reply/target-HydraEngine-Release-5b7c77d65c6b07892d53.json b/build/.cmake/api/v1/reply/target-HydraEngine-Release-88bc84ff8a06c001fb0b.json similarity index 98% rename from build/.cmake/api/v1/reply/target-HydraEngine-Release-5b7c77d65c6b07892d53.json rename to build/.cmake/api/v1/reply/target-HydraEngine-Release-88bc84ff8a06c001fb0b.json index ce54f8f..b3d1387 100644 --- a/build/.cmake/api/v1/reply/target-HydraEngine-Release-5b7c77d65c6b07892d53.json +++ b/build/.cmake/api/v1/reply/target-HydraEngine-Release-88bc84ff8a06c001fb0b.json @@ -206,12 +206,12 @@ 31, 34, 37, - 41, + 39, 43, - 47, - 51, + 45, + 49, 53, - 64, + 55, 66, 68, 70, @@ -223,8 +223,8 @@ 82, 84, 86, - 89, - 92, + 88, + 91, 94, 96, 98, @@ -234,7 +234,8 @@ 106, 108, 110, - 114 + 112, + 116 ] } ], @@ -328,12 +329,12 @@ 31, 34, 37, - 41, + 39, 43, - 47, - 51, + 45, + 49, 53, - 64, + 55, 66, 68, 70, @@ -345,8 +346,8 @@ 82, 84, 86, - 89, - 92, + 88, + 91, 94, 96, 98, @@ -356,7 +357,8 @@ 106, 108, 110, - 114 + 112, + 116 ] }, { @@ -386,18 +388,17 @@ 35, 36, 38, - 39, 40, + 41, 42, 44, - 45, 46, + 47, 48, - 49, 50, + 51, 52, 54, - 55, 56, 57, 58, @@ -406,6 +407,7 @@ 61, 62, 63, + 64, 65, 67, 69, @@ -418,9 +420,9 @@ 83, 85, 87, - 88, + 89, 90, - 91, + 92, 93, 95, 97, @@ -431,9 +433,10 @@ 107, 109, 111, - 112, 113, - 115 + 114, + 115, + 117 ] } ], @@ -639,6 +642,17 @@ "path" : "HydraEngine/source/buffer/HydraShadowBuffer.h", "sourceGroupIndex" : 1 }, + { + "backtrace" : 1, + "compileGroupIndex" : 0, + "path" : "HydraEngine/source/buffer/HydraShadowBufferManager.cpp", + "sourceGroupIndex" : 0 + }, + { + "backtrace" : 1, + "path" : "HydraEngine/source/buffer/HydraShadowBufferManager.h", + "sourceGroupIndex" : 1 + }, { "backtrace" : 1, "compileGroupIndex" : 0, diff --git a/build/CMakeFiles/4.3.3/CMakeDetermineCompilerABI_CXX.bin b/build/CMakeFiles/4.3.3/CMakeDetermineCompilerABI_CXX.bin index e7445f4..75e8d10 100644 Binary files a/build/CMakeFiles/4.3.3/CMakeDetermineCompilerABI_CXX.bin and b/build/CMakeFiles/4.3.3/CMakeDetermineCompilerABI_CXX.bin differ diff --git a/build/CMakeFiles/CMakeConfigureLog.yaml b/build/CMakeFiles/CMakeConfigureLog.yaml index 435dec2..dc788f4 100644 --- a/build/CMakeFiles/CMakeConfigureLog.yaml +++ b/build/CMakeFiles/CMakeConfigureLog.yaml @@ -105,7 +105,7 @@ events: The output was: 0 MSBuild version 17.14.40+3e7442088 for .NET Framework - Build started 04/08/2026 17:53:56. + Build started 05/08/2026 14:49:31. Project "C:\\Code\\HydraV3\\build\\CMakeFiles\\4.3.3\\CompilerIdCXX\\CompilerIdCXX.vcxproj" on node 1 (default targets). PrepareForBuild: @@ -134,7 +134,7 @@ events: 0 Warning(s) 0 Error(s) - Time Elapsed 00:00:00.50 + Time Elapsed 00:00:00.75 Compilation of the CXX compiler identification source "CMakeCXXCompilerId.cpp" produced "CompilerIdCXX.exe" @@ -1020,8 +1020,8 @@ events: checks: - "Detecting CXX compiler ABI info" directories: - source: "C:/Code/HydraV3/build/CMakeFiles/CMakeScratch/TryCompile-k472us" - binary: "C:/Code/HydraV3/build/CMakeFiles/CMakeScratch/TryCompile-k472us" + source: "C:/Code/HydraV3/build/CMakeFiles/CMakeScratch/TryCompile-94obry" + binary: "C:/Code/HydraV3/build/CMakeFiles/CMakeScratch/TryCompile-94obry" cmakeVariables: CMAKE_CXX_FLAGS: "/DWIN32 /D_WINDOWS /EHsc" CMAKE_CXX_FLAGS_DEBUG: "/Ob0 /Od /RTC1" @@ -1032,33 +1032,33 @@ events: variable: "CMAKE_CXX_ABI_COMPILED" cached: true stdout: | - Change Dir: 'C:/Code/HydraV3/build/CMakeFiles/CMakeScratch/TryCompile-k472us' + Change Dir: 'C:/Code/HydraV3/build/CMakeFiles/CMakeScratch/TryCompile-94obry' - Run Build Command(s): "C:/Program Files/Microsoft Visual Studio/2022/Professional/MSBuild/Current/Bin/amd64/MSBuild.exe" cmTC_53912.vcxproj /p:Configuration=Debug /p:Platform=x64 /p:VisualStudioVersion=17.0 /v:n + Run Build Command(s): "C:/Program Files/Microsoft Visual Studio/2022/Professional/MSBuild/Current/Bin/amd64/MSBuild.exe" cmTC_c2249.vcxproj /p:Configuration=Debug /p:Platform=x64 /p:VisualStudioVersion=17.0 /v:n MSBuild version 17.14.40+3e7442088 for .NET Framework - Build started 04/08/2026 17:53:57. + Build started 05/08/2026 14:49:33. - Project "C:\\Code\\HydraV3\\build\\CMakeFiles\\CMakeScratch\\TryCompile-k472us\\cmTC_53912.vcxproj" on node 1 (default targets). + Project "C:\\Code\\HydraV3\\build\\CMakeFiles\\CMakeScratch\\TryCompile-94obry\\cmTC_c2249.vcxproj" on node 1 (default targets). PrepareForBuild: Structured output is enabled. The formatting of compiler diagnostics will reflect the error hierarchy. See https://aka.ms/cpp/structured-output for more details. - Creating directory "C:\\Code\\HydraV3\\build\\CMakeFiles\\CMakeScratch\\TryCompile-k472us\\Debug\\". - Creating directory "cmTC_53912.dir\\Debug\\cmTC_53912.tlog\\". + Creating directory "C:\\Code\\HydraV3\\build\\CMakeFiles\\CMakeScratch\\TryCompile-94obry\\Debug\\". + Creating directory "cmTC_c2249.dir\\Debug\\cmTC_c2249.tlog\\". InitializeBuildStatus: - Creating "cmTC_53912.dir\\Debug\\cmTC_53912.tlog\\unsuccessfulbuild" because "AlwaysCreate" was specified. - Touching "cmTC_53912.dir\\Debug\\cmTC_53912.tlog\\unsuccessfulbuild". + Creating "cmTC_c2249.dir\\Debug\\cmTC_c2249.tlog\\unsuccessfulbuild" because "AlwaysCreate" was specified. + Touching "cmTC_c2249.dir\\Debug\\cmTC_c2249.tlog\\unsuccessfulbuild". ClCompile: - C:\\Program Files\\Microsoft Visual Studio\\2022\\Professional\\VC\\Tools\\MSVC\\14.44.35207\\bin\\HostX64\\x64\\CL.exe /c /Zi /W1 /WX- /diagnostics:column /Od /Ob0 /D _MBCS /D WIN32 /D _WINDOWS /D _MBCS /D "CMAKE_INTDIR=\\"Debug\\"" /EHsc /RTC1 /MDd /std:c++17 /Fo"cmTC_53912.dir\\Debug\\\\" /Fd"cmTC_53912.dir\\Debug\\vc143.pdb" /external:W1 /TP /errorReport:queue "C:\\Program Files\\CMake\\share\\cmake-4.3\\Modules\\CMakeCXXCompilerABI.cpp" + C:\\Program Files\\Microsoft Visual Studio\\2022\\Professional\\VC\\Tools\\MSVC\\14.44.35207\\bin\\HostX64\\x64\\CL.exe /c /Zi /W1 /WX- /diagnostics:column /Od /Ob0 /D _MBCS /D WIN32 /D _WINDOWS /D _MBCS /D "CMAKE_INTDIR=\\"Debug\\"" /EHsc /RTC1 /MDd /std:c++17 /Fo"cmTC_c2249.dir\\Debug\\\\" /Fd"cmTC_c2249.dir\\Debug\\vc143.pdb" /external:W1 /TP /errorReport:queue "C:\\Program Files\\CMake\\share\\cmake-4.3\\Modules\\CMakeCXXCompilerABI.cpp" Microsoft (R) C/C++ Optimizing Compiler Version 19.44.35225 for x64 Copyright (C) Microsoft Corporation. All rights reserved. - cl /c /Zi /W1 /WX- /diagnostics:column /Od /Ob0 /D _MBCS /D WIN32 /D _WINDOWS /D _MBCS /D "CMAKE_INTDIR=\\"Debug\\"" /EHsc /RTC1 /MDd /std:c++17 /Fo"cmTC_53912.dir\\Debug\\\\" /Fd"cmTC_53912.dir\\Debug\\vc143.pdb" /external:W1 /TP /errorReport:queue "C:\\Program Files\\CMake\\share\\cmake-4.3\\Modules\\CMakeCXXCompilerABI.cpp" + cl /c /Zi /W1 /WX- /diagnostics:column /Od /Ob0 /D _MBCS /D WIN32 /D _WINDOWS /D _MBCS /D "CMAKE_INTDIR=\\"Debug\\"" /EHsc /RTC1 /MDd /std:c++17 /Fo"cmTC_c2249.dir\\Debug\\\\" /Fd"cmTC_c2249.dir\\Debug\\vc143.pdb" /external:W1 /TP /errorReport:queue "C:\\Program Files\\CMake\\share\\cmake-4.3\\Modules\\CMakeCXXCompilerABI.cpp" CMakeCXXCompilerABI.cpp Link: - C:\\Program Files\\Microsoft Visual Studio\\2022\\Professional\\VC\\Tools\\MSVC\\14.44.35207\\bin\\HostX64\\x64\\link.exe /OUT:"C:\\Code\\HydraV3\\build\\CMakeFiles\\CMakeScratch\\TryCompile-k472us\\Debug\\cmTC_53912.exe" /INCREMENTAL /ILK:"cmTC_53912.dir\\Debug\\cmTC_53912.ilk" /NOLOGO kernel32.lib user32.lib gdi32.lib winspool.lib shell32.lib ole32.lib oleaut32.lib uuid.lib comdlg32.lib advapi32.lib /MANIFEST /MANIFESTUAC:"level='asInvoker' uiAccess='false'" /manifest:embed /DEBUG /PDB:"C:/Code/HydraV3/build/CMakeFiles/CMakeScratch/TryCompile-k472us/Debug/cmTC_53912.pdb" /SUBSYSTEM:CONSOLE /TLBID:1 /IMPLIB:"C:/Code/HydraV3/build/CMakeFiles/CMakeScratch/TryCompile-k472us/Debug/cmTC_53912.lib" /MACHINE:X64 /machine:x64 cmTC_53912.dir\\Debug\\CMakeCXXCompilerABI.obj - cmTC_53912.vcxproj -> C:\\Code\\HydraV3\\build\\CMakeFiles\\CMakeScratch\\TryCompile-k472us\\Debug\\cmTC_53912.exe + C:\\Program Files\\Microsoft Visual Studio\\2022\\Professional\\VC\\Tools\\MSVC\\14.44.35207\\bin\\HostX64\\x64\\link.exe /OUT:"C:\\Code\\HydraV3\\build\\CMakeFiles\\CMakeScratch\\TryCompile-94obry\\Debug\\cmTC_c2249.exe" /INCREMENTAL /ILK:"cmTC_c2249.dir\\Debug\\cmTC_c2249.ilk" /NOLOGO kernel32.lib user32.lib gdi32.lib winspool.lib shell32.lib ole32.lib oleaut32.lib uuid.lib comdlg32.lib advapi32.lib /MANIFEST /MANIFESTUAC:"level='asInvoker' uiAccess='false'" /manifest:embed /DEBUG /PDB:"C:/Code/HydraV3/build/CMakeFiles/CMakeScratch/TryCompile-94obry/Debug/cmTC_c2249.pdb" /SUBSYSTEM:CONSOLE /TLBID:1 /IMPLIB:"C:/Code/HydraV3/build/CMakeFiles/CMakeScratch/TryCompile-94obry/Debug/cmTC_c2249.lib" /MACHINE:X64 /machine:x64 cmTC_c2249.dir\\Debug\\CMakeCXXCompilerABI.obj + cmTC_c2249.vcxproj -> C:\\Code\\HydraV3\\build\\CMakeFiles\\CMakeScratch\\TryCompile-94obry\\Debug\\cmTC_c2249.exe FinalizeBuildStatus: - Deleting file "cmTC_53912.dir\\Debug\\cmTC_53912.tlog\\unsuccessfulbuild". - Touching "cmTC_53912.dir\\Debug\\cmTC_53912.tlog\\cmTC_53912.lastbuildstate". - Done Building Project "C:\\Code\\HydraV3\\build\\CMakeFiles\\CMakeScratch\\TryCompile-k472us\\cmTC_53912.vcxproj" (default targets). + Deleting file "cmTC_c2249.dir\\Debug\\cmTC_c2249.tlog\\unsuccessfulbuild". + Touching "cmTC_c2249.dir\\Debug\\cmTC_c2249.tlog\\cmTC_c2249.lastbuildstate". + Done Building Project "C:\\Code\\HydraV3\\build\\CMakeFiles\\CMakeScratch\\TryCompile-94obry\\cmTC_c2249.vcxproj" (default targets). Build succeeded. 0 Warning(s) @@ -1109,8 +1109,8 @@ events: checks: - "Performing Test CMAKE_HAVE_LIBC_PTHREAD" directories: - source: "C:/Code/HydraV3/build/CMakeFiles/CMakeScratch/TryCompile-sfg0v2" - binary: "C:/Code/HydraV3/build/CMakeFiles/CMakeScratch/TryCompile-sfg0v2" + source: "C:/Code/HydraV3/build/CMakeFiles/CMakeScratch/TryCompile-ladxj9" + binary: "C:/Code/HydraV3/build/CMakeFiles/CMakeScratch/TryCompile-ladxj9" cmakeVariables: CMAKE_CXX_FLAGS: "/DWIN32 /D_WINDOWS /EHsc" CMAKE_CXX_FLAGS_DEBUG: "/Ob0 /Od /RTC1" @@ -1120,39 +1120,39 @@ events: variable: "CMAKE_HAVE_LIBC_PTHREAD" cached: true stdout: | - Change Dir: 'C:/Code/HydraV3/build/CMakeFiles/CMakeScratch/TryCompile-sfg0v2' + Change Dir: 'C:/Code/HydraV3/build/CMakeFiles/CMakeScratch/TryCompile-ladxj9' - Run Build Command(s): "C:/Program Files/Microsoft Visual Studio/2022/Professional/MSBuild/Current/Bin/amd64/MSBuild.exe" cmTC_aa0ba.vcxproj /p:Configuration=Debug /p:Platform=x64 /p:VisualStudioVersion=17.0 /v:n + Run Build Command(s): "C:/Program Files/Microsoft Visual Studio/2022/Professional/MSBuild/Current/Bin/amd64/MSBuild.exe" cmTC_d0be4.vcxproj /p:Configuration=Debug /p:Platform=x64 /p:VisualStudioVersion=17.0 /v:n MSBuild version 17.14.40+3e7442088 for .NET Framework - Build started 04/08/2026 17:53:58. + Build started 05/08/2026 14:49:33. - Project "C:\\Code\\HydraV3\\build\\CMakeFiles\\CMakeScratch\\TryCompile-sfg0v2\\cmTC_aa0ba.vcxproj" on node 1 (default targets). + Project "C:\\Code\\HydraV3\\build\\CMakeFiles\\CMakeScratch\\TryCompile-ladxj9\\cmTC_d0be4.vcxproj" on node 1 (default targets). PrepareForBuild: Structured output is enabled. The formatting of compiler diagnostics will reflect the error hierarchy. See https://aka.ms/cpp/structured-output for more details. - Creating directory "C:\\Code\\HydraV3\\build\\CMakeFiles\\CMakeScratch\\TryCompile-sfg0v2\\Debug\\". - Creating directory "cmTC_aa0ba.dir\\Debug\\cmTC_aa0ba.tlog\\". + Creating directory "C:\\Code\\HydraV3\\build\\CMakeFiles\\CMakeScratch\\TryCompile-ladxj9\\Debug\\". + Creating directory "cmTC_d0be4.dir\\Debug\\cmTC_d0be4.tlog\\". InitializeBuildStatus: - Creating "cmTC_aa0ba.dir\\Debug\\cmTC_aa0ba.tlog\\unsuccessfulbuild" because "AlwaysCreate" was specified. - Touching "cmTC_aa0ba.dir\\Debug\\cmTC_aa0ba.tlog\\unsuccessfulbuild". + Creating "cmTC_d0be4.dir\\Debug\\cmTC_d0be4.tlog\\unsuccessfulbuild" because "AlwaysCreate" was specified. + Touching "cmTC_d0be4.dir\\Debug\\cmTC_d0be4.tlog\\unsuccessfulbuild". ClCompile: - C:\\Program Files\\Microsoft Visual Studio\\2022\\Professional\\VC\\Tools\\MSVC\\14.44.35207\\bin\\HostX64\\x64\\CL.exe /c /Zi /W1 /WX- /diagnostics:column /Od /Ob0 /D _MBCS /D WIN32 /D _WINDOWS /D CMAKE_HAVE_LIBC_PTHREAD /D _MBCS /D "CMAKE_INTDIR=\\"Debug\\"" /EHsc /RTC1 /MDd /std:c++17 /Fo"cmTC_aa0ba.dir\\Debug\\\\" /Fd"cmTC_aa0ba.dir\\Debug\\vc143.pdb" /external:W1 /TP /errorReport:queue "C:\\Code\\HydraV3\\build\\CMakeFiles\\CMakeScratch\\TryCompile-sfg0v2\\src.cxx" + C:\\Program Files\\Microsoft Visual Studio\\2022\\Professional\\VC\\Tools\\MSVC\\14.44.35207\\bin\\HostX64\\x64\\CL.exe /c /Zi /W1 /WX- /diagnostics:column /Od /Ob0 /D _MBCS /D WIN32 /D _WINDOWS /D CMAKE_HAVE_LIBC_PTHREAD /D _MBCS /D "CMAKE_INTDIR=\\"Debug\\"" /EHsc /RTC1 /MDd /std:c++17 /Fo"cmTC_d0be4.dir\\Debug\\\\" /Fd"cmTC_d0be4.dir\\Debug\\vc143.pdb" /external:W1 /TP /errorReport:queue "C:\\Code\\HydraV3\\build\\CMakeFiles\\CMakeScratch\\TryCompile-ladxj9\\src.cxx" Microsoft (R) C/C++ Optimizing Compiler Version 19.44.35225 for x64 Copyright (C) Microsoft Corporation. All rights reserved. - cl /c /Zi /W1 /WX- /diagnostics:column /Od /Ob0 /D _MBCS /D WIN32 /D _WINDOWS /D CMAKE_HAVE_LIBC_PTHREAD /D _MBCS /D "CMAKE_INTDIR=\\"Debug\\"" /EHsc /RTC1 /MDd /std:c++17 /Fo"cmTC_aa0ba.dir\\Debug\\\\" /Fd"cmTC_aa0ba.dir\\Debug\\vc143.pdb" /external:W1 /TP /errorReport:queue "C:\\Code\\HydraV3\\build\\CMakeFiles\\CMakeScratch\\TryCompile-sfg0v2\\src.cxx" + cl /c /Zi /W1 /WX- /diagnostics:column /Od /Ob0 /D _MBCS /D WIN32 /D _WINDOWS /D CMAKE_HAVE_LIBC_PTHREAD /D _MBCS /D "CMAKE_INTDIR=\\"Debug\\"" /EHsc /RTC1 /MDd /std:c++17 /Fo"cmTC_d0be4.dir\\Debug\\\\" /Fd"cmTC_d0be4.dir\\Debug\\vc143.pdb" /external:W1 /TP /errorReport:queue "C:\\Code\\HydraV3\\build\\CMakeFiles\\CMakeScratch\\TryCompile-ladxj9\\src.cxx" src.cxx - C:\\Code\\HydraV3\\build\\CMakeFiles\\CMakeScratch\\TryCompile-sfg0v2\\src.cxx(1,10): error C1083: Cannot open include file: 'pthread.h': No such file or directory [C:\\Code\\HydraV3\\build\\CMakeFiles\\CMakeScratch\\TryCompile-sfg0v2\\cmTC_aa0ba.vcxproj] - Done Building Project "C:\\Code\\HydraV3\\build\\CMakeFiles\\CMakeScratch\\TryCompile-sfg0v2\\cmTC_aa0ba.vcxproj" (default targets) -- FAILED. + C:\\Code\\HydraV3\\build\\CMakeFiles\\CMakeScratch\\TryCompile-ladxj9\\src.cxx(1,10): error C1083: Cannot open include file: 'pthread.h': No such file or directory [C:\\Code\\HydraV3\\build\\CMakeFiles\\CMakeScratch\\TryCompile-ladxj9\\cmTC_d0be4.vcxproj] + Done Building Project "C:\\Code\\HydraV3\\build\\CMakeFiles\\CMakeScratch\\TryCompile-ladxj9\\cmTC_d0be4.vcxproj" (default targets) -- FAILED. Build FAILED. - "C:\\Code\\HydraV3\\build\\CMakeFiles\\CMakeScratch\\TryCompile-sfg0v2\\cmTC_aa0ba.vcxproj" (default target) (1) -> + "C:\\Code\\HydraV3\\build\\CMakeFiles\\CMakeScratch\\TryCompile-ladxj9\\cmTC_d0be4.vcxproj" (default target) (1) -> (ClCompile target) -> - C:\\Code\\HydraV3\\build\\CMakeFiles\\CMakeScratch\\TryCompile-sfg0v2\\src.cxx(1,10): error C1083: Cannot open include file: 'pthread.h': No such file or directory [C:\\Code\\HydraV3\\build\\CMakeFiles\\CMakeScratch\\TryCompile-sfg0v2\\cmTC_aa0ba.vcxproj] + C:\\Code\\HydraV3\\build\\CMakeFiles\\CMakeScratch\\TryCompile-ladxj9\\src.cxx(1,10): error C1083: Cannot open include file: 'pthread.h': No such file or directory [C:\\Code\\HydraV3\\build\\CMakeFiles\\CMakeScratch\\TryCompile-ladxj9\\cmTC_d0be4.vcxproj] 0 Warning(s) 1 Error(s) - Time Elapsed 00:00:00.28 + Time Elapsed 00:00:00.30 exitCode: 1 - @@ -1168,8 +1168,8 @@ events: checks: - "Looking for pthread_create in pthreads" directories: - source: "C:/Code/HydraV3/build/CMakeFiles/CMakeScratch/TryCompile-it98a2" - binary: "C:/Code/HydraV3/build/CMakeFiles/CMakeScratch/TryCompile-it98a2" + source: "C:/Code/HydraV3/build/CMakeFiles/CMakeScratch/TryCompile-xp6u87" + binary: "C:/Code/HydraV3/build/CMakeFiles/CMakeScratch/TryCompile-xp6u87" cmakeVariables: CMAKE_CXX_FLAGS: "/DWIN32 /D_WINDOWS /EHsc" CMAKE_CXX_FLAGS_DEBUG: "/Ob0 /Od /RTC1" @@ -1179,41 +1179,41 @@ events: variable: "CMAKE_HAVE_PTHREADS_CREATE" cached: true stdout: | - Change Dir: 'C:/Code/HydraV3/build/CMakeFiles/CMakeScratch/TryCompile-it98a2' + Change Dir: 'C:/Code/HydraV3/build/CMakeFiles/CMakeScratch/TryCompile-xp6u87' - Run Build Command(s): "C:/Program Files/Microsoft Visual Studio/2022/Professional/MSBuild/Current/Bin/amd64/MSBuild.exe" cmTC_fff4f.vcxproj /p:Configuration=Debug /p:Platform=x64 /p:VisualStudioVersion=17.0 /v:n + Run Build Command(s): "C:/Program Files/Microsoft Visual Studio/2022/Professional/MSBuild/Current/Bin/amd64/MSBuild.exe" cmTC_71e3f.vcxproj /p:Configuration=Debug /p:Platform=x64 /p:VisualStudioVersion=17.0 /v:n MSBuild version 17.14.40+3e7442088 for .NET Framework - Build started 04/08/2026 17:53:59. + Build started 05/08/2026 14:49:34. - Project "C:\\Code\\HydraV3\\build\\CMakeFiles\\CMakeScratch\\TryCompile-it98a2\\cmTC_fff4f.vcxproj" on node 1 (default targets). + Project "C:\\Code\\HydraV3\\build\\CMakeFiles\\CMakeScratch\\TryCompile-xp6u87\\cmTC_71e3f.vcxproj" on node 1 (default targets). PrepareForBuild: Structured output is enabled. The formatting of compiler diagnostics will reflect the error hierarchy. See https://aka.ms/cpp/structured-output for more details. - Creating directory "C:\\Code\\HydraV3\\build\\CMakeFiles\\CMakeScratch\\TryCompile-it98a2\\Debug\\". - Creating directory "cmTC_fff4f.dir\\Debug\\cmTC_fff4f.tlog\\". + Creating directory "C:\\Code\\HydraV3\\build\\CMakeFiles\\CMakeScratch\\TryCompile-xp6u87\\Debug\\". + Creating directory "cmTC_71e3f.dir\\Debug\\cmTC_71e3f.tlog\\". InitializeBuildStatus: - Creating "cmTC_fff4f.dir\\Debug\\cmTC_fff4f.tlog\\unsuccessfulbuild" because "AlwaysCreate" was specified. - Touching "cmTC_fff4f.dir\\Debug\\cmTC_fff4f.tlog\\unsuccessfulbuild". + Creating "cmTC_71e3f.dir\\Debug\\cmTC_71e3f.tlog\\unsuccessfulbuild" because "AlwaysCreate" was specified. + Touching "cmTC_71e3f.dir\\Debug\\cmTC_71e3f.tlog\\unsuccessfulbuild". ClCompile: - C:\\Program Files\\Microsoft Visual Studio\\2022\\Professional\\VC\\Tools\\MSVC\\14.44.35207\\bin\\HostX64\\x64\\CL.exe /c /Zi /W1 /WX- /diagnostics:column /Od /Ob0 /D _MBCS /D WIN32 /D _WINDOWS /D CHECK_FUNCTION_EXISTS=pthread_create /D _MBCS /D "CMAKE_INTDIR=\\"Debug\\"" /EHsc /RTC1 /MDd /std:c++17 /Fo"cmTC_fff4f.dir\\Debug\\\\" /Fd"cmTC_fff4f.dir\\Debug\\vc143.pdb" /external:W1 /TP /errorReport:queue "C:\\Code\\HydraV3\\build\\CMakeFiles\\CMakeScratch\\TryCompile-it98a2\\CheckFunctionExists.cxx" + C:\\Program Files\\Microsoft Visual Studio\\2022\\Professional\\VC\\Tools\\MSVC\\14.44.35207\\bin\\HostX64\\x64\\CL.exe /c /Zi /W1 /WX- /diagnostics:column /Od /Ob0 /D _MBCS /D WIN32 /D _WINDOWS /D CHECK_FUNCTION_EXISTS=pthread_create /D _MBCS /D "CMAKE_INTDIR=\\"Debug\\"" /EHsc /RTC1 /MDd /std:c++17 /Fo"cmTC_71e3f.dir\\Debug\\\\" /Fd"cmTC_71e3f.dir\\Debug\\vc143.pdb" /external:W1 /TP /errorReport:queue "C:\\Code\\HydraV3\\build\\CMakeFiles\\CMakeScratch\\TryCompile-xp6u87\\CheckFunctionExists.cxx" Microsoft (R) C/C++ Optimizing Compiler Version 19.44.35225 for x64 Copyright (C) Microsoft Corporation. All rights reserved. - cl /c /Zi /W1 /WX- /diagnostics:column /Od /Ob0 /D _MBCS /D WIN32 /D _WINDOWS /D CHECK_FUNCTION_EXISTS=pthread_create /D _MBCS /D "CMAKE_INTDIR=\\"Debug\\"" /EHsc /RTC1 /MDd /std:c++17 /Fo"cmTC_fff4f.dir\\Debug\\\\" /Fd"cmTC_fff4f.dir\\Debug\\vc143.pdb" /external:W1 /TP /errorReport:queue "C:\\Code\\HydraV3\\build\\CMakeFiles\\CMakeScratch\\TryCompile-it98a2\\CheckFunctionExists.cxx" + cl /c /Zi /W1 /WX- /diagnostics:column /Od /Ob0 /D _MBCS /D WIN32 /D _WINDOWS /D CHECK_FUNCTION_EXISTS=pthread_create /D _MBCS /D "CMAKE_INTDIR=\\"Debug\\"" /EHsc /RTC1 /MDd /std:c++17 /Fo"cmTC_71e3f.dir\\Debug\\\\" /Fd"cmTC_71e3f.dir\\Debug\\vc143.pdb" /external:W1 /TP /errorReport:queue "C:\\Code\\HydraV3\\build\\CMakeFiles\\CMakeScratch\\TryCompile-xp6u87\\CheckFunctionExists.cxx" CheckFunctionExists.cxx Link: - C:\\Program Files\\Microsoft Visual Studio\\2022\\Professional\\VC\\Tools\\MSVC\\14.44.35207\\bin\\HostX64\\x64\\link.exe /OUT:"C:\\Code\\HydraV3\\build\\CMakeFiles\\CMakeScratch\\TryCompile-it98a2\\Debug\\cmTC_fff4f.exe" /INCREMENTAL /ILK:"cmTC_fff4f.dir\\Debug\\cmTC_fff4f.ilk" /NOLOGO pthreads.lib kernel32.lib user32.lib gdi32.lib winspool.lib shell32.lib ole32.lib oleaut32.lib uuid.lib comdlg32.lib advapi32.lib /MANIFEST /MANIFESTUAC:"level='asInvoker' uiAccess='false'" /manifest:embed /DEBUG /PDB:"C:/Code/HydraV3/build/CMakeFiles/CMakeScratch/TryCompile-it98a2/Debug/cmTC_fff4f.pdb" /SUBSYSTEM:CONSOLE /TLBID:1 /IMPLIB:"C:/Code/HydraV3/build/CMakeFiles/CMakeScratch/TryCompile-it98a2/Debug/cmTC_fff4f.lib" /MACHINE:X64 /machine:x64 cmTC_fff4f.dir\\Debug\\CheckFunctionExists.obj - LINK : fatal error LNK1104: cannot open file 'pthreads.lib' [C:\\Code\\HydraV3\\build\\CMakeFiles\\CMakeScratch\\TryCompile-it98a2\\cmTC_fff4f.vcxproj] - Done Building Project "C:\\Code\\HydraV3\\build\\CMakeFiles\\CMakeScratch\\TryCompile-it98a2\\cmTC_fff4f.vcxproj" (default targets) -- FAILED. + C:\\Program Files\\Microsoft Visual Studio\\2022\\Professional\\VC\\Tools\\MSVC\\14.44.35207\\bin\\HostX64\\x64\\link.exe /OUT:"C:\\Code\\HydraV3\\build\\CMakeFiles\\CMakeScratch\\TryCompile-xp6u87\\Debug\\cmTC_71e3f.exe" /INCREMENTAL /ILK:"cmTC_71e3f.dir\\Debug\\cmTC_71e3f.ilk" /NOLOGO pthreads.lib kernel32.lib user32.lib gdi32.lib winspool.lib shell32.lib ole32.lib oleaut32.lib uuid.lib comdlg32.lib advapi32.lib /MANIFEST /MANIFESTUAC:"level='asInvoker' uiAccess='false'" /manifest:embed /DEBUG /PDB:"C:/Code/HydraV3/build/CMakeFiles/CMakeScratch/TryCompile-xp6u87/Debug/cmTC_71e3f.pdb" /SUBSYSTEM:CONSOLE /TLBID:1 /IMPLIB:"C:/Code/HydraV3/build/CMakeFiles/CMakeScratch/TryCompile-xp6u87/Debug/cmTC_71e3f.lib" /MACHINE:X64 /machine:x64 cmTC_71e3f.dir\\Debug\\CheckFunctionExists.obj + LINK : fatal error LNK1104: cannot open file 'pthreads.lib' [C:\\Code\\HydraV3\\build\\CMakeFiles\\CMakeScratch\\TryCompile-xp6u87\\cmTC_71e3f.vcxproj] + Done Building Project "C:\\Code\\HydraV3\\build\\CMakeFiles\\CMakeScratch\\TryCompile-xp6u87\\cmTC_71e3f.vcxproj" (default targets) -- FAILED. Build FAILED. - "C:\\Code\\HydraV3\\build\\CMakeFiles\\CMakeScratch\\TryCompile-it98a2\\cmTC_fff4f.vcxproj" (default target) (1) -> + "C:\\Code\\HydraV3\\build\\CMakeFiles\\CMakeScratch\\TryCompile-xp6u87\\cmTC_71e3f.vcxproj" (default target) (1) -> (Link target) -> - LINK : fatal error LNK1104: cannot open file 'pthreads.lib' [C:\\Code\\HydraV3\\build\\CMakeFiles\\CMakeScratch\\TryCompile-it98a2\\cmTC_fff4f.vcxproj] + LINK : fatal error LNK1104: cannot open file 'pthreads.lib' [C:\\Code\\HydraV3\\build\\CMakeFiles\\CMakeScratch\\TryCompile-xp6u87\\cmTC_71e3f.vcxproj] 0 Warning(s) 1 Error(s) - Time Elapsed 00:00:00.36 + Time Elapsed 00:00:00.38 exitCode: 1 - @@ -1229,8 +1229,8 @@ events: checks: - "Looking for pthread_create in pthread" directories: - source: "C:/Code/HydraV3/build/CMakeFiles/CMakeScratch/TryCompile-3fd44b" - binary: "C:/Code/HydraV3/build/CMakeFiles/CMakeScratch/TryCompile-3fd44b" + source: "C:/Code/HydraV3/build/CMakeFiles/CMakeScratch/TryCompile-0eom9k" + binary: "C:/Code/HydraV3/build/CMakeFiles/CMakeScratch/TryCompile-0eom9k" cmakeVariables: CMAKE_CXX_FLAGS: "/DWIN32 /D_WINDOWS /EHsc" CMAKE_CXX_FLAGS_DEBUG: "/Ob0 /Od /RTC1" @@ -1240,36 +1240,36 @@ events: variable: "CMAKE_HAVE_PTHREAD_CREATE" cached: true stdout: | - Change Dir: 'C:/Code/HydraV3/build/CMakeFiles/CMakeScratch/TryCompile-3fd44b' + Change Dir: 'C:/Code/HydraV3/build/CMakeFiles/CMakeScratch/TryCompile-0eom9k' - Run Build Command(s): "C:/Program Files/Microsoft Visual Studio/2022/Professional/MSBuild/Current/Bin/amd64/MSBuild.exe" cmTC_8d7cb.vcxproj /p:Configuration=Debug /p:Platform=x64 /p:VisualStudioVersion=17.0 /v:n + Run Build Command(s): "C:/Program Files/Microsoft Visual Studio/2022/Professional/MSBuild/Current/Bin/amd64/MSBuild.exe" cmTC_62230.vcxproj /p:Configuration=Debug /p:Platform=x64 /p:VisualStudioVersion=17.0 /v:n MSBuild version 17.14.40+3e7442088 for .NET Framework - Build started 04/08/2026 17:53:59. + Build started 05/08/2026 14:49:35. - Project "C:\\Code\\HydraV3\\build\\CMakeFiles\\CMakeScratch\\TryCompile-3fd44b\\cmTC_8d7cb.vcxproj" on node 1 (default targets). + Project "C:\\Code\\HydraV3\\build\\CMakeFiles\\CMakeScratch\\TryCompile-0eom9k\\cmTC_62230.vcxproj" on node 1 (default targets). PrepareForBuild: Structured output is enabled. The formatting of compiler diagnostics will reflect the error hierarchy. See https://aka.ms/cpp/structured-output for more details. - Creating directory "C:\\Code\\HydraV3\\build\\CMakeFiles\\CMakeScratch\\TryCompile-3fd44b\\Debug\\". - Creating directory "cmTC_8d7cb.dir\\Debug\\cmTC_8d7cb.tlog\\". + Creating directory "C:\\Code\\HydraV3\\build\\CMakeFiles\\CMakeScratch\\TryCompile-0eom9k\\Debug\\". + Creating directory "cmTC_62230.dir\\Debug\\cmTC_62230.tlog\\". InitializeBuildStatus: - Creating "cmTC_8d7cb.dir\\Debug\\cmTC_8d7cb.tlog\\unsuccessfulbuild" because "AlwaysCreate" was specified. - Touching "cmTC_8d7cb.dir\\Debug\\cmTC_8d7cb.tlog\\unsuccessfulbuild". + Creating "cmTC_62230.dir\\Debug\\cmTC_62230.tlog\\unsuccessfulbuild" because "AlwaysCreate" was specified. + Touching "cmTC_62230.dir\\Debug\\cmTC_62230.tlog\\unsuccessfulbuild". ClCompile: - C:\\Program Files\\Microsoft Visual Studio\\2022\\Professional\\VC\\Tools\\MSVC\\14.44.35207\\bin\\HostX64\\x64\\CL.exe /c /Zi /W1 /WX- /diagnostics:column /Od /Ob0 /D _MBCS /D WIN32 /D _WINDOWS /D CHECK_FUNCTION_EXISTS=pthread_create /D _MBCS /D "CMAKE_INTDIR=\\"Debug\\"" /EHsc /RTC1 /MDd /std:c++17 /Fo"cmTC_8d7cb.dir\\Debug\\\\" /Fd"cmTC_8d7cb.dir\\Debug\\vc143.pdb" /external:W1 /TP /errorReport:queue "C:\\Code\\HydraV3\\build\\CMakeFiles\\CMakeScratch\\TryCompile-3fd44b\\CheckFunctionExists.cxx" + C:\\Program Files\\Microsoft Visual Studio\\2022\\Professional\\VC\\Tools\\MSVC\\14.44.35207\\bin\\HostX64\\x64\\CL.exe /c /Zi /W1 /WX- /diagnostics:column /Od /Ob0 /D _MBCS /D WIN32 /D _WINDOWS /D CHECK_FUNCTION_EXISTS=pthread_create /D _MBCS /D "CMAKE_INTDIR=\\"Debug\\"" /EHsc /RTC1 /MDd /std:c++17 /Fo"cmTC_62230.dir\\Debug\\\\" /Fd"cmTC_62230.dir\\Debug\\vc143.pdb" /external:W1 /TP /errorReport:queue "C:\\Code\\HydraV3\\build\\CMakeFiles\\CMakeScratch\\TryCompile-0eom9k\\CheckFunctionExists.cxx" Microsoft (R) C/C++ Optimizing Compiler Version 19.44.35225 for x64 Copyright (C) Microsoft Corporation. All rights reserved. - cl /c /Zi /W1 /WX- /diagnostics:column /Od /Ob0 /D _MBCS /D WIN32 /D _WINDOWS /D CHECK_FUNCTION_EXISTS=pthread_create /D _MBCS /D "CMAKE_INTDIR=\\"Debug\\"" /EHsc /RTC1 /MDd /std:c++17 /Fo"cmTC_8d7cb.dir\\Debug\\\\" /Fd"cmTC_8d7cb.dir\\Debug\\vc143.pdb" /external:W1 /TP /errorReport:queue "C:\\Code\\HydraV3\\build\\CMakeFiles\\CMakeScratch\\TryCompile-3fd44b\\CheckFunctionExists.cxx" + cl /c /Zi /W1 /WX- /diagnostics:column /Od /Ob0 /D _MBCS /D WIN32 /D _WINDOWS /D CHECK_FUNCTION_EXISTS=pthread_create /D _MBCS /D "CMAKE_INTDIR=\\"Debug\\"" /EHsc /RTC1 /MDd /std:c++17 /Fo"cmTC_62230.dir\\Debug\\\\" /Fd"cmTC_62230.dir\\Debug\\vc143.pdb" /external:W1 /TP /errorReport:queue "C:\\Code\\HydraV3\\build\\CMakeFiles\\CMakeScratch\\TryCompile-0eom9k\\CheckFunctionExists.cxx" CheckFunctionExists.cxx Link: - C:\\Program Files\\Microsoft Visual Studio\\2022\\Professional\\VC\\Tools\\MSVC\\14.44.35207\\bin\\HostX64\\x64\\link.exe /OUT:"C:\\Code\\HydraV3\\build\\CMakeFiles\\CMakeScratch\\TryCompile-3fd44b\\Debug\\cmTC_8d7cb.exe" /INCREMENTAL /ILK:"cmTC_8d7cb.dir\\Debug\\cmTC_8d7cb.ilk" /NOLOGO pthread.lib kernel32.lib user32.lib gdi32.lib winspool.lib shell32.lib ole32.lib oleaut32.lib uuid.lib comdlg32.lib advapi32.lib /MANIFEST /MANIFESTUAC:"level='asInvoker' uiAccess='false'" /manifest:embed /DEBUG /PDB:"C:/Code/HydraV3/build/CMakeFiles/CMakeScratch/TryCompile-3fd44b/Debug/cmTC_8d7cb.pdb" /SUBSYSTEM:CONSOLE /TLBID:1 /IMPLIB:"C:/Code/HydraV3/build/CMakeFiles/CMakeScratch/TryCompile-3fd44b/Debug/cmTC_8d7cb.lib" /MACHINE:X64 /machine:x64 cmTC_8d7cb.dir\\Debug\\CheckFunctionExists.obj - LINK : fatal error LNK1104: cannot open file 'pthread.lib' [C:\\Code\\HydraV3\\build\\CMakeFiles\\CMakeScratch\\TryCompile-3fd44b\\cmTC_8d7cb.vcxproj] - Done Building Project "C:\\Code\\HydraV3\\build\\CMakeFiles\\CMakeScratch\\TryCompile-3fd44b\\cmTC_8d7cb.vcxproj" (default targets) -- FAILED. + C:\\Program Files\\Microsoft Visual Studio\\2022\\Professional\\VC\\Tools\\MSVC\\14.44.35207\\bin\\HostX64\\x64\\link.exe /OUT:"C:\\Code\\HydraV3\\build\\CMakeFiles\\CMakeScratch\\TryCompile-0eom9k\\Debug\\cmTC_62230.exe" /INCREMENTAL /ILK:"cmTC_62230.dir\\Debug\\cmTC_62230.ilk" /NOLOGO pthread.lib kernel32.lib user32.lib gdi32.lib winspool.lib shell32.lib ole32.lib oleaut32.lib uuid.lib comdlg32.lib advapi32.lib /MANIFEST /MANIFESTUAC:"level='asInvoker' uiAccess='false'" /manifest:embed /DEBUG /PDB:"C:/Code/HydraV3/build/CMakeFiles/CMakeScratch/TryCompile-0eom9k/Debug/cmTC_62230.pdb" /SUBSYSTEM:CONSOLE /TLBID:1 /IMPLIB:"C:/Code/HydraV3/build/CMakeFiles/CMakeScratch/TryCompile-0eom9k/Debug/cmTC_62230.lib" /MACHINE:X64 /machine:x64 cmTC_62230.dir\\Debug\\CheckFunctionExists.obj + LINK : fatal error LNK1104: cannot open file 'pthread.lib' [C:\\Code\\HydraV3\\build\\CMakeFiles\\CMakeScratch\\TryCompile-0eom9k\\cmTC_62230.vcxproj] + Done Building Project "C:\\Code\\HydraV3\\build\\CMakeFiles\\CMakeScratch\\TryCompile-0eom9k\\cmTC_62230.vcxproj" (default targets) -- FAILED. Build FAILED. - "C:\\Code\\HydraV3\\build\\CMakeFiles\\CMakeScratch\\TryCompile-3fd44b\\cmTC_8d7cb.vcxproj" (default target) (1) -> + "C:\\Code\\HydraV3\\build\\CMakeFiles\\CMakeScratch\\TryCompile-0eom9k\\cmTC_62230.vcxproj" (default target) (1) -> (Link target) -> - LINK : fatal error LNK1104: cannot open file 'pthread.lib' [C:\\Code\\HydraV3\\build\\CMakeFiles\\CMakeScratch\\TryCompile-3fd44b\\cmTC_8d7cb.vcxproj] + LINK : fatal error LNK1104: cannot open file 'pthread.lib' [C:\\Code\\HydraV3\\build\\CMakeFiles\\CMakeScratch\\TryCompile-0eom9k\\cmTC_62230.vcxproj] 0 Warning(s) 1 Error(s) diff --git a/build/Debug/HydraClient.pdb b/build/Debug/HydraClient.pdb index 1c08617..a555ea5 100644 Binary files a/build/Debug/HydraClient.pdb and b/build/Debug/HydraClient.pdb differ diff --git a/build/HydraClient.dir/Debug/HydraClient.ilk b/build/HydraClient.dir/Debug/HydraClient.ilk index 695b531..23c1500 100644 Binary files a/build/HydraClient.dir/Debug/HydraClient.ilk and b/build/HydraClient.dir/Debug/HydraClient.ilk differ diff --git a/build/HydraClient.dir/Debug/vc143.pdb b/build/HydraClient.dir/Debug/vc143.pdb index 585c1e2..4326cff 100644 Binary files a/build/HydraClient.dir/Debug/vc143.pdb and b/build/HydraClient.dir/Debug/vc143.pdb differ diff --git a/build/HydraEngine/Debug/HydraEngine.exp b/build/HydraEngine/Debug/HydraEngine.exp index 6d84168..16cdf37 100644 Binary files a/build/HydraEngine/Debug/HydraEngine.exp and b/build/HydraEngine/Debug/HydraEngine.exp differ diff --git a/build/HydraEngine/Debug/HydraEngine.pdb b/build/HydraEngine/Debug/HydraEngine.pdb index 2da372f..f38175b 100644 Binary files a/build/HydraEngine/Debug/HydraEngine.pdb and b/build/HydraEngine/Debug/HydraEngine.pdb differ diff --git a/build/HydraEngine/HydraEngine.dir/Debug/HydraEngine.ilk b/build/HydraEngine/HydraEngine.dir/Debug/HydraEngine.ilk index fdecc54..7fd789a 100644 Binary files a/build/HydraEngine/HydraEngine.dir/Debug/HydraEngine.ilk and b/build/HydraEngine/HydraEngine.dir/Debug/HydraEngine.ilk differ diff --git a/build/HydraEngine/HydraEngine.dir/Debug/HydraEngine.tlog/CL.command.1.tlog b/build/HydraEngine/HydraEngine.dir/Debug/HydraEngine.tlog/CL.command.1.tlog index 7c1f042..e1d00fa 100644 Binary files a/build/HydraEngine/HydraEngine.dir/Debug/HydraEngine.tlog/CL.command.1.tlog and b/build/HydraEngine/HydraEngine.dir/Debug/HydraEngine.tlog/CL.command.1.tlog differ diff --git a/build/HydraEngine/HydraEngine.dir/Debug/HydraEngine.tlog/CL.read.1.tlog b/build/HydraEngine/HydraEngine.dir/Debug/HydraEngine.tlog/CL.read.1.tlog index 8ae1105..13e98e7 100644 Binary files a/build/HydraEngine/HydraEngine.dir/Debug/HydraEngine.tlog/CL.read.1.tlog and b/build/HydraEngine/HydraEngine.dir/Debug/HydraEngine.tlog/CL.read.1.tlog differ diff --git a/build/HydraEngine/HydraEngine.dir/Debug/HydraEngine.tlog/CL.write.1.tlog b/build/HydraEngine/HydraEngine.dir/Debug/HydraEngine.tlog/CL.write.1.tlog index afc4b8d..ffdce58 100644 Binary files a/build/HydraEngine/HydraEngine.dir/Debug/HydraEngine.tlog/CL.write.1.tlog and b/build/HydraEngine/HydraEngine.dir/Debug/HydraEngine.tlog/CL.write.1.tlog differ diff --git a/build/HydraEngine/HydraEngine.dir/Debug/HydraEngine.tlog/Cl.items.tlog b/build/HydraEngine/HydraEngine.dir/Debug/HydraEngine.tlog/Cl.items.tlog index 89235f9..2d83731 100644 --- a/build/HydraEngine/HydraEngine.dir/Debug/HydraEngine.tlog/Cl.items.tlog +++ b/build/HydraEngine/HydraEngine.dir/Debug/HydraEngine.tlog/Cl.items.tlog @@ -13,6 +13,7 @@ C:\Code\HydraV3\HydraEngine\source\actor\HydraTextureDebugActor.cpp;C:\Code\Hydr C:\Code\HydraV3\HydraEngine\source\buffer\HydraBufferManager.cpp;C:\Code\HydraV3\build\HydraEngine\HydraEngine.dir\Debug\HydraBufferManager.obj C:\Code\HydraV3\HydraEngine\source\buffer\HydraLightBufferManager.cpp;C:\Code\HydraV3\build\HydraEngine\HydraEngine.dir\Debug\HydraLightBufferManager.obj C:\Code\HydraV3\HydraEngine\source\buffer\HydraMaterialBufferManager.cpp;C:\Code\HydraV3\build\HydraEngine\HydraEngine.dir\Debug\HydraMaterialBufferManager.obj +C:\Code\HydraV3\HydraEngine\source\buffer\HydraShadowBufferManager.cpp;C:\Code\HydraV3\build\HydraEngine\HydraEngine.dir\Debug\HydraShadowBufferManager.obj C:\Code\HydraV3\HydraEngine\source\buffer\HydraTextureBufferManager.cpp;C:\Code\HydraV3\build\HydraEngine\HydraEngine.dir\Debug\HydraTextureBufferManager.obj C:\Code\HydraV3\HydraEngine\source\buffer\HydraVertexBufferManager.cpp;C:\Code\HydraV3\build\HydraEngine\HydraEngine.dir\Debug\HydraVertexBufferManager.obj C:\Code\HydraV3\HydraEngine\source\camera\HydraCamera.cpp;C:\Code\HydraV3\build\HydraEngine\HydraEngine.dir\Debug\HydraCamera.obj diff --git a/build/HydraEngine/HydraEngine.dir/Debug/HydraEngine.tlog/link.command.1.tlog b/build/HydraEngine/HydraEngine.dir/Debug/HydraEngine.tlog/link.command.1.tlog index 016a330..86f4494 100644 Binary files a/build/HydraEngine/HydraEngine.dir/Debug/HydraEngine.tlog/link.command.1.tlog and b/build/HydraEngine/HydraEngine.dir/Debug/HydraEngine.tlog/link.command.1.tlog differ diff --git a/build/HydraEngine/HydraEngine.dir/Debug/HydraEngine.tlog/link.read.1.tlog b/build/HydraEngine/HydraEngine.dir/Debug/HydraEngine.tlog/link.read.1.tlog index 90a114f..5a6a9d2 100644 Binary files a/build/HydraEngine/HydraEngine.dir/Debug/HydraEngine.tlog/link.read.1.tlog and b/build/HydraEngine/HydraEngine.dir/Debug/HydraEngine.tlog/link.read.1.tlog differ diff --git a/build/HydraEngine/HydraEngine.dir/Debug/HydraEngine.tlog/link.secondary.1.tlog b/build/HydraEngine/HydraEngine.dir/Debug/HydraEngine.tlog/link.secondary.1.tlog index 99e5253..cd4e29a 100644 --- a/build/HydraEngine/HydraEngine.dir/Debug/HydraEngine.tlog/link.secondary.1.tlog +++ b/build/HydraEngine/HydraEngine.dir/Debug/HydraEngine.tlog/link.secondary.1.tlog @@ -1,4 +1,4 @@ -^C:\CODE\HYDRAV3\BUILD\HYDRAENGINE\HYDRAENGINE.DIR\DEBUG\CMAKECXXCOMPILERID.OBJ|C:\CODE\HYDRAV3\BUILD\HYDRAENGINE\HYDRAENGINE.DIR\DEBUG\HYDRAACTOR.OBJ|C:\CODE\HYDRAV3\BUILD\HYDRAENGINE\HYDRAENGINE.DIR\DEBUG\HYDRAACTORMANAGER.OBJ|C:\CODE\HYDRAV3\BUILD\HYDRAENGINE\HYDRAENGINE.DIR\DEBUG\HYDRABUFFERMANAGER.OBJ|C:\CODE\HYDRAV3\BUILD\HYDRAENGINE\HYDRAENGINE.DIR\DEBUG\HYDRACAMERA.OBJ|C:\CODE\HYDRAV3\BUILD\HYDRAENGINE\HYDRAENGINE.DIR\DEBUG\HYDRADEFERREDPIPELINE.OBJ|C:\CODE\HYDRAV3\BUILD\HYDRAENGINE\HYDRAENGINE.DIR\DEBUG\HYDRADIRECTIONALLIGHTACTOR.OBJ|C:\CODE\HYDRAV3\BUILD\HYDRAENGINE\HYDRAENGINE.DIR\DEBUG\HYDRADIRECTIONALSHADOWSOURCESYSTEM.OBJ|C:\CODE\HYDRAV3\BUILD\HYDRAENGINE\HYDRAENGINE.DIR\DEBUG\HYDRAECS.OBJ|C:\CODE\HYDRAV3\BUILD\HYDRAENGINE\HYDRAENGINE.DIR\DEBUG\HYDRAENGINE.OBJ|C:\CODE\HYDRAV3\BUILD\HYDRAENGINE\HYDRAENGINE.DIR\DEBUG\HYDRAFORWARDPIPELINE.OBJ|C:\CODE\HYDRAV3\BUILD\HYDRAENGINE\HYDRAENGINE.DIR\DEBUG\HYDRAGAMEPROXY.OBJ|C:\CODE\HYDRAV3\BUILD\HYDRAENGINE\HYDRAENGINE.DIR\DEBUG\HYDRAGLTFACTOR.OBJ|C:\CODE\HYDRAV3\BUILD\HYDRAENGINE\HYDRAENGINE.DIR\DEBUG\HYDRAGLTFLOADER.OBJ|C:\CODE\HYDRAV3\BUILD\HYDRAENGINE\HYDRAENGINE.DIR\DEBUG\HYDRAINPUTMANAGER.OBJ|C:\CODE\HYDRAV3\BUILD\HYDRAENGINE\HYDRAENGINE.DIR\DEBUG\HYDRALIGHTBUFFERMANAGER.OBJ|C:\CODE\HYDRAV3\BUILD\HYDRAENGINE\HYDRAENGINE.DIR\DEBUG\HYDRALIGHTSYSTEM.OBJ|C:\CODE\HYDRAV3\BUILD\HYDRAENGINE\HYDRAENGINE.DIR\DEBUG\HYDRAMATERIALBUFFERMANAGER.OBJ|C:\CODE\HYDRAV3\BUILD\HYDRAENGINE\HYDRAENGINE.DIR\DEBUG\HYDRAMATERIALSYSTEM.OBJ|C:\CODE\HYDRAV3\BUILD\HYDRAENGINE\HYDRAENGINE.DIR\DEBUG\HYDRAMESHMANAGER.OBJ|C:\CODE\HYDRAV3\BUILD\HYDRAENGINE\HYDRAENGINE.DIR\DEBUG\HYDRAMESHSYSTEM.OBJ|C:\CODE\HYDRAV3\BUILD\HYDRAENGINE\HYDRAENGINE.DIR\DEBUG\HYDRAOBJECT.OBJ|C:\CODE\HYDRAV3\BUILD\HYDRAENGINE\HYDRAENGINE.DIR\DEBUG\HYDRAOUTPUTACTOR.OBJ|C:\CODE\HYDRAV3\BUILD\HYDRAENGINE\HYDRAENGINE.DIR\DEBUG\HYDRAPIPELINE.OBJ|C:\CODE\HYDRAV3\BUILD\HYDRAENGINE\HYDRAENGINE.DIR\DEBUG\HYDRAPLANEACTOR.OBJ|C:\CODE\HYDRAV3\BUILD\HYDRAENGINE\HYDRAENGINE.DIR\DEBUG\HYDRAPLAYERACTOR.OBJ|C:\CODE\HYDRAV3\BUILD\HYDRAENGINE\HYDRAENGINE.DIR\DEBUG\HYDRAPOINTLIGHTACTOR.OBJ|C:\CODE\HYDRAV3\BUILD\HYDRAENGINE\HYDRAENGINE.DIR\DEBUG\HYDRARENDERER.OBJ|C:\CODE\HYDRAV3\BUILD\HYDRAENGINE\HYDRAENGINE.DIR\DEBUG\HYDRARENDERSTAGE.OBJ|C:\CODE\HYDRAV3\BUILD\HYDRAENGINE\HYDRAENGINE.DIR\DEBUG\HYDRARENDERSYSTEM.OBJ|C:\CODE\HYDRAV3\BUILD\HYDRAENGINE\HYDRAENGINE.DIR\DEBUG\HYDRASHADOWPIPELINE.OBJ|C:\CODE\HYDRAV3\BUILD\HYDRAENGINE\HYDRAENGINE.DIR\DEBUG\HYDRASPOTLIGHTACTOR.OBJ|C:\CODE\HYDRAV3\BUILD\HYDRAENGINE\HYDRAENGINE.DIR\DEBUG\HYDRASPOTSHADOWSOURCESYSTEM.OBJ|C:\CODE\HYDRAV3\BUILD\HYDRAENGINE\HYDRAENGINE.DIR\DEBUG\HYDRASYSTEM.OBJ|C:\CODE\HYDRAV3\BUILD\HYDRAENGINE\HYDRAENGINE.DIR\DEBUG\HYDRASYSTEMMANAGER.OBJ|C:\CODE\HYDRAV3\BUILD\HYDRAENGINE\HYDRAENGINE.DIR\DEBUG\HYDRATASK.OBJ|C:\CODE\HYDRAV3\BUILD\HYDRAENGINE\HYDRAENGINE.DIR\DEBUG\HYDRATASKBARRIER.OBJ|C:\CODE\HYDRAV3\BUILD\HYDRAENGINE\HYDRAENGINE.DIR\DEBUG\HYDRATASKSCHEDULER.OBJ|C:\CODE\HYDRAV3\BUILD\HYDRAENGINE\HYDRAENGINE.DIR\DEBUG\HYDRATESTCUBEACTOR.OBJ|C:\CODE\HYDRAV3\BUILD\HYDRAENGINE\HYDRAENGINE.DIR\DEBUG\HYDRATEXTUREBUFFERMANAGER.OBJ|C:\CODE\HYDRAV3\BUILD\HYDRAENGINE\HYDRAENGINE.DIR\DEBUG\HYDRATEXTUREDEBUGACTOR.OBJ|C:\CODE\HYDRAV3\BUILD\HYDRAENGINE\HYDRAENGINE.DIR\DEBUG\HYDRATHREAD.OBJ|C:\CODE\HYDRAV3\BUILD\HYDRAENGINE\HYDRAENGINE.DIR\DEBUG\HYDRATRANSFORMSYSTEM.OBJ|C:\CODE\HYDRAV3\BUILD\HYDRAENGINE\HYDRAENGINE.DIR\DEBUG\HYDRAVERTEXBUFFERMANAGER.OBJ|C:\CODE\HYDRAV3\BUILD\HYDRAENGINE\HYDRAENGINE.DIR\DEBUG\HYDRAWINDOWMANAGER.OBJ +^C:\CODE\HYDRAV3\BUILD\HYDRAENGINE\HYDRAENGINE.DIR\DEBUG\CMAKECXXCOMPILERID.OBJ|C:\CODE\HYDRAV3\BUILD\HYDRAENGINE\HYDRAENGINE.DIR\DEBUG\HYDRAACTOR.OBJ|C:\CODE\HYDRAV3\BUILD\HYDRAENGINE\HYDRAENGINE.DIR\DEBUG\HYDRAACTORMANAGER.OBJ|C:\CODE\HYDRAV3\BUILD\HYDRAENGINE\HYDRAENGINE.DIR\DEBUG\HYDRABUFFERMANAGER.OBJ|C:\CODE\HYDRAV3\BUILD\HYDRAENGINE\HYDRAENGINE.DIR\DEBUG\HYDRACAMERA.OBJ|C:\CODE\HYDRAV3\BUILD\HYDRAENGINE\HYDRAENGINE.DIR\DEBUG\HYDRADEFERREDPIPELINE.OBJ|C:\CODE\HYDRAV3\BUILD\HYDRAENGINE\HYDRAENGINE.DIR\DEBUG\HYDRADIRECTIONALLIGHTACTOR.OBJ|C:\CODE\HYDRAV3\BUILD\HYDRAENGINE\HYDRAENGINE.DIR\DEBUG\HYDRADIRECTIONALSHADOWSOURCESYSTEM.OBJ|C:\CODE\HYDRAV3\BUILD\HYDRAENGINE\HYDRAENGINE.DIR\DEBUG\HYDRAECS.OBJ|C:\CODE\HYDRAV3\BUILD\HYDRAENGINE\HYDRAENGINE.DIR\DEBUG\HYDRAENGINE.OBJ|C:\CODE\HYDRAV3\BUILD\HYDRAENGINE\HYDRAENGINE.DIR\DEBUG\HYDRAFORWARDPIPELINE.OBJ|C:\CODE\HYDRAV3\BUILD\HYDRAENGINE\HYDRAENGINE.DIR\DEBUG\HYDRAGAMEPROXY.OBJ|C:\CODE\HYDRAV3\BUILD\HYDRAENGINE\HYDRAENGINE.DIR\DEBUG\HYDRAGLTFACTOR.OBJ|C:\CODE\HYDRAV3\BUILD\HYDRAENGINE\HYDRAENGINE.DIR\DEBUG\HYDRAGLTFLOADER.OBJ|C:\CODE\HYDRAV3\BUILD\HYDRAENGINE\HYDRAENGINE.DIR\DEBUG\HYDRAINPUTMANAGER.OBJ|C:\CODE\HYDRAV3\BUILD\HYDRAENGINE\HYDRAENGINE.DIR\DEBUG\HYDRALIGHTBUFFERMANAGER.OBJ|C:\CODE\HYDRAV3\BUILD\HYDRAENGINE\HYDRAENGINE.DIR\DEBUG\HYDRALIGHTSYSTEM.OBJ|C:\CODE\HYDRAV3\BUILD\HYDRAENGINE\HYDRAENGINE.DIR\DEBUG\HYDRAMATERIALBUFFERMANAGER.OBJ|C:\CODE\HYDRAV3\BUILD\HYDRAENGINE\HYDRAENGINE.DIR\DEBUG\HYDRAMATERIALSYSTEM.OBJ|C:\CODE\HYDRAV3\BUILD\HYDRAENGINE\HYDRAENGINE.DIR\DEBUG\HYDRAMESHMANAGER.OBJ|C:\CODE\HYDRAV3\BUILD\HYDRAENGINE\HYDRAENGINE.DIR\DEBUG\HYDRAMESHSYSTEM.OBJ|C:\CODE\HYDRAV3\BUILD\HYDRAENGINE\HYDRAENGINE.DIR\DEBUG\HYDRAOBJECT.OBJ|C:\CODE\HYDRAV3\BUILD\HYDRAENGINE\HYDRAENGINE.DIR\DEBUG\HYDRAOUTPUTACTOR.OBJ|C:\CODE\HYDRAV3\BUILD\HYDRAENGINE\HYDRAENGINE.DIR\DEBUG\HYDRAPIPELINE.OBJ|C:\CODE\HYDRAV3\BUILD\HYDRAENGINE\HYDRAENGINE.DIR\DEBUG\HYDRAPLANEACTOR.OBJ|C:\CODE\HYDRAV3\BUILD\HYDRAENGINE\HYDRAENGINE.DIR\DEBUG\HYDRAPLAYERACTOR.OBJ|C:\CODE\HYDRAV3\BUILD\HYDRAENGINE\HYDRAENGINE.DIR\DEBUG\HYDRAPOINTLIGHTACTOR.OBJ|C:\CODE\HYDRAV3\BUILD\HYDRAENGINE\HYDRAENGINE.DIR\DEBUG\HYDRARENDERER.OBJ|C:\CODE\HYDRAV3\BUILD\HYDRAENGINE\HYDRAENGINE.DIR\DEBUG\HYDRARENDERSTAGE.OBJ|C:\CODE\HYDRAV3\BUILD\HYDRAENGINE\HYDRAENGINE.DIR\DEBUG\HYDRARENDERSYSTEM.OBJ|C:\CODE\HYDRAV3\BUILD\HYDRAENGINE\HYDRAENGINE.DIR\DEBUG\HYDRASHADOWBUFFERMANAGER.OBJ|C:\CODE\HYDRAV3\BUILD\HYDRAENGINE\HYDRAENGINE.DIR\DEBUG\HYDRASHADOWPIPELINE.OBJ|C:\CODE\HYDRAV3\BUILD\HYDRAENGINE\HYDRAENGINE.DIR\DEBUG\HYDRASPOTLIGHTACTOR.OBJ|C:\CODE\HYDRAV3\BUILD\HYDRAENGINE\HYDRAENGINE.DIR\DEBUG\HYDRASPOTSHADOWSOURCESYSTEM.OBJ|C:\CODE\HYDRAV3\BUILD\HYDRAENGINE\HYDRAENGINE.DIR\DEBUG\HYDRASYSTEM.OBJ|C:\CODE\HYDRAV3\BUILD\HYDRAENGINE\HYDRAENGINE.DIR\DEBUG\HYDRASYSTEMMANAGER.OBJ|C:\CODE\HYDRAV3\BUILD\HYDRAENGINE\HYDRAENGINE.DIR\DEBUG\HYDRATASK.OBJ|C:\CODE\HYDRAV3\BUILD\HYDRAENGINE\HYDRAENGINE.DIR\DEBUG\HYDRATASKBARRIER.OBJ|C:\CODE\HYDRAV3\BUILD\HYDRAENGINE\HYDRAENGINE.DIR\DEBUG\HYDRATASKSCHEDULER.OBJ|C:\CODE\HYDRAV3\BUILD\HYDRAENGINE\HYDRAENGINE.DIR\DEBUG\HYDRATESTCUBEACTOR.OBJ|C:\CODE\HYDRAV3\BUILD\HYDRAENGINE\HYDRAENGINE.DIR\DEBUG\HYDRATEXTUREBUFFERMANAGER.OBJ|C:\CODE\HYDRAV3\BUILD\HYDRAENGINE\HYDRAENGINE.DIR\DEBUG\HYDRATEXTUREDEBUGACTOR.OBJ|C:\CODE\HYDRAV3\BUILD\HYDRAENGINE\HYDRAENGINE.DIR\DEBUG\HYDRATHREAD.OBJ|C:\CODE\HYDRAV3\BUILD\HYDRAENGINE\HYDRAENGINE.DIR\DEBUG\HYDRATRANSFORMSYSTEM.OBJ|C:\CODE\HYDRAV3\BUILD\HYDRAENGINE\HYDRAENGINE.DIR\DEBUG\HYDRAVERTEXBUFFERMANAGER.OBJ|C:\CODE\HYDRAV3\BUILD\HYDRAENGINE\HYDRAENGINE.DIR\DEBUG\HYDRAWINDOWMANAGER.OBJ C:\Code\HydraV3\build\HydraEngine\Debug\HydraEngine.lib C:\Code\HydraV3\build\HydraEngine\Debug\HydraEngine.EXP C:\Code\HydraV3\build\HydraEngine\HydraEngine.dir\Debug\HydraEngine.ilk diff --git a/build/HydraEngine/HydraEngine.dir/Debug/HydraEngine.tlog/link.write.1.tlog b/build/HydraEngine/HydraEngine.dir/Debug/HydraEngine.tlog/link.write.1.tlog index 7a2ffa3..378526b 100644 Binary files a/build/HydraEngine/HydraEngine.dir/Debug/HydraEngine.tlog/link.write.1.tlog and b/build/HydraEngine/HydraEngine.dir/Debug/HydraEngine.tlog/link.write.1.tlog differ diff --git a/build/HydraEngine/HydraEngine.dir/Debug/vc143.pdb b/build/HydraEngine/HydraEngine.dir/Debug/vc143.pdb index 6ee038b..3127ae4 100644 Binary files a/build/HydraEngine/HydraEngine.dir/Debug/vc143.pdb and b/build/HydraEngine/HydraEngine.dir/Debug/vc143.pdb differ diff --git a/build/HydraEngine/HydraEngine.vcxproj b/build/HydraEngine/HydraEngine.vcxproj index a098ad8..46e9211 100644 --- a/build/HydraEngine/HydraEngine.vcxproj +++ b/build/HydraEngine/HydraEngine.vcxproj @@ -462,6 +462,8 @@ if %errorlevel% neq 0 goto :VCEnd + + diff --git a/build/HydraEngine/HydraEngine.vcxproj.filters b/build/HydraEngine/HydraEngine.vcxproj.filters index 32b0f3e..23f7b9c 100644 --- a/build/HydraEngine/HydraEngine.vcxproj.filters +++ b/build/HydraEngine/HydraEngine.vcxproj.filters @@ -46,6 +46,9 @@ Source Files + + Source Files + Source Files @@ -204,6 +207,9 @@ Header Files + + Header Files + Header Files diff --git a/build/linkerrors.txt b/build/linkerrors.txt index 465241c..c6bca72 100644 --- a/build/linkerrors.txt +++ b/build/linkerrors.txt @@ -1,17 +1,8 @@ ================================================================================ Linker Errors -Generated: 2026-08-04T20:31:14.692Z -Total Errors: 4 +Generated: 2026-08-05T19:16:34.773Z +Total Errors: 1 ================================================================================ -[LNK2001] (MSVC) -unresolved external symbol "public: virtual void __cdecl HydraSpotShadowSourceSystem::Initialise(void)" (?Initialise@HydraSpotShadowSourceSystem@@UEAAXXZ) [C:\Code\HydraV3\build\HydraEngine\HydraEngine.vcxproj] - -[LNK2001] (MSVC) -unresolved external symbol "protected: virtual void __cdecl HydraSpotShadowSourceSystem::InitialiseComponent(unsigned int)" (?InitialiseComponent@HydraSpotShadowSourceSystem@@MEAAXI@Z) [C:\Code\HydraV3\build\HydraEngine\HydraEngine.vcxproj] - -[LNK2001] (MSVC) -unresolved external symbol "protected: virtual void __cdecl HydraSpotShadowSourceSystem::UpdateSystem(float)" (?UpdateSystem@HydraSpotShadowSourceSystem@@MEAAXM@Z) [C:\Code\HydraV3\build\HydraEngine\HydraEngine.vcxproj] - -[LNK1120] (MSVC) -3 unresolved externals [C:\Code\HydraV3\build\HydraEngine\HydraEngine.vcxproj] +[LNK1168] (MSVC) +cannot open C:\Code\HydraV3\build\Debug\HydraClient.exe for writing [C:\Code\HydraV3\build\HydraClient.vcxproj]