Program.cs 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Reflection;
  5. using System.Text;
  6. using System.Threading.Tasks;
  7. namespace SharpGLTF
  8. {
  9. partial class Program
  10. {
  11. #region MAIN
  12. static void Main(string[] args)
  13. {
  14. SchemaDownload.Syncronize(Constants.RemoteSchemaRepo, Constants.LocalRepoDirectory);
  15. var processors = new List<SchemaProcessor>();
  16. // ---------------------------------------------- Add Main Schema
  17. processors.Add(new MainSchemaProcessor());
  18. //// ---------------------------------------------- Add extensions
  19. // material extensions
  20. processors.Add(new UnlitExtension());
  21. processors.Add(new IorExtension());
  22. processors.Add(new SheenExtension());
  23. processors.Add(new VolumeExtension());
  24. processors.Add(new SpecularExtension());
  25. processors.Add(new ClearCoatExtension());
  26. processors.Add(new IridescenceExtension());
  27. processors.Add(new TransmissionExtension());
  28. processors.Add(new EmissiveStrengthExtension());
  29. processors.Add(new SpecularGlossinessExtension());
  30. // cesium outlines
  31. processors.Add(new CesiumPrimitiveOutlineExtension());
  32. // lights
  33. processors.Add(new LightsPunctualExtension());
  34. // gpu mesh instancing
  35. processors.Add(new MeshGpuInstancingExtension());
  36. // textures
  37. processors.Add(new TextureTransformExtension());
  38. processors.Add(new TextureDDSExtension());
  39. processors.Add(new TextureWebpExtension());
  40. processors.Add(new TextureKtx2Extension());
  41. processors.Add(new AgiArticulationsExtension());
  42. processors.Add(new AgiStkMetadataExtension());
  43. // other
  44. processors.Add(new XmpJsonLdExtension());
  45. processors.Add(new ExtInstanceFeaturesExtension());
  46. // ---------------------------------------------- process all files
  47. foreach (var processor in processors)
  48. {
  49. foreach(var (targetFileName, schema) in processor.Process())
  50. {
  51. System.Console.WriteLine($"Emitting {targetFileName}...");
  52. SchemaProcessing.EmitCodeFromSchema(processor.GetTargetProject(), targetFileName, schema, processors);
  53. }
  54. }
  55. }
  56. #endregion
  57. }
  58. }