Files
gtk/gsk/gpu/gskvulkandescriptorsprivate.h
Matthias Clasen 40e5a37795 gpu: Make GskGpuDescriptors non-objects
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.
2024-01-21 10:13:44 -05:00

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