This is a bit involved, since we have to deal with subclassing here, but in the end it works out ok. And it make g_object_ref and g_object_unref disappear from the profiles.
44 lines
2.0 KiB
C
44 lines
2.0 KiB
C
#pragma once
|
|
|
|
#include "gskgpudescriptorsprivate.h"
|
|
|
|
#include "gskvulkandeviceprivate.h"
|
|
|
|
G_BEGIN_DECLS
|
|
|
|
typedef struct _GskVulkanDescriptors GskVulkanDescriptors;
|
|
typedef struct _GskVulkanDescriptorsClass GskVulkanDescriptorsClass;
|
|
|
|
#define GSK_VULKAN_DESCRIPTORS(d) ((GskVulkanDescriptors *) (d))
|
|
#define GSK_VULKAN_DESCRIPTORS_CLASS(d) ((GskVulkanDescriptorsClass *) (d))
|
|
|
|
struct _GskVulkanDescriptors
|
|
{
|
|
GskGpuDescriptors parent_instance;
|
|
};
|
|
|
|
struct _GskVulkanDescriptorsClass
|
|
{
|
|
GskGpuDescriptorsClass parent_class;
|
|
|
|
GskVulkanPipelineLayout * (* get_pipeline_layout) (GskVulkanDescriptors *self);
|
|
void (* bind) (GskVulkanDescriptors *self,
|
|
GskVulkanDescriptors *previous,
|
|
VkCommandBuffer vk_command_buffer);
|
|
};
|
|
|
|
GskVulkanPipelineLayout * gsk_vulkan_descriptors_get_pipeline_layout (GskVulkanDescriptors *self);
|
|
|
|
void gsk_vulkan_descriptors_transition (GskVulkanDescriptors *self,
|
|
GskVulkanSemaphores *semaphores,
|
|
VkCommandBuffer vk_command_buffer);
|
|
void gsk_vulkan_descriptors_bind (GskVulkanDescriptors *self,
|
|
GskVulkanDescriptors *previous,
|
|
VkCommandBuffer vk_command_buffer);
|
|
|
|
void gsk_vulkan_descriptors_init (GskVulkanDescriptors *self);
|
|
void gsk_vulkan_descriptors_finalize (GskVulkanDescriptors *self);
|
|
|
|
G_END_DECLS
|
|
|