Files
BladeSmith/Plugins/MiceShaders/Source/MiceShaders/Private/FTemperatureComputeShader.cpp
T
2025-12-07 23:50:00 +08:00

38 lines
1.1 KiB
C++

#include "FTemperatureComputeShader.h"
#include "GlobalShader.h"
#include "ShaderParameterStruct.h"
#include "RHIStaticStates.h"
#include "Shader.h"
#include "RHICommandList.h"
#include "RHIResources.h"
#include "ShaderParameterUtils.h"
// 全局参数存储
FThreadSafeTemperatureParams GTemperatureParams;
// 实现温度传导计算着色器
// 路径指向MiceShaders插件中的着色器文件
IMPLEMENT_GLOBAL_SHADER(FTemperatureComputeShader,
"/MiceShaders/Shaders/Private/TemperatureConductionCS.usf",
"MainCompute",
SF_Compute);
// 线程安全参数管理实现
void FThreadSafeTemperatureParams::AddParams(const FTemperatureCSDispatchParams& NewParams)
{
FScopeLock Lock(&ParamsCriticalSection);
PendingParams.Add(NewParams);
}
bool FThreadSafeTemperatureParams::ConsumeParams(FTemperatureCSDispatchParams& OutParams)
{
FScopeLock Lock(&ParamsCriticalSection);
if (PendingParams.Num() > 0)
{
OutParams = PendingParams[0];
PendingParams.RemoveAt(0);
return true;
}
return false;
}