Reworking shader compilation to not need reflection
This commit is contained in:
@@ -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);
|
||||
}
|
||||
Reference in New Issue
Block a user