Program.cs 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  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. using NJsonSchema.References;
  8. using JSONSCHEMA = NJsonSchema.JsonSchema;
  9. namespace SharpGLTF
  10. {
  11. using CodeGen;
  12. using SchemaReflection;
  13. partial class Program
  14. {
  15. #region MAIN
  16. static void Main(string[] args)
  17. {
  18. SchemaDownload.Syncronize(Constants.RemoteSchemaRepo, Constants.LocalRepoDirectory);
  19. var processors = new List<SchemaProcessor>();
  20. // ---------------------------------------------- Add Main Schema
  21. processors.Add(new MainSchemaProcessor());
  22. // ---------------------------------------------- Add extensions
  23. // XMP
  24. processors.Add(new XMPExtension());
  25. // material extensions
  26. processors.Add(new UnlitExtension());
  27. processors.Add(new IorExtension());
  28. processors.Add(new SheenExtension());
  29. processors.Add(new SpecularExtension());
  30. processors.Add(new ClearCoatExtension());
  31. processors.Add(new TransmissionExtension());
  32. processors.Add(new SpecularGlossinessExtension());
  33. // lights
  34. processors.Add(new LightsPunctualExtension());
  35. // gpu mesh instancing
  36. processors.Add(new MeshGpuInstancingExtension());
  37. // textures
  38. processors.Add(new TextureTransformExtension());
  39. processors.Add(new TextureDDSExtension());
  40. processors.Add(new TextureWebpExtension());
  41. processors.Add(new TextureKtx2Extension());
  42. processors.Add(new AgiArticulationsExtension());
  43. processors.Add(new AgiStkMetadataExtension());
  44. // ---------------------------------------------- process all files
  45. var processes = processors.SelectMany(item => item.Process());
  46. foreach (var (targetFileName, schema) in processes)
  47. {
  48. System.Console.WriteLine($"Emitting {targetFileName}...");
  49. SchemaProcessing.EmitCodeFromSchema(targetFileName, schema, processors);
  50. }
  51. }
  52. #endregion
  53. }
  54. }