Changed MaterialConverterBus GetMaterialTypePath() to return a string instead of char*

Minor code cleanup.

Signed-off-by: santorac <55155825+santorac@users.noreply.github.com>
This commit is contained in:
santorac
2021-08-20 17:22:11 -07:00
parent 079e018e8e
commit 6b23e07af4
4 changed files with 11 additions and 18 deletions
@@ -23,12 +23,12 @@ namespace AZ
{
void MaterialConverterSettings::Reflect(AZ::ReflectContext* context)
{
if (auto serializeContext = azrtti_cast<AZ::SerializeContext*>(context); serializeContext)
if (auto serializeContext = azrtti_cast<AZ::SerializeContext*>(context))
{
serializeContext->Class<MaterialConverterSettings>()
->Version(1)
->Field("Enable", &MaterialConverterSettings::m_enable)
->Field("DefaultMaterial", &MaterialConverterSettings::m_defaultMaterial);
->Version(1)
->Field("Enable", &MaterialConverterSettings::m_enable)
->Field("DefaultMaterial", &MaterialConverterSettings::m_defaultMaterial);
}
}
@@ -176,16 +176,9 @@ namespace AZ
return true;
}
const char* MaterialConverterSystemComponent::GetMaterialTypePath() const
AZStd::string MaterialConverterSystemComponent::GetMaterialTypePath() const
{
if (m_settings.m_enable)
{
return "Materials/Types/StandardPBR.materialtype";
}
else
{
return nullptr;
}
return "Materials/Types/StandardPBR.materialtype";
}
AZStd::string MaterialConverterSystemComponent::GetDefaultMaterialPath() const
@@ -46,7 +46,7 @@ namespace AZ
// MaterialConverterBus overrides ...
bool IsEnabled() const override;
bool ConvertMaterial(const AZ::SceneAPI::DataTypes::IMaterialData& materialData, RPI::MaterialSourceData& out) override;
const char* GetMaterialTypePath() const override;
AZStd::string GetMaterialTypePath() const override;
AZStd::string GetDefaultMaterialPath() const override;
private:
@@ -37,8 +37,8 @@ namespace AZ
//! @return true if the MaterialSourceData output was populated with converted material data.
virtual bool ConvertMaterial(const AZ::SceneAPI::DataTypes::IMaterialData& materialData, MaterialSourceData& out) = 0;
//! Returns the path to the .materialtype file that the converted materials are based on, such as StandardPBR.materialtype, etc. Or nullptr when conversion is disabled.
virtual const char* GetMaterialTypePath() const = 0;
//! Returns the path to the .materialtype file that the converted materials are based on, such as StandardPBR.materialtype, etc.
virtual AZStd::string GetMaterialTypePath() const = 0;
//! Returns the path to a .material file to use as the default material when conversion is disabled.
virtual AZStd::string GetDefaultMaterialPath() const = 0;
@@ -75,10 +75,10 @@ namespace AZ
RPI::MaterialConverterBus::BroadcastResult(conversionEnabled, &RPI::MaterialConverterBus::Events::IsEnabled);
// Right now, scene file importing only supports a single material type, once that changes, this will have to be re-designed, see ATOM-3554
const char* materialTypePath = nullptr;
AZStd::string materialTypePath;
RPI::MaterialConverterBus::BroadcastResult(materialTypePath, &RPI::MaterialConverterBus::Events::GetMaterialTypePath);
if (conversionEnabled && materialTypePath)
if (conversionEnabled && !materialTypePath.empty())
{
AssetBuilderSDK::SourceFileDependency materialTypeSource;
materialTypeSource.m_sourceFileDependencyPath = materialTypePath;