summaryrefslogtreecommitdiff
path: root/gsk/gskvulkanimageprivate.h
blob: 7c089c2b7b2290fe85fcdf0ffeca303cefc35dd6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#ifndef __GSK_VULKAN_IMAGE_PRIVATE_H__
#define __GSK_VULKAN_IMAGE_PRIVATE_H__

#include <gdk/gdk.h>

G_BEGIN_DECLS

/* Modify here for benchmarking */
#define GSK_VULKAN_UPLOAD_IMAGE_DEFAULT GSK_VULKAN_UPLOAD_DIRECTLY

typedef enum {
  GSK_VULKAN_UPLOAD_DIRECTLY,
  GSK_VULKAN_UPLOAD_VIA_STAGING_IMAGE
} GstkVulkanImageUpload;

typedef struct _GskVulkanImage GskVulkanImage;

GskVulkanImage *        gsk_vulkan_image_new_from_data                  (GdkVulkanContext       *context,
                                                                         VkCommandBuffer         command_buffer,
                                                                         guchar                 *data,
                                                                         gsize                   width,
                                                                         gsize                   height,
                                                                         gsize                   stride);
void                    gsk_vulkan_image_free                           (GskVulkanImage         *image);

VkImage                 gsk_vulkan_image_get_image                      (GskVulkanImage         *self);
VkImageView             gsk_vulkan_image_get_image_view                 (GskVulkanImage         *self);

G_END_DECLS

#endif /* __GSK_VULKAN_IMAGE_PRIVATE_H__ */