diff options
Diffstat (limited to 'gsk/gskvulkanpushconstantsprivate.h')
-rw-r--r-- | gsk/gskvulkanpushconstantsprivate.h | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/gsk/gskvulkanpushconstantsprivate.h b/gsk/gskvulkanpushconstantsprivate.h new file mode 100644 index 0000000000..37ac01f6ae --- /dev/null +++ b/gsk/gskvulkanpushconstantsprivate.h @@ -0,0 +1,46 @@ +#ifndef __GSK_VULKAN_PUSH_CONSTANTS_PRIVATE_H__ +#define __GSK_VULKAN_PUSH_CONSTANTS_PRIVATE_H__ + +#include <gdk/gdk.h> +#include <graphene.h> + +G_BEGIN_DECLS + +typedef struct _GskVulkanPushConstants GskVulkanPushConstants; + +struct _GskVulkanPushConstants +{ + struct { + float mvp[16]; + } vertex; + struct { + float color[4]; + } fragment; +}; + +const VkPushConstantRange * + gst_vulkan_push_constants_get_ranges (void) G_GNUC_PURE; +uint32_t gst_vulkan_push_constants_get_range_count (void) G_GNUC_PURE; + +void gsk_vulkan_push_constants_init (GskVulkanPushConstants *constants, + const graphene_matrix_t *mvp); +void gsk_vulkan_push_constants_init_copy (GskVulkanPushConstants *self, + const GskVulkanPushConstants *src); + +void gsk_vulkan_push_constants_set_mvp (GskVulkanPushConstants *self, + const graphene_matrix_t *mvp); +void gsk_vulkan_push_constants_multiply_mvp (GskVulkanPushConstants *self, + const graphene_matrix_t *transform); +void gsk_vulkan_push_constants_set_color (GskVulkanPushConstants *self, + const GdkRGBA *color); + +void gsk_vulkan_push_constants_push_vertex (GskVulkanPushConstants *self, + VkCommandBuffer command_buffer, + VkPipelineLayout pipeline_layout); +void gsk_vulkan_push_constants_push_fragment (GskVulkanPushConstants *self, + VkCommandBuffer command_buffer, + VkPipelineLayout pipeline_layout); + +G_END_DECLS + +#endif /* __GSK_VULKAN_PUSH_CONSTANTS_PRIVATE_H__ */ |