Move back to C

I'm insane and as such I have moved to C AGAIN! Without any reason.
This commit is contained in:
Piotr Krygier committed 2023-08-14 13:48:29 +02:00
1 parent bf31b96a2e
commit 3d538eaa2c
43 files changed
+2645 -2649

No files matched your search

+86
View File
@@ -0,0 +1,86 @@
#include "rse_graphics.h"
#include "window.h"
#include "vulkan_base.h"
#include "mesh_controller.h"
#include "vulkan_commons.h"
#include "rse_math.h"
extern struct rse_vulkan_state_t g_vulkan_state;
void rse_graphics_init(void)
{
// g_vulkan_state = malloc(sizeof(struct rse_vulkan_state_t));
g_vulkan_state.graphics_queue = VK_NULL_HANDLE;
g_vulkan_state.physical_device = VK_NULL_HANDLE;
g_vulkan_state.current_frame = 0U;
// vulkan_state->queueFamilyIndices = {0U}; /* TODO: Change when more families are needed */
// g_vulkan_state->uniformBuffers = {};
// g_vulkan_state->pCommandBuffers = {};
// g_vulkan_state->descriptorSets = {};
// g_vulkan_state->swapChainImageViews = {}; TODO: Allocate later
// g_vulkan_state->swapchainExtent = {}; TODO: Allocate later
g_vulkan_state.render_pass = VK_NULL_HANDLE;
g_vulkan_state.descriptor_set_layout = VK_NULL_HANDLE;
// g_vulkan_state->swapchainFramebuffers = {}; TODO: Allocate later
g_vulkan_state.graphics_pipeline = VK_NULL_HANDLE;
g_vulkan_state.pipeline_layout = VK_NULL_HANDLE;
g_vulkan_state.swapchain = VK_NULL_HANDLE;
}
void rse_graphics_deinit()
{
// free(g_vulkan_state);
}
uint8_t rse_graphics_run(void)
{
window_init();
if (0 != init_vulkan())
return -1;
// FIXME: Temporary array of vertices, for testing purposes
struct rse_vertex_t vertices[] = {{{-0.5f, -0.5f, 0.0f}, {1.0f, 0.0f, 1.0f}},
{{0.5f, -0.5f, 0.0f}, {0.0f, 1.0f, 1.0f}},
{{0.5f, 0.5f, 0.0f}, {0.0f, 0.0f, 1.0f}},
{{-0.5f, 0.5f, 0.0f}, {1.0f, 0.0f, 1.0f}}};
struct rse_vertex_t vertices2[] = {{{-0.5f, -0.5f, 0.0f}, {1.0f, 0.0f, 1.0f}},
{{0.5f, -0.5f, 0.0f}, {0.0f, 1.0f, 0.0f}},
{{0.5f, 0.5f, 0.0f}, {0.0f, 1.0f, 0.0f}},
{{-0.5f, 0.5f, 0.0f}, {1.0f, 1.0f, 0.0f}}};
// FIXME: Temporary array of vertices, for testing purposes
uint16_t indices[] = {0, 1, 2, 2, 3, 0};
uint16_t mesh_id = create_mesh(vertices, indices, 24, 6);
create_mesh_instance(mesh_id, (struct rse_instance_data_t){
{0.0f, 0.0f, 0.0f},
{0.0f, 0.0f, rse_math_deg_to_radians(45.0f)},
1.0f
});
create_mesh_instance(mesh_id, (struct rse_instance_data_t){
{-1.0f, 0.0f, 0.0f},
{0.0f, 0.0f, 0.0f},
1.0f
});
mesh_id = create_mesh(vertices, indices, 24, 6);
create_mesh_instance(mesh_id, (struct rse_instance_data_t){
{0.0f, 1.0f, 0.0f},
{0.0f, 0.0f, rse_math_deg_to_radians(0.0f)},
1.0f
});
window_loop();
deinit_vulkan();
window_terminate();
return 0;
}