Implementing ECS SystemBase and updating slang

This commit is contained in:
Dynamitos
2022-11-15 12:19:11 +01:00
parent 05bc31a2b4
commit f635ee2100
106 changed files with 1083 additions and 1675 deletions
+2 -3
View File
@@ -53,7 +53,6 @@ void MaterialAsset::load()
std::ofstream codeStream("./shaders/generated/"+materialName+".slang");
std::string profile = j["profile"].get<std::string>();
codeStream << "import VERTEX_INPUT_IMPORT;" << std::endl;
codeStream << "import Material;" << std::endl;
codeStream << "import BRDF;" << std::endl;
codeStream << "import MaterialParameter;" << std::endl << std::endl;
@@ -94,7 +93,7 @@ void MaterialAsset::load()
uniformBufferOffset += 12;
if(defaultValue != param.value().end())
{
p->data = parseVector(defaultValue.value().get<std::string>().c_str());
p->data = Math::parseVector(defaultValue.value().get<std::string>().c_str());
}
parameters.add(p);
}
@@ -184,6 +183,6 @@ const Gfx::ShaderCollection* MaterialAsset::getShaders(Gfx::RenderPassType rende
Gfx::ShaderCollection& MaterialAsset::createShaders(Gfx::PGraphics graphics, Gfx::RenderPassType renderPass, VertexInputType* vertexInput)
{
std::scoped_lock lock(shaderMapLock);
std::scoped_lock l(shaderMapLock);
return shaderMap.createShaders(graphics, renderPass, this, vertexInput, false);
}
+2
View File
@@ -40,6 +40,8 @@ private:
uint8* uniformData;
int32 uniformBinding;
std::string materialName;
// With draw-indirect, we batch vertex data into big vertex buffers
// Gfx::PVertexDataManager vertexData;
};
DEFINE_REF(MaterialAsset)
} // namespace Seele
+1 -1
View File
@@ -40,7 +40,7 @@ VectorParameter::~VectorParameter()
void VectorParameter::updateDescriptorSet(Gfx::PDescriptorSet, uint8* dst)
{
std::memcpy(dst + byteOffset, &data, sizeof(Vector));
std::memcpy(dst + byteOffset, &data, sizeof(Math::Vector));
}
TextureParameter::TextureParameter(std::string name, uint32 byteOffset, uint32 binding)
+1 -1
View File
@@ -36,7 +36,7 @@ struct FloatParameter : public ShaderParameter
DEFINE_REF(FloatParameter)
struct VectorParameter : public ShaderParameter
{
Vector data;
Math::Vector data;
VectorParameter(std::string name, uint32 byteOffset, uint32 binding);
virtual ~VectorParameter();
virtual void updateDescriptorSet(Gfx::PDescriptorSet descriptorSet, uint8* dst) override;