Nelze vybrat více než 25 témat Téma musí začínat písmenem nebo číslem, může obsahovat pomlčky („-“) a může být dlouhé až 35 znaků.
 
 

72 řádky
2.9 KiB

  1. unit uvkuFactoryBase;
  2. {$mode objfpc}{$H+}
  3. interface
  4. uses
  5. Classes, SysUtils,
  6. Vulkan, uvkuInstance, uvkuDevice;
  7. type
  8. /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  9. TvkuFactory = class(TObject)
  10. end;
  11. /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  12. TvkuInstanceObjFactory = class(TvkuFactory)
  13. private
  14. fInstanceCommands: TVkInstanceCommands;
  15. public
  16. property InstanceCommands: TVkInstanceCommands read fInstanceCommands;
  17. constructor Create(const aInstance: TvkuInstance);
  18. constructor Create(const aInstanceCommands: TVkInstanceCommands);
  19. end;
  20. /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  21. TvkuDeviceObjFactory = class(TvkuFactory)
  22. private
  23. fDeviceCommands: TVkDeviceCommands;
  24. public
  25. property DeviceCommands: TVkDeviceCommands read fDeviceCommands;
  26. constructor Create(const aDevice: TvkuDevice);
  27. constructor Create(const aDeviceCommands: TVkDeviceCommands);
  28. end;
  29. implementation
  30. /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  31. //TvkuInstanceObjFactory/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  32. /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  33. constructor TvkuInstanceObjFactory.Create(const aInstance: TvkuInstance);
  34. begin
  35. Create(aInstance.InstanceCommands);
  36. end;
  37. /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  38. constructor TvkuInstanceObjFactory.Create(const aInstanceCommands: TVkInstanceCommands);
  39. begin
  40. inherited Create;
  41. fInstanceCommands := aInstanceCommands;
  42. end;
  43. /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  44. //TvkuDeviceObjFactory///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  45. /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  46. constructor TvkuDeviceObjFactory.Create(const aDevice: TvkuDevice);
  47. begin
  48. Create(aDevice.DeviceCommands);
  49. end;
  50. /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  51. constructor TvkuDeviceObjFactory.Create(const aDeviceCommands: TVkDeviceCommands);
  52. begin
  53. inherited Create;
  54. fDeviceCommands := aDeviceCommands;
  55. end;
  56. end.