Learning_GTK4_tree/gsk/vulkan/gskvulkanshaderopprivate.h

50 lines
2.2 KiB
C
Raw Permalink Normal View History

2023-12-12 11:36:42 +01:00
#pragma once
#include "gskvulkanopprivate.h"
#include "gskvulkanclipprivate.h"
G_BEGIN_DECLS
typedef struct _GskVulkanShaderOp GskVulkanShaderOp;
typedef struct _GskVulkanShaderOpClass GskVulkanShaderOpClass;
struct _GskVulkanShaderOp
{
GskVulkanOp parent_op;
GskVulkanShaderClip clip;
gsize vertex_offset;
GskVulkanImage *images[2];
};
struct _GskVulkanShaderOpClass
{
GskVulkanOpClass parent_class;
const char * shader_name;
gsize n_images;
const VkPipelineVertexInputStateCreateInfo *vertex_input_state;
};
GskVulkanShaderOp * gsk_vulkan_shader_op_alloc (GskVulkanRender *render,
const GskVulkanShaderOpClass *op_class,
GskVulkanShaderClip clip,
GskVulkanImage **images);
void gsk_vulkan_shader_op_finish (GskVulkanOp *op);
gsize gsk_vulkan_shader_op_count_vertex_data (GskVulkanOp *op,
gsize n_bytes);
GskVulkanOp * gsk_vulkan_shader_op_command_n (GskVulkanOp *op,
GskVulkanRender *render,
VkRenderPass render_pass,
VkCommandBuffer command_buffer,
gsize instance_scale);
GskVulkanOp * gsk_vulkan_shader_op_command (GskVulkanOp *op,
GskVulkanRender *render,
VkRenderPass render_pass,
VkCommandBuffer command_buffer);
G_END_DECLS