Skip to content

Commit

Permalink
Merge remote-tracking branch 'upstream/main'
Browse files Browse the repository at this point in the history
  • Loading branch information
ravi688 committed May 4, 2024
2 parents a83b1cd + 157667d commit 4d39a2a
Show file tree
Hide file tree
Showing 34 changed files with 148 additions and 38 deletions.
6 changes: 6 additions & 0 deletions include/renderer/internal/vulkan/vulkan_descriptor_set.h
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@

#include <vulkan/vulkan.h>
#include <renderer/defines.h>
#include <renderer/internal/vulkan/vulkan_object.h>

// NOTE: This must be in sync with v3d.h
enum
Expand Down Expand Up @@ -91,11 +92,15 @@ typedef struct vulkan_descriptor_set_create_info_t

typedef struct vulkan_descriptor_set_t
{
__VULKAN_OBJECT__;
vulkan_renderer_t* renderer;
VkDescriptorSet vo_handle;
VkDescriptorPool vo_pool; //the pool from it has been allocated
} vulkan_descriptor_set_t;

#define VULKAN_DESCRIPTOR_SET(ptr) VULKAN_OBJECT_UP_CAST(vulkan_descriptor_set_t*, VULKAN_OBJECT_TYPE_DESCRIPTOR_SET, ptr)
#define VULKAN_DESCRIPTOR_SET_CONST(ptr) VULKAN_OBJECT_UP_CAST_CONST(const vulkan_descriptor_set_t*, VULKAN_OBJECT_TYPE_DESCRIPTOR_SET, ptr)

BEGIN_CPP_COMPATIBLE

/*
Expand Down Expand Up @@ -133,6 +138,7 @@ RENDERER_API vulkan_descriptor_set_t* vulkan_descriptor_set_create(vulkan_render
nothing
*/
RENDERER_API void vulkan_descriptor_set_create_no_alloc(vulkan_renderer_t* renderer, vulkan_descriptor_set_create_info_t* create_info, vulkan_descriptor_set_t* set);
RENDERER_API void vulkan_descriptor_set_create_no_alloc_ext(vulkan_renderer_t* renderer, vulkan_descriptor_set_create_info_t* create_info, vulkan_descriptor_set_t* set);

/*
description:
Expand Down
1 change: 1 addition & 0 deletions include/renderer/internal/vulkan/vulkan_framebuffer.h
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,7 @@ typedef struct vulkan_framebuffer_create_info_t

typedef struct vulkan_framebuffer_t
{
__VULKAN_OBJECT__;
vulkan_renderer_t* renderer;
VkFramebuffer vo_handle;

Expand Down
5 changes: 5 additions & 0 deletions include/renderer/internal/vulkan/vulkan_glyph_mesh_pool.h
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@

#include <renderer/defines.h>
#include <renderer/dictionary.h> // dictionary_t
#include <renderer/internal/vulkan/vulkan_object.h>

typedef struct mesh3d_t mesh3d_t;
typedef struct font_t font_t;
Expand All @@ -40,11 +41,15 @@ typedef struct vulkan_glyph_mesh_t

typedef struct vulkan_glyph_mesh_pool_t
{
__VULKAN_OBJECT__;
vulkan_renderer_t* renderer;
font_t* font;
dictionary_t /*(u16, vulkan_glyph_mesh_t*)*/ glyph_meshes;
} vulkan_glyph_mesh_pool_t;

#define VULKAN_GLYPH_MESH_POOL(ptr) VULKAN_OBJECT_UP_CAST(vulkan_glyph_mesh_pool_t*, VULKAN_OBJECT_TYPE_GLYPH_MESH_POOL, ptr)
#define VULKAN_GLYPH_MESH_POOL_CONST(ptr) VULKAN_OBJECT_UP_CAST_CONST(const vulkan_glyph_mesh_pool_t*, VULKAN_OBJECT_TYPE_GLYPH_MESH_POOL, ptr)


BEGIN_CPP_COMPATIBLE

Expand Down
5 changes: 5 additions & 0 deletions include/renderer/internal/vulkan/vulkan_graphics_pipeline.h
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@
#include <renderer/defines.h>
#include <renderer/internal/vulkan/vulkan_types.h>
#include <renderer/internal/vulkan/vulkan_vertex_buffer_layout_description.h>
#include <renderer/internal/vulkan/vulkan_object.h>

