GenerateShaderVariantListForMaterials.py 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. """
  2. Copyright (c) Contributors to the Open 3D Engine Project.
  3. For complete copyright and license terms please see the LICENSE at the root of this distribution.
  4. SPDX-License-Identifier: Apache-2.0 OR MIT
  5. """
  6. import os
  7. import sys
  8. import GenerateShaderVariantListUtil
  9. def main():
  10. print("==== Begin shader variant script ==========================================================")
  11. if len(sys.argv) != 2:
  12. print("The script requires a .shader file as input argument")
  13. return
  14. inputPath = sys.argv[1]
  15. _, extension = os.path.splitext(inputPath)
  16. if extension != ".shader":
  17. print("The input argument for the script is not a valid .shader file")
  18. return
  19. shaderVariantList = GenerateShaderVariantListUtil.create_shadervariantlist_for_shader(inputPath)
  20. # Create shader variant list document
  21. documentId = azlmbr.atomtools.AtomToolsDocumentSystemRequestBus(
  22. azlmbr.bus.Broadcast,
  23. 'CreateDocumentFromTypeName',
  24. 'Shader Variant List'
  25. )
  26. # Update shader variant list
  27. azlmbr.shadermanagementconsole.ShaderManagementConsoleDocumentRequestBus(
  28. azlmbr.bus.Event,
  29. 'SetShaderVariantListSourceData',
  30. documentId,
  31. shaderVariantList
  32. )
  33. print("==== End shader variant script ============================================================")
  34. if __name__ == "__main__":
  35. main()