unit uvkuPhysicalDeviceFactory; {$mode objfpc}{$H+} interface uses Classes, SysUtils, Vulkan, uvkuInstance, uvkuPhysicalDevice; type ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// TvkuPhysicalDeviceFactory = class(TObject) private fInstance: TvkuInstance; public function CreatePhysicalDevice( const aHandle: VkPhysicalDevice): TvkuPhysicalDevice; constructor Create(const aInstance: TvkuInstance); end; implementation ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //TvkuPhysicalDeviceFactory////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// function TvkuPhysicalDeviceFactory.CreatePhysicalDevice(const aHandle: VkPhysicalDevice): TvkuPhysicalDevice; begin result := TvkuPhysicalDevice.Create(aHandle, fInstance.InstanceCommands); end; ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// constructor TvkuPhysicalDeviceFactory.Create(const aInstance: TvkuInstance); begin inherited Create; fInstance := aInstance; end; end.