2026-03-24 16:14:05 +08:00
|
|
|
#include <XCEngine/Resources/Shader/Shader.h>
|
2026-03-17 22:32:27 +08:00
|
|
|
|
|
|
|
|
namespace XCEngine {
|
|
|
|
|
namespace Resources {
|
|
|
|
|
|
|
|
|
|
Shader::Shader() = default;
|
|
|
|
|
|
|
|
|
|
Shader::~Shader() = default;
|
|
|
|
|
|
|
|
|
|
void Shader::Release() {
|
|
|
|
|
m_sourceCode.Clear();
|
|
|
|
|
m_compiledBinary.Clear();
|
|
|
|
|
m_uniforms.Clear();
|
|
|
|
|
m_attributes.Clear();
|
|
|
|
|
m_rhiResource = nullptr;
|
|
|
|
|
m_isValid = false;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void Shader::SetSourceCode(const Containers::String& source) {
|
|
|
|
|
m_sourceCode = source;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void Shader::SetCompiledBinary(const Containers::Array<Core::uint8>& binary) {
|
|
|
|
|
m_compiledBinary = binary;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void Shader::AddUniform(const ShaderUniform& uniform) {
|
|
|
|
|
m_uniforms.PushBack(uniform);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void Shader::AddAttribute(const ShaderAttribute& attribute) {
|
|
|
|
|
m_attributes.PushBack(attribute);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void Shader::SetRHIResource(class IRHIShader* resource) {
|
|
|
|
|
m_rhiResource = resource;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
} // namespace Resources
|
|
|
|
|
} // namespace XCEngine
|