Merge pull request #7356 from aws-lumberyard-dev/Atom/ShaderDefinitions
Add "Definitions" field to shader asset
This commit is contained in:
@@ -82,7 +82,7 @@ namespace AZ
|
||||
// Register Shader Asset Builder
|
||||
AssetBuilderSDK::AssetBuilderDesc shaderAssetBuilderDescriptor;
|
||||
shaderAssetBuilderDescriptor.m_name = "Shader Asset Builder";
|
||||
shaderAssetBuilderDescriptor.m_version = 109; // Modify Metal shader platform to permit the precise keyword to fix depth bitwise mismatch between passes
|
||||
shaderAssetBuilderDescriptor.m_version = 110; // Add "Definitions" field to shader asset to support convenient addition of preprocessor definitions
|
||||
shaderAssetBuilderDescriptor.m_patterns.push_back(AssetBuilderSDK::AssetBuilderPattern( AZStd::string::format("*.%s", RPI::ShaderSourceData::Extension), AssetBuilderSDK::AssetBuilderPattern::PatternType::Wildcard));
|
||||
shaderAssetBuilderDescriptor.m_busId = azrtti_typeid<ShaderAssetBuilder>();
|
||||
shaderAssetBuilderDescriptor.m_createJobFunction = AZStd::bind(&ShaderAssetBuilder::CreateJobs, &m_shaderAssetBuilder, AZStd::placeholders::_1, AZStd::placeholders::_2);
|
||||
|
||||
@@ -413,6 +413,9 @@ namespace AZ
|
||||
// At this moment We have global build options that should be merged with the build options that are common
|
||||
// to all the supervariants of this shader.
|
||||
buildOptions.m_compilerArguments.Merge(shaderSourceData.m_compiler);
|
||||
buildOptions.m_preprocessorSettings.m_predefinedMacros.insert(
|
||||
buildOptions.m_preprocessorSettings.m_predefinedMacros.end(),
|
||||
shaderSourceData.m_definitions.begin(), shaderSourceData.m_definitions.end());
|
||||
|
||||
for (RHI::ShaderPlatformInterface* shaderPlatformInterface : platformInterfaces)
|
||||
{
|
||||
|
||||
@@ -57,6 +57,7 @@ namespace AZ
|
||||
};
|
||||
|
||||
AZStd::string m_source;
|
||||
AZStd::vector<AZStd::string> m_definitions;
|
||||
RHI::ShaderCompilerArguments m_compiler;
|
||||
|
||||
AZStd::string m_drawListName;
|
||||
|
||||
@@ -21,13 +21,14 @@ namespace AZ
|
||||
if (auto* serializeContext = azrtti_cast<SerializeContext*>(context))
|
||||
{
|
||||
serializeContext->Class<ShaderSourceData>()
|
||||
->Version(4)
|
||||
->Version(5)
|
||||
->Field("Source", &ShaderSourceData::m_source)
|
||||
->Field("DrawList", &ShaderSourceData::m_drawListName)
|
||||
->Field("DepthStencilState", &ShaderSourceData::m_depthStencilState)
|
||||
->Field("RasterState", &ShaderSourceData::m_rasterState)
|
||||
->Field("BlendState", &ShaderSourceData::m_blendState)
|
||||
->Field("ProgramSettings", &ShaderSourceData::m_programSettings)
|
||||
->Field("Definitions", &ShaderSourceData::m_definitions)
|
||||
->Field("CompilerHints", &ShaderSourceData::m_compiler)
|
||||
->Field("DisabledRHIBackends", &ShaderSourceData::m_disabledRhiBackends)
|
||||
->Field("Supervariants", &ShaderSourceData::m_supervariants)
|
||||
|
||||
Reference in New Issue
Block a user