]> O.S.I.I.S - jp/vkhelpers.git/commitdiff
add image mem mapping funcs
authorJean-Philippe Bruyère <jp_bruyere@hotmail.com>
Mon, 9 Apr 2018 18:02:41 +0000 (20:02 +0200)
committerJean-Philippe Bruyère <jp_bruyere@hotmail.com>
Mon, 9 Apr 2018 18:02:41 +0000 (20:02 +0200)
include/vkh.h
src/vkh_image.c

index cba0b328d92326331790d5429c75f3cea044d955..781a3c879b33c35b17b04c8757d91bae928a4007 100644 (file)
@@ -51,6 +51,8 @@ void vkh_image_set_layout       (VkCommandBuffer cmdBuff, VkhImage image, VkImag
 void vkh_image_set_layout_subres(VkCommandBuffer cmdBuff, VkhImage image, VkImageSubresourceRange subresourceRange,
                                     VkImageLayout new_image_layout, VkPipelineStageFlags src_stages, VkPipelineStageFlags dest_stages);
 void vkh_image_destroy          (VkhImage img);
+void* vkh_image_map             (VkhImage img);
+void vkh_image_unmap            (VkhImage img);
 
 VkImage                 vkh_image_get_vkimage   (VkhImage img);
 VkImageView             vkh_image_get_view      (VkhImage img);
index 6a9daf2d3b382bae666f9e012aef47bf43d7220d..fa8189257d9cf3488d8c86d26395a4b9d94b597f 100644 (file)
@@ -185,3 +185,18 @@ void vkh_image_destroy(VkhImage img)
     free(img);
     img = NULL;
 }
+
+void* vkh_image_map (VkhImage img) {
+    VkImageSubresource subRes = { .aspectMask = VK_IMAGE_ASPECT_COLOR_BIT};
+    //subRes.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT;
+    VkSubresourceLayout subResLayout;
+    VkMemoryRequirements memReqs;
+    void *data;
+    vkGetImageSubresourceLayout(img->pDev->dev, img->image, &subRes, &subResLayout);
+    vkGetImageMemoryRequirements(img->pDev->dev, img->image, &memReqs);
+    VK_CHECK_RESULT(vkMapMemory(img->pDev->dev, img->memory, 0, memReqs.size, 0, &data));
+    return data;
+}
+void vkh_image_unmap (VkhImage img) {
+    vkUnmapMemory (img->pDev->dev, img->memory);
+}