KHR_TextureTransform.cs 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Text;
  4. using SharpGLTF.SchemaReflection;
  5. namespace SharpGLTF
  6. {
  7. class TextureTransformExtension : SchemaProcessor
  8. {
  9. private static string SchemaUri => KhronosExtensions.KhronosExtensionPath("KHR_texture_transform", "textureInfo.KHR_texture_transform.schema.json");
  10. private const string ExtensionRootClassName = "KHR_texture_transform glTF TextureInfo Extension";
  11. public override IEnumerable<(string, SchemaType.Context)> ReadSchema()
  12. {
  13. var ctx = SchemaProcessing.LoadExtensionSchemaContext(SchemaUri);
  14. var tex = ctx.FindClass(ExtensionRootClassName);
  15. tex.GetField("offset")
  16. .SetDataType(typeof(System.Numerics.Vector2), true)
  17. .SetDefaultValue("Vector2.Zero")
  18. .SetItemsRange(0);
  19. tex.GetField("scale")
  20. .SetDataType(typeof(System.Numerics.Vector2), true)
  21. .SetDefaultValue("Vector2.One")
  22. .SetItemsRange(0);
  23. yield return ("ext.TextureTransform.g", ctx);
  24. }
  25. public override void PrepareTypes(CodeGen.CSharpEmitter newEmitter, SchemaType.Context ctx)
  26. {
  27. newEmitter.SetRuntimeName(ExtensionRootClassName, "TextureTransform");
  28. }
  29. }
  30. }