|
- unit uvkuBufferViewFactory;
-
- {$mode objfpc}{$H+}
-
- interface
-
- uses
- Classes, SysUtils,
- Vulkan, uvkuBufferView, uvkuFactoryBase;
-
- type
- /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
- TvkuBufferViewFactory = class(TvkuDeviceObjFactory)
- private
- fFlags: VkBufferViewCreateFlags;
- fBuffer: VkBuffer;
- fFormat: TVkFormat;
- fOffset: VkDeviceSize;
- fRange: VkDeviceSize;
- public
- property Flags: VkBufferViewCreateFlags read fFlags write fFlags;
- property Buffer: VkBuffer read fBuffer write fBuffer;
- property Format: TVkFormat read fFormat write fFormat;
- property Offset: VkDeviceSize read fOffset write fOffset;
- property Range: VkDeviceSize read fRange write fRange;
-
- function GetStructure: TVkBufferViewCreateInfo;
- procedure SetStructure(const aData: TVkBufferViewCreateInfo);
-
- function CreateBufferView: TvkuBufferView;
- end;
-
- implementation
-
- /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
- //TvkuBufferViewFactory//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
- /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
- function TvkuBufferViewFactory.GetStructure: TVkBufferViewCreateInfo;
- begin
- FillByte(result, SizeOf(result), 0);
- result.sType := VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO;
- result.pNext := nil;
- result.flags := fFlags;
- result.buffer := fBuffer;
- result.format := fFormat;
- result.offset := fOffset;
- result.range := fRange;
- end;
-
- /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
- procedure TvkuBufferViewFactory.SetStructure(const aData: TVkBufferViewCreateInfo);
- begin
- fFlags := aData.flags;
- fBuffer := aData.buffer;
- fFormat := aData.format;
- fOffset := aData.offset;
- fRange := aData.range;
- end;
-
- /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
- function TvkuBufferViewFactory.CreateBufferView: TvkuBufferView;
- begin
- result := TvkuBufferView.Create(GetStructure, DeviceCommands, AllocCallbacks);
- end;
-
- end.
|