typedef struct vulkan_pipeline_layout_t vulkan_pipeline_layout_t;
typedef struct vulkan_shader_module_t vulkan_shader_module_t;
Expand Down Expand Up @@ -62,6 +63,7 @@ typedef struct vulkan_graphics_pipeline_create_info_t

typedef struct vulkan_graphics_pipeline_t
{
__VULKAN_OBJECT__;
vulkan_renderer_t* renderer;
VkPipeline vo_handle;

Expand Down Expand Up @@ -121,6 +123,9 @@ typedef struct vulkan_graphics_pipeline_t

} vulkan_graphics_pipeline_t;

#define VULKAN_GRAPHICS_PIPELINE(ptr) VULKAN_OBJECT_UP_CAST(vulkan_graphics_pipeline_t*, VULKAN_OBJECT_TYPE_GRAPHICS_PIPELINE, ptr)
#define VULKAN_GRAPHICS_PIPELINE_CONST(ptr) VULKAN_OBJECT_UP_CAST_CONST(const vulkan_graphics_pipeline_t*, VULKAN_OBJECT_TYPE_GRAPHICS_PIPELINE, ptr)

BEGIN_CPP_COMPATIBLE

/* constructors & destructors */
Expand Down
1 change: 1 addition & 0 deletions include/renderer/internal/vulkan/vulkan_image.h
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,7 @@ typedef struct vulkan_image_create_info_t

