Reworking shader compilation to not need reflection

This commit is contained in:
Dynamitos
2020-09-30 13:48:41 +02:00
parent facbfed79c
commit 79388bf41a
15 changed files with 330 additions and 4 deletions
+73
View File
@@ -0,0 +1,73 @@
#include "ShaderExpression.h"
#include "Graphics/GraphicsResources.h"
#include "Asset/TextureAsset.h"
using namespace Seele;
ShaderParameter::ShaderParameter(std::string name, uint32 byteOffset, uint32 binding)
: name(name)
, byteOffset(byteOffset)
, binding(binding)
{
}
ShaderParameter::~ShaderParameter()
{
}
FloatParameter::FloatParameter(std::string name, uint32 byteOffset, uint32 binding)
: ShaderParameter(name, byteOffset, binding)
{
}
FloatParameter::~FloatParameter()
{
}
void FloatParameter::updateDescriptorSet(Gfx::PDescriptorSet descriptorSet, uint8* dst)
{
std::memcpy(dst + byteOffset, &data, sizeof(float));
}
VectorParameter::VectorParameter(std::string name, uint32 byteOffset, uint32 binding)
: ShaderParameter(name, byteOffset, binding)
{
}
VectorParameter::~VectorParameter()
{
}
void VectorParameter::updateDescriptorSet(Gfx::PDescriptorSet descriptorSet, uint8* dst)
{
std::memcpy(dst + byteOffset, &data, sizeof(Vector));
}
TextureParameter::TextureParameter(std::string name, uint32 byteOffset, uint32 binding)
: ShaderParameter(name, byteOffset, binding)
{
}
TextureParameter::~TextureParameter()
{
}
void TextureParameter::updateDescriptorSet(Gfx::PDescriptorSet descriptorSet, uint8* dst)
{
descriptorSet->updateTexture(binding, data->getTexture());
}
SamplerParameter::SamplerParameter(std::string name, uint32 byteOffset, uint32 binding)
: ShaderParameter(name, byteOffset, binding)
{
}
SamplerParameter::~SamplerParameter()
{
}
void SamplerParameter::updateDescriptorSet(Gfx::PDescriptorSet descriptorSet, uint8* dst)
{
descriptorSet->updateSampler(binding, data);
}