ShaderAbstract.cs 1005 B

123456789101112131415161718192021222324252627282930313233343536
  1. using System;
  2. using System.IO;
  3. using Veldrid;
  4. using Veldrid.SPIRV;
  5. namespace TextRender
  6. {
  7. public class ShaderAbstract : IDisposable
  8. {
  9. public string Name { get; protected set; }
  10. public Shader VertexShader { get; protected set; }
  11. public Shader FragmentShader { get; protected set; }
  12. public VertexLayoutDescription Layout { get; protected set; }
  13. protected ShaderAbstract(VeldridChart.VeldridResource resource, string name, bool InvertY = false)
  14. {
  15. Name = name;
  16. var shaders = resource.ShaderManger.GetShaders(name);
  17. VertexShader = shaders[0];
  18. FragmentShader = shaders[1];
  19. }
  20. public virtual void Dispose()
  21. {
  22. if (VertexShader != null && FragmentShader != null)
  23. {
  24. VertexShader.Dispose();
  25. VertexShader = null;
  26. FragmentShader.Dispose();
  27. FragmentShader = null;
  28. }
  29. }
  30. }
  31. }