GulkanTexture * gulkan_texture_new (GulkanClient *client,VkExtent2D extent,VkFormat format);
GulkanTexture * gulkan_texture_new_from_pixbuf (GulkanClient *client,GdkPixbuf *pixbuf,VkFormat format,VkImageLayout layout,gboolean create_mipmaps);
GulkanTexture * gulkan_texture_new_from_cairo_surface (GulkanClient *client,cairo_surface_t *surface,VkFormat format,VkImageLayout layout);
GulkanTexture * gulkan_texture_new_from_dmabuf (GulkanClient *client,int fd,VkExtent2D extent,VkFormat format);
GulkanTexture * gulkan_texture_new_mip_levels (GulkanClient *client,VkExtent2D extent,guint mip_levels,VkFormat format);
GulkanTexture * gulkan_texture_new_export_fd (GulkanClient *client,VkExtent2D extent,VkFormat format,VkImageLayout layout,gsize *size,int *fd);
Allocates a GulkanTexture and exports it via external memory to an fd and provides the size of the external memory.
based on code from https://github.com/lostgoat/ogl-samples/blob/master/tests/gl-450-culling.cpp https://gitlab.com/beVR_nz/VulkanIPC_Demo/
void gulkan_texture_record_transfer (GulkanTexture *self,VkCommandBuffer cmd_buffer,VkImageLayout src_layout,VkImageLayout dst_layout);
void gulkan_texture_record_transfer_full (GulkanTexture *self,VkCommandBuffer cmd_buffer,VkAccessFlags src_access_mask,VkAccessFlags dst_access_mask,VkImageLayout src_layout,VkImageLayout dst_layout,VkPipelineStageFlags src_stage_mask,VkPipelineStageFlags dst_stage_mask);
gboolean gulkan_texture_transfer_layout (GulkanTexture *self,VkImageLayout src_layout,VkImageLayout dst_layout);
gboolean gulkan_texture_transfer_layout_full (GulkanTexture *self,VkAccessFlags src_access_mask,VkAccessFlags dst_access_mask,VkImageLayout src_layout,VkImageLayout dst_layout,VkPipelineStageFlags src_stage_mask,VkPipelineStageFlags dst_stage_mask);
gboolean gulkan_texture_upload_pixels (GulkanTexture *self,guchar *pixels,gsize size,VkImageLayout layout);
gboolean gulkan_texture_upload_cairo_surface (GulkanTexture *self,cairo_surface_t *surface,VkImageLayout layout);
gboolean gulkan_texture_upload_pixbuf (GulkanTexture *self,GdkPixbuf *pixbuf,VkImageLayout layout);