Ext.KHR_TextureTransform.cs 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  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 => Constants.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)> Process()
  12. {
  13. var ctx = SchemaProcessing.LoadSchemaContext(SchemaUri);
  14. ctx.IgnoredByCodeEmitter("glTF Property");
  15. ctx.IgnoredByCodeEmitter("glTF Child of Root Property");
  16. var tex = ctx.FindClass(ExtensionRootClassName);
  17. tex.GetField("offset")
  18. .SetDataType(typeof(System.Numerics.Vector2), true)
  19. .SetDefaultValue("Vector2.Zero")
  20. .SetItemsRange(0);
  21. tex.GetField("scale")
  22. .SetDataType(typeof(System.Numerics.Vector2), true)
  23. .SetDefaultValue("Vector2.One")
  24. .SetItemsRange(0);
  25. yield return ("ext.TextureTransform.g", ctx);
  26. }
  27. public override void PrepareTypes(CodeGen.CSharpEmitter newEmitter, SchemaType.Context ctx)
  28. {
  29. newEmitter.SetRuntimeName(ExtensionRootClassName, "TextureTransform");
  30. }
  31. }
  32. }