You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

61 lines
1.4 KiB

  1. program example;
  2. uses
  3. sysutils, variants,
  4. ulibShaderFile;
  5. const
  6. {$IF DEFINED(WIN32)}
  7. LibName = '..\..\..\libShaderFile-i386-win32.dll';
  8. {$ELSEIF DEFINED(WIN64)}
  9. LibName = '..\..\..\libShaderFile-x86_64-win64.dll';
  10. {$ELSEIF DEFINED(LINUX) AND DEFINED(CPU32)}
  11. LibName = '../../../libShaderFile-i386-linux.so';
  12. {$ELSEIF DEFINED(LINUX) AND DEFINED(CPU64)}
  13. LibName = '../../../libShaderFile-x86_64-linux.so';
  14. {$ELSE}
  15. {$ERROR 'unknown operation system'}
  16. {$IFEND}
  17. var
  18. i: Integer;
  19. s: String;
  20. ShaderFile: TlsfShaderFile;
  21. Generator: TlsfGenerator;
  22. begin
  23. lsf_init(ExtractFilePath(ParamStr(0)) + LibName);
  24. try
  25. if (ParamCount < 2) then begin
  26. WriteLn('error: expected input file and generator/class name as parameter');
  27. ExitCode := 1;
  28. exit;
  29. end;
  30. ShaderFile := TlsfShaderFile.Create;
  31. try
  32. ShaderFile.LoadFromFile(ParamStr(1));
  33. Generator := TlsfGenerator.Create(ShaderFile, ParamStr(2));
  34. try
  35. i := 3;
  36. while (i < ParamCount) do begin
  37. s := ParamStr(i+1);
  38. Generator.SetProperty(ParamStr(i), s);
  39. inc(i, 2);
  40. end;
  41. WriteLn(Generator.GenerateCode);
  42. finally
  43. FreeAndNil(Generator);
  44. end;
  45. finally
  46. FreeAndNil(ShaderFile);
  47. end;
  48. except
  49. on e: Exception do begin
  50. WriteLn('error: ' + e.Message);
  51. ExitCode := 2;
  52. end;
  53. end;
  54. lsf_finish;
  55. end.