]> O.S.I.I.S - jp/vkhelpers.git/commitdiff
add get functions on opaque pointers
authorJean-Philippe Bruyère <jp_bruyere@hotmail.com>
Mon, 2 Apr 2018 20:17:47 +0000 (22:17 +0200)
committerJean-Philippe Bruyère <jp_bruyere@hotmail.com>
Mon, 2 Apr 2018 20:17:47 +0000 (22:17 +0200)
include/vkh.h
src/vkh_buffer.c
src/vkh_image.c

index 90a98e916c029c8df900f72afedfc96786b5cd24..28fe3412c7a37c593c9f66954967d9b22c4c12e6 100644 (file)
 
 #define VK_CHECK_RESULT(f)                                                                                                                                                             \
 {                                                                                                                                                                                                              \
-       VkResult res = (f);                                                                                                                                                                     \
-       if (res != VK_SUCCESS)                                                                                                                                                          \
-       {                                                                                                                                                                                                       \
-               printf("Fatal : VkResult is %d in %s at line %d\n", res,  __FILE__, __LINE__); \
-               assert(res == VK_SUCCESS);                                                                                                                                              \
-       }                                                                                                                                                                                                       \
+    VkResult res = (f);                                                                                                                                                                        \
+    if (res != VK_SUCCESS)                                                                                                                                                             \
+    {                                                                                                                                                                                                  \
+        printf("Fatal : VkResult is %d in %s at line %d\n", res,  __FILE__, __LINE__); \
+        assert(res == VK_SUCCESS);                                                                                                                                             \
+    }                                                                                                                                                                                                  \
 }
 
 typedef struct _vkh_app_t*             VkhApp;
@@ -30,29 +30,36 @@ typedef struct _vkh_presenter_t*    VkhPresenter;
 
 ///////////////////////////////
 VkhImage vkh_image_create       (VkhDevice pDev, VkFormat format, uint32_t width, uint32_t height, VkImageTiling tiling,
-                                                                       VkMemoryPropertyFlags memprops, VkImageUsageFlags usage);
+                                    VkMemoryPropertyFlags memprops,    VkImageUsageFlags usage);
 VkhImage vkh_image_ms_create    (VkhDevice pDev, VkFormat format, VkSampleCountFlagBits num_samples, uint32_t width, uint32_t height,
-                                                                       VkMemoryPropertyFlags memprops, VkImageUsageFlags usage);
+                                    VkMemoryPropertyFlags memprops,    VkImageUsageFlags usage);
 VkhImage vkh_tex2d_array_create (VkhDevice pDev, VkFormat format, uint32_t width, uint32_t height, uint32_t layers,
-                                                                       VkMemoryPropertyFlags memprops, VkImageUsageFlags usage);
+                                    VkMemoryPropertyFlags memprops, VkImageUsageFlags usage);
 void vkh_image_create_descriptor(VkhImage img, VkImageViewType viewType, VkImageAspectFlags aspectFlags, VkFilter magFilter, VkFilter minFilter,
-                                                                       VkSamplerMipmapMode mipmapMode, VkSamplerAddressMode addressMode);
+                                    VkSamplerMipmapMode mipmapMode, VkSamplerAddressMode addressMode);
 void vkh_image_create_view      (VkhImage img, VkImageViewType viewType, VkImageAspectFlags aspectFlags);
 void vkh_image_create_sampler   (VkhImage img, VkFilter magFilter, VkFilter minFilter,
-                                                                       VkSamplerMipmapMode mipmapMode, VkSamplerAddressMode addressMode);
+                                    VkSamplerMipmapMode mipmapMode, VkSamplerAddressMode addressMode);
 void vkh_image_set_layout       (VkCommandBuffer cmdBuff, VkhImage image, VkImageAspectFlags aspectMask,
-                                                                       VkImageLayout new_image_layout, VkPipelineStageFlags src_stages, VkPipelineStageFlags dest_stages);
+                                    VkImageLayout new_image_layout, VkPipelineStageFlags src_stages, VkPipelineStageFlags dest_stages);
 void vkh_image_set_layout_subres(VkCommandBuffer cmdBuff, VkhImage image, VkImageSubresourceRange subresourceRange,
-                                                                       VkImageLayout new_image_layout, VkPipelineStageFlags src_stages, VkPipelineStageFlags dest_stages);
+                                    VkImageLayout new_image_layout, VkPipelineStageFlags src_stages, VkPipelineStageFlags dest_stages);
 void vkh_image_destroy          (VkhImage img);
 