typedef struct vulkan_image_t
{
__VULKAN_OBJECT__;
vulkan_renderer_t* renderer;
VkImage vo_handle;
VkDeviceMemory vo_memory;
Expand Down
5 changes: 5 additions & 0 deletions include/renderer/internal/vulkan/vulkan_instance.h
Original file line number Diff line number Diff line change
Expand Up @@ -29,11 +29,13 @@
#include <renderer/defines.h>
#include <bufferlib/buffer.h>
#include <vulkan/vulkan.h>
#include <renderer/internal/vulkan/vulkan_object.h>

typedef struct vulkan_physical_device_t vulkan_physical_device_t;

typedef struct vulkan_instance_t
{
__VULKAN_OBJECT__;
vulkan_renderer_t* renderer;
VkInstance handle;

Expand All @@ -46,6 +48,9 @@ typedef struct vulkan_instance_t
u32 extension_count;
} vulkan_instance_t;

#define VULKAN_INSTANCE(ptr) VULKAN_OBJECT_UP_CAST(vulkan_instance_t*, VULKAN_OBJECT_TYPE_INSTANCE, ptr)
#define VULKAN_INSTANCE_CONST(ptr) VULKAN_OBJECT_UP_CAST_CONST(const vulkan_instance_t*, VULKAN_OBJECT_TYPE_INSTANCE, ptr)

BEGIN_CPP_COMPATIBLE

// constructors and destructors
Expand Down
5 changes: 5 additions & 0 deletions include/renderer/internal/vulkan/vulkan_logical_device.h
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@

#include <vulkan/vulkan.h>
#include <renderer/defines.h>
#include <renderer/internal/vulkan/vulkan_object.h>

typedef struct vulkan_physical_device_t vulkan_physical_device_t;

Expand All @@ -49,10 +50,14 @@ typedef struct vulkan_logical_device_create_info_t

typedef struct vulkan_logical_device_t
{
__VULKAN_OBJECT__;
vulkan_renderer_t* renderer;
VkDevice vo_handle;
} vulkan_logical_device_t;

#define VULKAN_LOGICAL_DEVICE(ptr) VULKAN_OBJECT_UP_CAST(vulkan_logical_device_t*, VULKAN_OBJECT_TYPE_LOGICAL_DEVICE, ptr)
#define VULKAN_LOGICAL_DEVICE_CONST(ptr) VULKAN_OBJECT_UP_CAST_CONST(const vulkan_logical_device_t*, VULKAN_OBJECT_TYPE_LOGICAL_DEVICE, ptr)

BEGIN_CPP_COMPATIBLE

// constructors and destructors
Expand Down
5 changes: 5 additions & 0 deletions include/renderer/internal/vulkan/vulkan_material.h
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@
#include <renderer/internal/vulkan/vulkan_descriptor_set.h>
#include <renderer/internal/vulkan/vulkan_buffer.h>
#include <renderer/internal/vulkan/vulkan_handles.h> // vulkan_material_handle_t
#include <renderer/internal/vulkan/vulkan_object.h>
#include <renderer/struct_descriptor.h>
#include <hpml/vec2.h>
#include <hpml/vec3.h>
Expand Down Expand Up @@ -60,6 +61,7 @@ typedef vulkan_uniform_resource_t* vulkan_uniform_resource_ptr_t;

typedef struct vulkan_material_t
{
__VULKAN_OBJECT__;
vulkan_renderer_t* renderer;

vulkan_material_handle_t handle;
Expand All @@ -76,6 +78,9 @@ typedef struct vulkan_material_t

} vulkan_material_t;

#define VULKAN_MATERIAL(ptr) VULKAN_OBJECT_UP_CAST(vulkan_material_t*, VULKAN_OBJECT_TYPE_MATERIAL, ptr)
#define VULKAN_MATERIAL_CONST(ptr) VULKAN_OBJECT_UP_CAST_CONST(const vulkan_material_t*, VULKAN_OBJECT_TYPE_MATERIAL, ptr)

BEGIN_CPP_COMPATIBLE

/* constructors & destructors */
Expand Down
1 change: 1 addition & 0 deletions include/renderer/internal/vulkan/vulkan_object.h
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,7 @@ typedef enum vulkan_object_type_t
VULKAN_OBJECT_TYPE_TEXTURE = OBJECT_TYPE_VK_TEXTURE,
VULKAN_OBJECT_TYPE_RENDER_TEXTURE = OBJECT_TYPE_VK_RENDER_TEXTURE,
VULKAN_OBJECT_TYPE_HOST_BUFFERED_TEXTURE = OBJECT_TYPE_VK_HOST_BUFFERED_TEXTURE,
VULKAN_OBJECT_TYPE_TEXT_MESH = OBJECT_TYPE_VK_TEXT_MESH,
VULKAN_OBJECT_TYPE_BITMAP_TEXT = OBJECT_TYPE_VK_BITMAP_TEXT,
VULKAN_OBJECT_TYPE_BITMAP_GLYPH_ATLAS_TEXTURE = OBJECT_TYPE_VK_BITMAP_GLYPH_ATLAS_TEXTURE,
VULKAN_OBJECT_TYPE_ATTACHMENT = OBJECT_TYPE_VK_ATTACHMENT,
Expand Down
5 changes: 5 additions & 0 deletions include/renderer/internal/vulkan/vulkan_physical_device.h
Original file line number Diff line number Diff line change
Expand Up @@ -31,9 +31,11 @@
#include <vulkan/vulkan.h>

#include <renderer/internal/vulkan/vulkan_logical_device.h>
#include <renderer/internal/vulkan/vulkan_object.h>

typedef struct vulkan_physical_device_t
{
__VULKAN_OBJECT__;
vulkan_renderer_t* renderer;
VkPhysicalDevice vo_handle;
VkPhysicalDeviceProperties vo_properties; // cached properties
Expand All @@ -45,6 +47,9 @@ typedef struct vulkan_physical_device_t
//BUFFER /* vulkan_logical_device_t* */ logical_devices; // all the logical devices created with this physical device
} vulkan_physical_device_t;

#define VULKAN_PHYSICAL_DEVICE(ptr) VULKAN_OBJECT_UP_CAST(vulkan_physical_device_t*, VUKLAN_OBJECT_TYPE_PHYSICAL_DEVICE, ptr)
#define VULKAN_PHYSICAL_DEVICE_CONST(ptr) VULKAN_OBJECT_UP_CAST_CONST(const vulkan_physical_device_t*, VUKLAN_OBJECT_TYPE_PHYSICAL_DEVICE, ptr)

BEGIN_CPP_COMPATIBLE

// constructors and destructors
Expand Down
5 changes: 5 additions & 0 deletions include/renderer/internal/vulkan/vulkan_pipeline_layout.h
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@

#include <vulkan/vulkan.h>
#include <renderer/defines.h>
#include <renderer/internal/vulkan/vulkan_object.h>

typedef struct vulkan_pipeline_layout_create_info_t
{
Expand All @@ -42,10 +43,14 @@ typedef struct vulkan_pipeline_layout_create_info_t

typedef struct vulkan_pipeline_layout_t
{
__VULKAN_OBJECT__;
vulkan_renderer_t* renderer;
VkPipelineLayout vo_handle;
} vulkan_pipeline_layout_t;

#define VULKAN_PIPELINE_LAYOUT(ptr) VULKAN_OBJECT_UP_CAST(vulkan_pipeline_layout_t*, VULKAN_OBJECT_TYPE_PIPELINE_LAYOUT, ptr)
#define VULKAN_PIPELINE_LAYOUT_CONST(ptr) VULKAN_OBJECT_UP_CAST(const vulkan_pipeline_layout_t*, VULKAN_OBJECT_TYPE_PIPELINE_LAYOUT, ptr)

BEGIN_CPP_COMPATIBLE

RENDERER_API vulkan_pipeline_layout_t* vulkan_pipeline_layout_new(memory_allocator_t* allocator);
Expand Down
5 changes: 5 additions & 0 deletions include/renderer/internal/vulkan/vulkan_render_object.h
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@
#include <renderer/internal/vulkan/vulkan_descriptor_set.h> // for vulkan_descriptor_set_t
#include <renderer/internal/vulkan/vulkan_buffer.h> // for vulkan_buffer_t
#include <renderer/internal/vulkan/vulkan_handles.h> // for vulkan_render_object_handle_t
#include <renderer/internal/vulkan/vulkan_object.h>
#include <renderer/struct_descriptor.h> // for struct_descriptor_t


Expand Down Expand Up @@ -67,6 +68,7 @@ typedef struct vulkan_render_queue_t vulkan_render_queue_t;

typedef struct vulkan_render_object_t
{
__VULKAN_OBJECT__;
vulkan_renderer_t* renderer;

vulkan_render_queue_t* queue; // ptr to the queue in which this object is
Expand All @@ -87,6 +89,9 @@ typedef struct vulkan_render_object_t
struct_field_handle_t normal_handle;
} vulkan_render_object_t;

#define VULKAN_RENDER_OBJECT(ptr) VULKAN_OBJECT_UP_CAST(vulkan_render_object_t*, VULKAN_OBJECT_TYPE_RENDER_OBJECT, ptr)
#define VULKAN_RENDER_OBJECT_CONST(ptr) VULKAN_OBJECT_UP_CAST_CONST(const vulkan_render_object_t*, VULKAN_OBJECT_TYPE_RENDER_OBJECT, ptr)

BEGIN_CPP_COMPATIBLE

/* constructors & destructurs */
Expand Down
4 changes: 4 additions & 0 deletions include/renderer/internal/vulkan/vulkan_render_pass_graph.h
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@
#include <renderer/defines.h>
#include <bufferlib/buffer.h>
#include <renderer/internal/vulkan/vulkan_handles.h>
#include <renderer/internal/vulkan/vulkan_object.h>

/* stores references to a node in the vulkan render pass graph */
typedef u32 vulkan_render_pass_graph_node_handle_t;
Expand Down Expand Up @@ -56,6 +57,7 @@ typedef struct vulkan_renderer_t vulkan_renderer_t;
/* stores graph data structure */
typedef struct vulkan_render_pass_graph_t
{
__VULKAN_OBJECT__;
vulkan_renderer_t* renderer;
/* list of nodes in this graph */
vulkan_render_pass_graph_node_list_t nodes;
Expand All @@ -77,6 +79,8 @@ typedef struct vulkan_render_pass_graph_t
bool is_outdated;
} vulkan_render_pass_graph_t;

#define VULKAN_RENDER_PASS_GRAPH(ptr) VULKAN_OBJECT_UP_CAST(vulkan_render_pass_graph_t*, VULKAN_OBJECT_TYPE_RENDER_PASS_GRAPH, ptr)
#define VULKAN_RENDER_PASS_GRAPH_CONST(ptr) VULKAN_OBJECT_UP_CAST_CONST(const vulkan_render_pass_graph_t*, VULKAN_OBJECT_TYPE_RENDER_PASS_GRAPH, ptr)

BEGIN_CPP_COMPATIBLE

Expand Down
5 changes: 5 additions & 0 deletions include/renderer/internal/vulkan/vulkan_shader.h
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@
#include <renderer/internal/vulkan/vulkan_descriptor_set_layout.h> // vulkan_descriptor_set_layout_t
#include <renderer/internal/vulkan/vulkan_attachment.h> // vulkan_attachment_type_t
#include <renderer/internal/vulkan/vulkan_handles.h> // vulkan_render_pass_handle_t, vulkan_shader_handle_t
#include <renderer/internal/vulkan/vulkan_object.h>
#include <renderer/event.h>
#include <glslcommon/glsl_types.h>
#define VERTEX_ATTRIB(value, index) ((value) << ((index) * 5))
Expand Down Expand Up @@ -165,6 +166,7 @@ typedef struct vulkan_push_constant_t

typedef struct vulkan_shader_t
{
__VULKAN_OBJECT__;
vulkan_renderer_t* renderer;

vulkan_shader_handle_t handle;
Expand Down Expand Up @@ -210,6 +212,9 @@ typedef struct vulkan_shader_t

} vulkan_shader_t;

#define VULKAN_SHADER(ptr) VULKAN_OBJECT_UP_CAST(vulkan_shader_t*, VULKAN_OBJECT_TYPE_SHADER, ptr)
#define VULKAN_SHADER_CONST(ptr) VULKAN_OBJECT_UP_CAST_CONST(const vulkan_shader_t*, VULKAN_OBJECT_TYPE_SHADER, ptr)

/*
u32 vertex_info_count;
vulkan_vertex_buffer_layout_description_t* vertex_infos;
Expand Down
5 changes: 5 additions & 0 deletions include/renderer/internal/vulkan/vulkan_text_mesh.h
Original file line number Diff line number Diff line change
Expand Up @@ -107,6 +107,7 @@
#include <renderer/dictionary.h>
#include <renderer/internal/vulkan/vulkan_host_buffered_buffer.h>
#include <renderer/internal/vulkan/vulkan_text_types.h>
#include <renderer/internal/vulkan/vulkan_object.h>
#include <glslcommon/glsl_types.h>

typedef struct vulkan_text_mesh_glsl_glyph_render_data_t
Expand Down Expand Up @@ -183,6 +184,7 @@ typedef struct font_t font_t;

typedef struct vulkan_text_mesh_t
{
__VULKAN_OBJECT__;
vulkan_renderer_t* renderer;
vulkan_material_t* material;
u32 point_size;
Expand Down Expand Up @@ -214,6 +216,9 @@ typedef struct vulkan_text_mesh_t
vulkan_text_mesh_string_transform_buffer_t text_string_transform_buffer;
} vulkan_text_mesh_t;

#define VULKAN_TEXT_MESH(ptr) VULKAN_OBJECT_UP_CAST(vulkan_text_mesh_t*, VULKAN_OBJECT_TYPE_TEXT_MESH, ptr)
#define VULKAN_TEXT_MESH_CONST(ptr) VULKAN_OBJECT_UP_CAST_CONST(const vulkan_text_mesh_t*, VULKAN_OBJECT_TYPE_TEXT_MESH, ptr)

BEGIN_CPP_COMPATIBLE

// constructors and destructors
Expand Down
2 changes: 2 additions & 0 deletions include/renderer/object.h
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,7 @@ typedef enum object_type_t
OBJECT_TYPE_VK_IMAGE_VIEW,
OBJECT_TYPE_VK_TEXTURE,
OBJECT_TYPE_VK_HOST_BUFFERED_TEXTURE,
OBJECT_TYPE_VK_TEXT_MESH,
OBJECT_TYPE_VK_BITMAP_TEXT,
OBJECT_TYPE_VK_BITMAP_GLYPH_ATLAS_TEXTURE,
OBJECT_TYPE_VK_ATTACHMENT,
Expand Down Expand Up @@ -104,6 +105,7 @@ static CAN_BE_UNUSED_FUNCTION const char* object_type_to_string(object_type_t ty
RETURN_STR_CASE(OBJECT_TYPE_VK_IMAGE_VIEW);
RETURN_STR_CASE(OBJECT_TYPE_VK_TEXTURE);
RETURN_STR_CASE(OBJECT_TYPE_VK_HOST_BUFFERED_TEXTURE);
RETURN_STR_CASE(OBJECT_TYPE_VK_TEXT_MESH);
RETURN_STR_CASE(OBJECT_TYPE_VK_BITMAP_TEXT);
RETURN_STR_CASE(OBJECT_TYPE_VK_BITMAP_GLYPH_ATLAS_TEXTURE);
RETURN_STR_CASE(OBJECT_TYPE_VK_ATTACHMENT);
Expand Down
Loading

0 comments on commit 4d39a2a

Please sign in to comment.