1    type ImageProperties = struct
2        flags : ImageCreateFlags
3        view_type : ViewType
4        width : u32
5        height : u32
6        depth : u32
7        mip_levels : u32
8        array_layers : u32
9        format : VkFormat
10       aspect_flags : ImageAspectFlags
11       samples : SampleCountFlags
12       tiling : ImageTiling
13       usage : ImageUsageFlags
14       memory_flags : MemoryPropertyFlags
15   
16   object ImageProperties =
17       val default = ImageProperties
18           flags = ImageCreateFlags@zero
19           view_type = ViewType/2d
20           width = 1
21           height = 1
22           depth = 1
23           mip_levels = 1
24           array_layers = 1
25           format = VkFormat/R8_UNORM
26           aspect_flags = ImageAspectFlags/Color
27           samples = SampleCountFlags/1
28           tiling = ImageTiling/Optimal
29           usage = ImageUsageFlags/Sampled
30           memory_flags = MemoryPropertyFlags/DeviceLocal
31