1    type Image
2        def update (bytes : Slice<u8>) =
3            let command_buffer : CommandBuffer @auto
4            let instance = command_buffer.instance
5    
6            assert bytes.size as u64 <= size
7    
8            if layout <> ImageLayout/TransferDstOptimal then
9                transition layout ImageLayout/TransferDstOptimal
10   
11           let target = Target/Image object width height |> as_target
12           buffer/write target bytes.ptr bytes.size 32
13   
14           generate_mipmaps instance.physical_device command_buffer.object
15                            object format width height mip_levels array_layers
16   
17           layout = ImageLayout/ShaderReadOnlyOptimal
18