25'ten fazla konu seçemezsiniz Konular bir harf veya rakamla başlamalı, kısa çizgiler ('-') içerebilir ve en fazla 35 karakter uzunluğunda olabilir.

63 satır
2.3 KiB

  1. unit uengShaderCodeGenerator;
  2. {$mode objfpc}{$H+}
  3. {$I uengShaderFile.inc}
  4. interface
  5. uses
  6. Classes, SysUtils,
  7. uengShaderFileParser, uengShaderPart, uengShaderPartScope, uengShaderPartKeyValuePair;
  8. type
  9. ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  10. TengShaderCodeGenerator = class(TengShaderPartScope)
  11. { Code Loading & Storage }
  12. private
  13. fProperties: TengShaderPartPropertyMap;
  14. protected
  15. fInherited: TengShaderPartList;
  16. procedure UpdateInherited; virtual;
  17. function ParseIntern(const aArgs: TengParseArgs; const aParams: TengTokenParameterList): String; override;
  18. { General }
  19. public
  20. constructor Create(const aParent: TengShaderPart); override;
  21. destructor Destroy; override;
  22. end;
  23. implementation
  24. ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  25. //TengShaderCodeGenerator///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  26. ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  27. procedure TengShaderCodeGenerator.UpdateInherited;
  28. begin
  29. // TODO
  30. end;
  31. ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  32. function TengShaderCodeGenerator.ParseIntern(const aArgs: TengParseArgs; const aParams: TengTokenParameterList): String;
  33. begin
  34. result := inherited ParseIntern(aArgs, aParams);
  35. UpdateInherited;
  36. end;
  37. ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  38. constructor TengShaderCodeGenerator.Create(const aParent: TengShaderPart);
  39. begin
  40. inherited Create(aParent);
  41. fInherited := TengShaderPartList.Create(false);
  42. end;
  43. ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  44. destructor TengShaderCodeGenerator.Destroy;
  45. begin
  46. FreeAndNil(fInherited);
  47. inherited Destroy;
  48. end;
  49. end.