2026-04-07 11:59:50 +08:00
|
|
|
#pragma once
|
|
|
|
|
|
2026-04-07 12:19:17 +08:00
|
|
|
#include "../ShaderIR.h"
|
2026-04-07 11:59:50 +08:00
|
|
|
|
|
|
|
|
#include <XCEngine/Core/IO/IResourceLoader.h>
|
|
|
|
|
#include <XCEngine/Resources/Shader/Shader.h>
|
|
|
|
|
|
|
|
|
|
#include <string>
|
|
|
|
|
|
|
|
|
|
namespace XCEngine {
|
|
|
|
|
namespace Resources {
|
|
|
|
|
|
|
|
|
|
Containers::String GetDefaultEntryPoint(ShaderLanguage language, ShaderType stage);
|
|
|
|
|
Containers::String GetDefaultProfile(
|
|
|
|
|
ShaderLanguage language,
|
|
|
|
|
ShaderBackend backend,
|
|
|
|
|
ShaderType stage);
|
|
|
|
|
|
|
|
|
|
size_t CalculateShaderMemorySize(const Shader& shader);
|
|
|
|
|
|
|
|
|
|
LoadResult BuildShaderFromIR(
|
|
|
|
|
const Containers::String& path,
|
|
|
|
|
const ShaderIR& shaderIR);
|
|
|
|
|
|
2026-04-07 18:37:11 +08:00
|
|
|
bool ResolveShaderUsePassPath(
|
|
|
|
|
const Containers::String& currentShaderPath,
|
|
|
|
|
const Containers::String& currentShaderName,
|
|
|
|
|
const Containers::String& targetShaderName,
|
|
|
|
|
Containers::String& outResolvedPath);
|
2026-04-07 11:59:50 +08:00
|
|
|
|
|
|
|
|
} // namespace Resources
|
|
|
|
|
} // namespace XCEngine
|