## GulkanVertexBuffer

GulkanVertexBuffer

## Functions

GulkanVertexBuffer * | gulkan_vertex_buffer_new ()
#define | GULKAN_VERTEX_BUFFER_NEW_FROM_ATTRIBS()
GulkanVertexBuffer * | gulkan_vertex_buffer_new_from_attribs ()
void | gulkan_vertex_buffer_draw ()
void | gulkan_vertex_buffer_draw_indexed ()
void | gulkan_vertex_buffer_reset ()
gboolean | gulkan_vertex_buffer_map_array ()
gboolean | gulkan_vertex_buffer_alloc_empty ()
gboolean | gulkan_vertex_buffer_alloc_array ()
gboolean | gulkan_vertex_buffer_alloc_data ()
gboolean | gulkan_vertex_buffer_alloc_index_data ()
void | gulkan_vertex_buffer_append_position_uv ()
void | gulkan_vertex_buffer_append_with_color ()
gboolean | gulkan_vertex_buffer_is_initialized ()
void | gulkan_vertex_buffer_bind_with_offsets ()

## Types and Values

#define | GULKAN_TYPE_VERTEX_BUFFER
| GulkanVertexBuffer

## Object Hierarchy

        GObject
        ╰── GulkanVertexBuffer

## Includes

    #include <gulkan.h>

## Description

## Functions

### gulkan_vertex_buffer_new ()

    GulkanVertexBuffer *
    gulkan_vertex_buffer_new (void);

### GULKAN_VERTEX_BUFFER_NEW_FROM_ATTRIBS()

    #define             GULKAN_VERTEX_BUFFER_NEW_FROM_ATTRIBS(a, b, c, d)

### gulkan_vertex_buffer_new_from_attribs ()

    GulkanVertexBuffer *
    gulkan_vertex_buffer_new_from_attribs (GulkanDevice *device,
                                           const float *positions,
                                           size_t positions_size,
                                           const float *colors,
                                           size_t colors_size,
                                           const float *normals,
                                           size_t normals_size);

### gulkan_vertex_buffer_draw ()

    void
    gulkan_vertex_buffer_draw (GulkanVertexBuffer *self,
                               VkCommandBuffer cmd_buffer);

### gulkan_vertex_buffer_draw_indexed ()

    void
    gulkan_vertex_buffer_draw_indexed (GulkanVertexBuffer *self,
                                       VkCommandBuffer cmd_buffer);

### gulkan_vertex_buffer_reset ()

    void
    gulkan_vertex_buffer_reset (GulkanVertexBuffer *self);

### gulkan_vertex_buffer_map_array ()

    gboolean
    gulkan_vertex_buffer_map_array (GulkanVertexBuffer *self);

### gulkan_vertex_buffer_alloc_empty ()

    gboolean
    gulkan_vertex_buffer_alloc_empty (GulkanVertexBuffer *self,
                                      GulkanDevice *device,
                                      uint32_t multiplier);

### gulkan_vertex_buffer_alloc_array ()

    gboolean
    gulkan_vertex_buffer_alloc_array (GulkanVertexBuffer *self,
                                      GulkanDevice *device);

### gulkan_vertex_buffer_alloc_data ()

    gboolean
    gulkan_vertex_buffer_alloc_data (GulkanVertexBuffer *self,
                                     GulkanDevice *device,
                                     const void *data,
                                     VkDeviceSize size);

### gulkan_vertex_buffer_alloc_index_data ()

    gboolean
    gulkan_vertex_buffer_alloc_index_data (GulkanVertexBuffer *self,
                                           GulkanDevice *device,
                                           const void *data,
                                           VkDeviceSize element_size,
                                           guint element_count);

### gulkan_vertex_buffer_append_position_uv ()

    void
    gulkan_vertex_buffer_append_position_uv
                                   (GulkanVertexBuffer *self,
                                    graphene_vec4_t *vec,
                                    float u,
                                    float v);

### gulkan_vertex_buffer_append_with_color ()

    void
    gulkan_vertex_buffer_append_with_color
                                   (GulkanVertexBuffer *self,
                                    graphene_vec4_t *vec,
                                    graphene_vec3_t *color);

### gulkan_vertex_buffer_is_initialized ()

    gboolean
    gulkan_vertex_buffer_is_initialized (GulkanVertexBuffer *self);

### gulkan_vertex_buffer_bind_with_offsets ()

    void
    gulkan_vertex_buffer_bind_with_offsets
                                   (GulkanVertexBuffer *self,
                                    VkCommandBuffer cmd_buffer);

## Types and Values

### GULKAN_TYPE_VERTEX_BUFFER

    #define GULKAN_TYPE_VERTEX_BUFFER gulkan_vertex_buffer_get_type()

### GulkanVertexBuffer

    typedef struct _GulkanVertexBuffer GulkanVertexBuffer;