+VkImage                 vkh_image_get_vkimage   (VkhImage img);
+VkImageView             vkh_image_get_view      (VkhImage img);
+VkImageLayout           vkh_image_get_layout    (VkhImage img);
+VkDescriptorImageInfo   vkh_image_get_descriptor(VkhImage img, VkImageLayout imageLayout);
 ////////////////////////////////
 VkhBuffer   vkh_buffer_create   (VkhDevice pDev, VkBufferUsageFlags usage,
-                                                                       VkMemoryPropertyFlags memoryPropertyFlags, VkDeviceSize size);
+                                    VkMemoryPropertyFlags memoryPropertyFlags, VkDeviceSize size);
 void        vkh_buffer_destroy  (VkhBuffer buff);
 VkResult    vkh_buffer_map      (VkhBuffer buff);
 void        vkh_buffer_unmap    (VkhBuffer buff);
 VkResult    vkh_buffer_bind     (VkhBuffer buff);
+
+VkBuffer    vkh_buffer_get_vkbuffer         (VkhBuffer buff);
+void*       vkh_buffer_get_mapped_pointer   (VkhBuffer buff);
 ///////////////////////////////
 
 VkFence         vkh_fence_create                       (VkDevice dev);
@@ -65,21 +72,21 @@ void vkh_cmd_begin  (VkCommandBuffer cmdBuff, VkCommandBufferUsageFlags flags);
 void vkh_cmd_end    (VkCommandBuffer cmdBuff);
 void vkh_cmd_submit (VkQueue queue, VkCommandBuffer *pCmdBuff, VkFence fence);
 void vkh_cmd_submit_with_semaphores(VkQueue queue, VkCommandBuffer *pCmdBuff, VkSemaphore waitSemaphore,
-                                                                       VkSemaphore signalSemaphore, VkFence fence);
+                                    VkSemaphore signalSemaphore, VkFence fence);
 
 VkPhysicalDevice vkh_find_phy (VkInstance inst, VkPhysicalDeviceType phyType);
 
 VkShaderModule vkh_load_module(VkDevice dev, const char* path);
 
 bool        memory_type_from_properties(VkPhysicalDeviceMemoryProperties* memory_properties, uint32_t typeBits,
-                                                                               VkFlags requirements_mask, uint32_t *typeIndex);
+                                        VkFlags requirements_mask, uint32_t *typeIndex);
 char *      read_spv(const char *filename, size_t *psize);
 uint32_t*   readFile(uint32_t* length, const char* filename);
 
 void dumpLayerExts ();
 
 void        set_image_layout(VkCommandBuffer cmdBuff, VkImage image, VkImageAspectFlags aspectMask, VkImageLayout old_image_layout,
-                                         VkImageLayout new_image_layout, VkPipelineStageFlags src_stages, VkPipelineStageFlags dest_stages);
+                      VkImageLayout new_image_layout, VkPipelineStageFlags src_stages, VkPipelineStageFlags dest_stages);
 void        set_image_layout_subres(VkCommandBuffer cmdBuff, VkImage image, VkImageSubresourceRange subresourceRange, VkImageLayout old_image_layout,
-                                         VkImageLayout new_image_layout, VkPipelineStageFlags src_stages, VkPipelineStageFlags dest_stages);
+                      VkImageLayout new_image_layout, VkPipelineStageFlags src_stages, VkPipelineStageFlags dest_stages);
 #endif
index 9e4f48eff4366eaf5a052e8809f34653dd9864dd..18ae096c3298c4d503df54acfd98cebd2320799e 100644 (file)
@@ -49,3 +49,10 @@ VkResult vkh_buffer_bind(VkhBuffer buff)
 {
     return vkBindBufferMemory(buff->pDev->vkDev, buff->buffer, buff->memory, 0);
 }
+
+VkBuffer vkh_buffer_get_vkbuffer (VkhBuffer buff){
+    return buff->buffer;
+}
+void* vkh_buffer_get_mapped_pointer (VkhBuffer buff){
+    return buff->mapped;
+}
index c03a6d84b94d6c5530757e12403ef0d9faccb01f..08f79c956844d660391562282f5c2f292d29025c 100644 (file)
@@ -93,6 +93,21 @@ void vkh_image_create_descriptor(VkhImage img, VkImageViewType viewType, VkImage
     vkh_image_create_view       (img, viewType, aspectFlags);
     vkh_image_create_sampler    (img, magFilter, minFilter, mipmapMode, addressMode);
 }
+VkImage vkh_image_get_vkimage (VkhImage img){
+    return img->image;
+}
+VkImageView vkh_image_get_view (VkhImage img){
+    return img->view;
+}
+VkImageLayout vkh_image_get_layout (VkhImage img){
+    return img->layout;
+}
+VkDescriptorImageInfo vkh_image_get_descriptor (VkhImage img, VkImageLayout imageLayout){
+    VkDescriptorImageInfo desc = { .imageView = img->view,
+                                   .imageLayout = imageLayout,
+                                   .sampler = img->sampler };
+    return desc;
+}
 
 void vkh_image_set_layout(VkCommandBuffer cmdBuff, VkhImage image, VkImageAspectFlags aspectMask, VkImageLayout new_image_layout,
                       VkPipelineStageFlags src_stages, VkPipelineStageFlags dest_stages) {