Staging before meshlet linearization
This commit is contained in:
@@ -9,6 +9,9 @@
|
||||
|
||||
using namespace Seele;
|
||||
|
||||
std::atomic_uint64_t Material::materialIdCounter = 0;
|
||||
Array<PMaterial> Material::materials;
|
||||
|
||||
Material::Material()
|
||||
{
|
||||
}
|
||||
@@ -30,7 +33,9 @@ Material::Material(Gfx::PGraphics graphics,
|
||||
, codeExpressions(std::move(expressions))
|
||||
, parameters(std::move(parameter))
|
||||
, brdf(std::move(brdf))
|
||||
, materialId(materialIdCounter++)
|
||||
{
|
||||
materials.add(this);
|
||||
}
|
||||
|
||||
Material::~Material()
|
||||
|
||||
@@ -22,6 +22,8 @@ public:
|
||||
Gfx::PDescriptorLayout getDescriptorLayout() { return layout; }
|
||||
OMaterialInstance instantiate();
|
||||
const std::string& getName() const { return materialName; }
|
||||
constexpr const uint64 getId() const { return materialId; }
|
||||
static constexpr const PMaterial findMaterialById(uint64 id) { return materials[id]; }
|
||||
|
||||
void save(ArchiveBuffer& buffer) const;
|
||||
void load(ArchiveBuffer& buffer);
|
||||
@@ -33,11 +35,14 @@ private:
|
||||
uint32 uniformDataSize;
|
||||
uint32 uniformBinding;
|
||||
uint64 instanceId;
|
||||
uint64 materialId;
|
||||
Gfx::ODescriptorLayout layout;
|
||||
std::string materialName;
|
||||
Array<OShaderExpression> codeExpressions;
|
||||
Array<std::string> parameters;
|
||||
MaterialNode brdf;
|
||||
static std::atomic_uint64_t materialIdCounter;
|
||||
static Array<PMaterial> materials;
|
||||
};
|
||||
DEFINE_REF(Material)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user