Spot works

This commit is contained in:
Confideo-IOM
2026-08-06 21:11:33 +01:00
parent 6d7d7571b5
commit f9b696f9e8
61 changed files with 701 additions and 418 deletions
+6 -6
View File
@@ -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<HydraDirectionalLightActor>();
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<HydraDirectionalLightActor>();
// 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<HydraSpotLightActor>();
m_other_light_id = GetEngine()->ActorManager()->CreateActor<HydraPointLightActor>();
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<HydraDirectionalLightActor>();
@@ -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);
}
+2 -1
View File
@@ -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;
@@ -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);
//}
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,38 +391,29 @@ 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);
}
float CalculateSpotShadow(vec4 world_pos, uint shadow_idx, vec3 normal, vec3 light_dir, vec3 viewer_pos)
{
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;
}
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()
{
@@ -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
@@ -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);
}
@@ -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];
@@ -15,6 +15,7 @@ struct ShadowMapSet
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)
{
@@ -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
@@ -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];
}
@@ -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<uint32_t>(HYDRA_LIGHT_TYPE::HYDRA_LIGHT_POINT);
light_comp.entity_id = GetID();
@@ -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<uint32_t>(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));
@@ -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 */
@@ -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<HydraCreateGPUBufferTask>(HydraThreadAffinity::Render);
HydraCreateGPUBufferTask *task = static_cast<HydraCreateGPUBufferTask *>(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<HydraCreateGPUBufferTask>(HydraThreadAffinity::Render);
HydraCreateGPUBufferTask *spot_task = static_cast<HydraCreateGPUBufferTask *>(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<std::mutex> 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<std::mutex> 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<std::mutex> 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<std::mutex> 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<void *>(m_directional_shadow_buffer.data());
HydraID update_buffer_task_id = task_scheduler->CreateTask<HydraUpdateWholeGPUBufferTask>(HydraThreadAffinity::Render);
HydraUpdateWholeGPUBufferTask *task = static_cast<HydraUpdateWholeGPUBufferTask *>(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<void *>(m_spot_shadow_buffer.data());
update_buffer_task_id = task_scheduler->CreateTask<HydraUpdateWholeGPUBufferTask>(HydraThreadAffinity::Render);
HydraUpdateWholeGPUBufferTask *spot_task = static_cast<HydraUpdateWholeGPUBufferTask *>(task_scheduler->GetTask(update_buffer_task_id));
spot_task->Intialise(m_spot_shadow_buffer_id, spot_buffer);
task_scheduler->WaitForTask(update_buffer_task_id);
}
@@ -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 <queue>
#include <mutex>
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<HydraDirectionalShadowSourceComponent> m_directional_shadow_buffer;
std::vector<HydraSpotShadowSourceComponent> m_spot_shadow_buffer;
std::queue<HydraID> m_available_dir;
std::queue<HydraID> m_available_spot;
uint32_t m_directional_shadow_buffer_id;
uint32_t m_spot_shadow_buffer_id;
std::mutex m_mutex;
};
#endif /* HYDRASHADOWBUFFERMANAGER */
@@ -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 */
@@ -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 */
@@ -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<HydraCreateGPUBufferTask>(HydraThreadAffinity::Render);
HydraCreateGPUBufferTask *task = static_cast<HydraCreateGPUBufferTask *>(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<HydraLightComponent>(entity_id);
{
std::lock_guard<std::mutex> 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;
HydraDirectionalShadowSourceComponent& shadow_comp = ecs->GetComponent<HydraDirectionalShadowSourceComponent>(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<HydraDirectionalShadowSourceComponent> shadows;
for (HydraID entity_id : Entities)
{
HydraLightComponent &light_comp = ecs->GetComponent<HydraLightComponent>(entity_id);
_UpdateShadowMap(entity_id);
HydraDirectionalShadowSourceComponent shad_comp = ecs->GetComponent<HydraDirectionalShadowSourceComponent>(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);
}
@@ -125,7 +104,6 @@ void HydraDirectionalShadowSourceSystem::_InitialiseShadowMap(HydraID entity_id)
HydraLightComponent &light_comp = ecs->GetComponent<HydraLightComponent>(entity_id);
shad_comp.entity_id = entity_id;
shad_comp.cascade_count = 6;
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<void *>(m_shadows.data());
HydraTaskScheduler *task_scheduler = GetEngine()->TaskScheduler();
HydraID update_buffer_task_id = task_scheduler->CreateTask<HydraUpdateWholeGPUBufferTask>(HydraThreadAffinity::Render);
HydraUpdateWholeGPUBufferTask *task = static_cast<HydraUpdateWholeGPUBufferTask *>(task_scheduler->GetTask(update_buffer_task_id));
task->Intialise(m_shadow_buffer_id, buffer);
task_scheduler->WaitForTask(update_buffer_task_id);
}
@@ -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<HydraID> m_available_shadows;
std::vector<HydraDirectionalShadowSourceComponent> m_shadows;
std::mutex m_mutex;
};
@@ -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<HydraCreateGPUBufferTask>(HydraThreadAffinity::Render);
HydraCreateGPUBufferTask *task = static_cast<HydraCreateGPUBufferTask *>(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<HydraLightComponent>(entity_id);
{
std::lock_guard<std::mutex> 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;
HydraSpotShadowSourceComponent& shadow_comp = ecs->GetComponent<HydraSpotShadowSourceComponent>(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<HydraLightComponent>(entity_id);
_UpdateShadowMap(entity_id);
HydraSpotShadowSourceComponent shad_comp = ecs->GetComponent<HydraSpotShadowSourceComponent>(entity_id);
m_shadows[light_comp.shadow_map_id] = shad_comp;
}
_WriteToGPU();
}
void HydraSpotShadowSourceSystem::_UpdateShadowMap(HydraID entity_id)
@@ -77,19 +62,15 @@ void HydraSpotShadowSourceSystem::_UpdateShadowMap(HydraID entity_id)
HydraECS *ecs = engine->ECS();
HydraPositionComponent pos_comp = ecs->GetComponent<HydraPositionComponent>(entity_id);
HydraSpotShadowSourceComponent &shad_comp = ecs->GetComponent<HydraSpotShadowSourceComponent>(entity_id);
HydraLightComponent light_comp = ecs->GetComponent<HydraLightComponent>(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 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<float>(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;
GetEngine()->ShadowBufferManager()->UpdateSpotShadow(shad_comp.shadow_id, shad_comp);
}
@@ -117,10 +101,8 @@ void HydraSpotShadowSourceSystem::_InitialiseShadowMap(HydraID entity_id)
HydraSpotShadowSourceComponent &shad_comp = ecs->GetComponent<HydraSpotShadowSourceComponent>(entity_id);
HydraLightComponent &light_comp = ecs->GetComponent<HydraLightComponent>(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<void *>(m_shadows.data());
HydraTaskScheduler *task_scheduler = GetEngine()->TaskScheduler();
HydraID update_buffer_task_id = task_scheduler->CreateTask<HydraUpdateWholeGPUBufferTask>(HydraThreadAffinity::Render);
HydraUpdateWholeGPUBufferTask *task = static_cast<HydraUpdateWholeGPUBufferTask *>(task_scheduler->GetTask(update_buffer_task_id));
task->Intialise(m_shadow_buffer_id, buffer);
task_scheduler->WaitForTask(update_buffer_task_id);
}
@@ -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<HydraID> m_available_shadows;
std::vector<HydraSpotShadowSourceComponent> m_shadows;
std::mutex m_mutex;
};
+21 -5
View File
@@ -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<HydraInitialiseShadowBufferTask>(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<HydraUpdateSystemTask>(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<HydraUpdateSystemTask>(HydraThreadAffinity::General);
HydraID shadow_barrier = m_task_scheduler->CreateBarrier();
HydraID update_shadow_id = m_task_scheduler->CreateTask<HydraUpdateSystemTask>(HydraThreadAffinity::General, shadow_barrier);
HydraUpdateSystemTask* update_shadow_task = static_cast<HydraUpdateSystemTask*>(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<HydraUpdateSystemTask>(HydraThreadAffinity::General);
HydraID update_spot_shadow_id = m_task_scheduler->CreateTask<HydraUpdateSystemTask>(HydraThreadAffinity::General, shadow_barrier);
HydraUpdateSystemTask* update_spot_shadow_task = static_cast<HydraUpdateSystemTask*>(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()
+3 -1
View File
@@ -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<HydraMeshSystem> m_mesh_system;
std::shared_ptr<HydraTransformSystem> m_transform_system;
std::shared_ptr<HydraRenderSystem> m_render_system;
@@ -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<HydraDirectionalShadowSourceSystem> sys = GetEngine()->ECS()->GetSystem<HydraDirectionalShadowSourceSystem>();
std::shared_ptr<HydraSpotShadowSourceSystem> sys = GetEngine()->ECS()->GetSystem<HydraSpotShadowSourceSystem>();
HydraID texture_id = 0;
if(sys->Entities.size() > 0)
{
auto it = sys->Entities.begin();
HydraDirectionalShadowSourceComponent shad_comp = GetEngine()->ECS()->GetComponent<HydraDirectionalShadowSourceComponent>(*it);
HydraSpotShadowSourceComponent shad_comp = GetEngine()->ECS()->GetComponent<HydraSpotShadowSourceComponent>(*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);
@@ -261,6 +264,16 @@ void HydraDeferredPipeline::_CreateOutputRenderStage()
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,
@@ -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);
@@ -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 */
@@ -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
},
@@ -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" :
{
@@ -22,10 +22,10 @@
"dependencies" :
[
{
"id" : "HydraEngine::@fafd37b19aacd4c483ed"
"id" : "ZERO_CHECK::@6890427a1f51a3e7e1df"
},
{
"id" : "ZERO_CHECK::@6890427a1f51a3e7e1df"
"id" : "HydraEngine::@fafd37b19aacd4c483ed"
}
],
"folder" :
@@ -25,10 +25,10 @@
"id" : "HydraClient::@6890427a1f51a3e7e1df"
},
{
"id" : "HydraEngine::@fafd37b19aacd4c483ed"
"id" : "ZERO_CHECK::@6890427a1f51a3e7e1df"
},
{
"id" : "ZERO_CHECK::@6890427a1f51a3e7e1df"
"id" : "HydraEngine::@fafd37b19aacd4c483ed"
}
],
"folder" :
@@ -22,10 +22,10 @@
"dependencies" :
[
{
"id" : "HydraEngine::@fafd37b19aacd4c483ed"
"id" : "ZERO_CHECK::@6890427a1f51a3e7e1df"
},
{
"id" : "ZERO_CHECK::@6890427a1f51a3e7e1df"
"id" : "HydraEngine::@fafd37b19aacd4c483ed"
}
],
"folder" :
@@ -25,10 +25,10 @@
"id" : "HydraClient::@6890427a1f51a3e7e1df"
},
{
"id" : "HydraEngine::@fafd37b19aacd4c483ed"
"id" : "ZERO_CHECK::@6890427a1f51a3e7e1df"
},
{
"id" : "ZERO_CHECK::@6890427a1f51a3e7e1df"
"id" : "HydraEngine::@fafd37b19aacd4c483ed"
}
],
"folder" :
@@ -22,10 +22,10 @@
"dependencies" :
[
{
"id" : "HydraEngine::@fafd37b19aacd4c483ed"
"id" : "ZERO_CHECK::@6890427a1f51a3e7e1df"
},
{
"id" : "ZERO_CHECK::@6890427a1f51a3e7e1df"
"id" : "HydraEngine::@fafd37b19aacd4c483ed"
}
],
"folder" :
@@ -25,10 +25,10 @@
"id" : "HydraClient::@6890427a1f51a3e7e1df"
},
{
"id" : "HydraEngine::@fafd37b19aacd4c483ed"
"id" : "ZERO_CHECK::@6890427a1f51a3e7e1df"
},
{
"id" : "ZERO_CHECK::@6890427a1f51a3e7e1df"
"id" : "HydraEngine::@fafd37b19aacd4c483ed"
}
],
"folder" :
@@ -22,10 +22,10 @@
"dependencies" :
[
{
"id" : "HydraEngine::@fafd37b19aacd4c483ed"
"id" : "ZERO_CHECK::@6890427a1f51a3e7e1df"
},
{
"id" : "ZERO_CHECK::@6890427a1f51a3e7e1df"
"id" : "HydraEngine::@fafd37b19aacd4c483ed"
}
],
"folder" :
@@ -25,10 +25,10 @@
"id" : "HydraClient::@6890427a1f51a3e7e1df"
},
{
"id" : "HydraEngine::@fafd37b19aacd4c483ed"
"id" : "ZERO_CHECK::@6890427a1f51a3e7e1df"
},
{
"id" : "ZERO_CHECK::@6890427a1f51a3e7e1df"
"id" : "HydraEngine::@fafd37b19aacd4c483ed"
}
],
"folder" :
@@ -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",
@@ -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",
@@ -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",
@@ -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",
@@ -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,
@@ -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,
@@ -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,
@@ -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,
+71 -71
View File
@@ -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)
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -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
@@ -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
Binary file not shown.
+2
View File
@@ -462,6 +462,8 @@ if %errorlevel% neq 0 goto :VCEnd</Command>
<ClCompile Include="C:\Code\HydraV3\HydraEngine\source\buffer\HydraMaterialBufferManager.cpp" />
<ClInclude Include="C:\Code\HydraV3\HydraEngine\source\buffer\HydraMaterialBufferManager.h" />
<ClInclude Include="C:\Code\HydraV3\HydraEngine\source\buffer\HydraShadowBuffer.h" />
<ClCompile Include="C:\Code\HydraV3\HydraEngine\source\buffer\HydraShadowBufferManager.cpp" />
<ClInclude Include="C:\Code\HydraV3\HydraEngine\source\buffer\HydraShadowBufferManager.h" />
<ClCompile Include="C:\Code\HydraV3\HydraEngine\source\buffer\HydraTextureBufferManager.cpp" />
<ClInclude Include="C:\Code\HydraV3\HydraEngine\source\buffer\HydraTextureBufferManager.h" />
<ClInclude Include="C:\Code\HydraV3\HydraEngine\source\buffer\HydraTexureBuffer.h" />
@@ -46,6 +46,9 @@
<ClCompile Include="C:\Code\HydraV3\HydraEngine\source\buffer\HydraMaterialBufferManager.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="C:\Code\HydraV3\HydraEngine\source\buffer\HydraShadowBufferManager.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="C:\Code\HydraV3\HydraEngine\source\buffer\HydraTextureBufferManager.cpp">
<Filter>Source Files</Filter>
</ClCompile>
@@ -204,6 +207,9 @@
<ClInclude Include="C:\Code\HydraV3\HydraEngine\source\buffer\HydraShadowBuffer.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="C:\Code\HydraV3\HydraEngine\source\buffer\HydraShadowBufferManager.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="C:\Code\HydraV3\HydraEngine\source\buffer\HydraTextureBufferManager.h">
<Filter>Header Files</Filter>
</ClInclude>
+4 -13
View File
@@ -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]