X-Git-Url: https://eleni.mutantstargoat.com/git/?p=vkrt;a=blobdiff_plain;f=src%2Fvk.h;h=772f2e3691d2e97d46244320b13768ab24aff214;hp=58a88efa5df2f847eaf3a75f87983eb973e4c607;hb=d1dbc679d802194c2973d0acc82dae17c6e1f569;hpb=739a8266145a78fdc015ac74c890474f023b1fd1 diff --git a/src/vk.h b/src/vk.h index 58a88ef..772f2e3 100644 --- a/src/vk.h +++ b/src/vk.h @@ -6,6 +6,21 @@ #define ARRAY_SIZE(x) (sizeof(x) / sizeof(x[0])) +enum GEOM_BIND { + VERTEX_BIND, + NORMAL_BIND, + TEXCOORD_BIND, + TANGENT_BIND, + IDX_BIND +}; + +enum GEOM_LOC { + VERTEX_LOC, + NORMAL_LOC, + TANGENT_LOC, + IDX_LOC +}; + struct vk_ctx { VkInstance inst; @@ -82,18 +97,27 @@ struct vk_attachment { struct vk_att_props props; }; -struct vk_vertex_info +struct vk_buf { - int num_verts; - int num_components; + VkBuffer buf; + struct vk_mem_obj mobj; +}; + +struct vk_vbo { + int num_vertices; + struct vk_buf vbo; - VkPrimitiveTopology topology; + /* int num_components; */ }; -struct vk_buf +struct vk_geometry { - VkBuffer buf; - struct vk_mem_obj mobj; + struct vk_vbo vertices; + struct vk_vbo normals; + struct vk_vbo tangents; + struct vk_vbo indices; + + VkPrimitiveTopology topo; }; struct vk_renderer @@ -104,7 +128,7 @@ struct vk_renderer VkShaderModule vs; VkShaderModule fs; - struct vk_vertex_info vertex_info; + struct vk_geometry *geometry; }; struct vk_dims @@ -251,7 +275,7 @@ vk_create_renderer(struct vk_ctx *ctx, int num_color_att, struct vk_att_props *color_props, struct vk_att_props *depth_props, - struct vk_vertex_info *vert_info, + struct vk_geometry *geometry, struct vk_renderer *renderer); void @@ -270,7 +294,6 @@ bool vk_record_cmd_buffer(struct vk_ctx *ctx, VkCommandBuffer cmd_buf, struct vk_renderer *renderer, - struct vk_buf *vbo, uint32_t vk_fb_color_count, float *vk_fb_color, VkFramebuffer fb,