35 {
36 const VkImageMemoryBarrier image_memory_barrier = {
37 .sType = VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER,
38 .pNext = nullptr,
39 .srcAccessMask = access_flags_,
40 .dstAccessMask = dest_access_flags,
41 .oldLayout = layout_,
42 .newLayout = dest_layout,
43 .srcQueueFamilyIndex = VK_QUEUE_FAMILY_IGNORED,
44 .dstQueueFamilyIndex = VK_QUEUE_FAMILY_IGNORED,
45 .image = handle_,
46 .subresourceRange = {VK_IMAGE_ASPECT_COLOR_BIT, 0, 1, 0, 1},
47 };
48
49 bool success = command_buffer.InsertPipelineBarrier(
50 src_pipline_bits,
51 dest_pipline_bits,
52 0,
53 0,
54 nullptr,
55 0,
56 nullptr,
57 1,
58 &image_memory_barrier
59 );
60
61 if (success) {
62 access_flags_ = dest_access_flags;
63 layout_ = dest_layout;
64 }
65
66 return success;
67}