41 class MaterialInspector {
44 void SetMaterialPath(
const std::filesystem::path& materialPath);
47 enum class ShaderLoadStatus {
54 void ReloadAvailablePipelineSets();
55 bool TryLoadShaderReflection(
Uuid& shaderUuid);
56 void LoadShaderUniformBuffers(rapidjson::Value& uniformBuffers);
57 void LoadMaterialSamplers(rapidjson::Value& samplers);
58 void RenderTextures();
59 void RenderParameters();
60 void OnSelectedTexture(
Uuid uuid, std::string name);
61 void RenderTexture(
Sampler& sampler);
64 std::filesystem::path materialPath;
66 std::string materialName;
68 std::string pipelineSetName;
69 std::vector<Sampler> pipelineSetSamplers;
70 std::vector<MaterialParameter> parameters;
74 std::vector<AssetRegistry::Entry> availablePipelineSets;
77 Sampler* selectedSampler =
nullptr;
78 ShaderLoadStatus shaderLoadStatus = ShaderLoadStatus::Unassigned;
79 bool hasBeenChanged =
false;
81 struct MaterialUniformBuffer {
85 size_t memberSize = 0;
91 ) : name(name), offset(offset), memberSize(memberSize) {}
95 size_t bufferSize = 0;
96 std::vector<Member> members;
97 MaterialUniformBuffer() =
default;
98 MaterialUniformBuffer(
102 ) : name(name), bindingId(bindingId), bufferSize(bufferSize) {}
105 std::vector<MaterialUniformBuffer> materialUniformBuffers;