unit uvkuFactoryBase; {$mode objfpc}{$H+} interface uses Classes, SysUtils, Vulkan, uvkuInstance, uvkuDevice; type ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// TvkuFactory = class(TObject) end; ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// TvkuInstanceObjFactory = class(TvkuFactory) private fInstanceCommands: TVkInstanceCommands; public property InstanceCommands: TVkInstanceCommands read fInstanceCommands; constructor Create(const aInstance: TvkuInstance); constructor Create(const aInstanceCommands: TVkInstanceCommands); end; ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// TvkuDeviceObjFactory = class(TvkuFactory) private fDeviceCommands: TVkDeviceCommands; public property DeviceCommands: TVkDeviceCommands read fDeviceCommands; constructor Create(const aDevice: TvkuDevice); constructor Create(const aDeviceCommands: TVkDeviceCommands); end; implementation ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //TvkuInstanceObjFactory///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// constructor TvkuInstanceObjFactory.Create(const aInstance: TvkuInstance); begin Create(aInstance.InstanceCommands); end; ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// constructor TvkuInstanceObjFactory.Create(const aInstanceCommands: TVkInstanceCommands); begin inherited Create; fInstanceCommands := aInstanceCommands; end; ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //TvkuDeviceObjFactory/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// constructor TvkuDeviceObjFactory.Create(const aDevice: TvkuDevice); begin Create(aDevice.DeviceCommands); end; ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// constructor TvkuDeviceObjFactory.Create(const aDeviceCommands: TVkDeviceCommands); begin inherited Create; fDeviceCommands := aDeviceCommands; end; end.