Nav apraksta
Nevar pievienot vairāk kā 25 tēmas Tēmai ir jāsākas ar burtu vai ciparu, tā var saturēt domu zīmes ('-') un var būt līdz 35 simboliem gara.

PragmaCollection.cs 1.8KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. using System.Collections;
  2. using System.Collections.Generic;
  3. namespace UnityEditor.ShaderGraph
  4. {
  5. [GenerationAPI]
  6. internal class PragmaCollection : IEnumerable<PragmaCollection.Item>
  7. {
  8. public class Item : IConditional
  9. {
  10. public PragmaDescriptor descriptor { get; }
  11. public FieldCondition[] fieldConditions { get; }
  12. public string value => $"#pragma {descriptor.value}";
  13. public Item(PragmaDescriptor descriptor, FieldCondition[] fieldConditions)
  14. {
  15. this.descriptor = descriptor;
  16. this.fieldConditions = fieldConditions;
  17. }
  18. }
  19. readonly List<Item> m_Items;
  20. public PragmaCollection()
  21. {
  22. m_Items = new List<Item>();
  23. }
  24. public PragmaCollection Add(PragmaCollection pragmas)
  25. {
  26. foreach (PragmaCollection.Item item in pragmas)
  27. {
  28. m_Items.Add(item);
  29. }
  30. return this;
  31. }
  32. public PragmaCollection Add(PragmaDescriptor descriptor)
  33. {
  34. m_Items.Add(new Item(descriptor, null));
  35. return this;
  36. }
  37. public PragmaCollection Add(PragmaDescriptor descriptor, FieldCondition fieldCondition)
  38. {
  39. m_Items.Add(new Item(descriptor, new FieldCondition[] { fieldCondition }));
  40. return this;
  41. }
  42. public PragmaCollection Add(PragmaDescriptor descriptor, FieldCondition[] fieldConditions)
  43. {
  44. m_Items.Add(new Item(descriptor, fieldConditions));
  45. return this;
  46. }
  47. public IEnumerator<Item> GetEnumerator()
  48. {
  49. return m_Items.GetEnumerator();
  50. }
  51. IEnumerator IEnumerable.GetEnumerator()
  52. {
  53. return GetEnumerator();
  54. }
  55. }
  56. }