blob: cd5f44e836304a88378d046c1524cb67f2b12a57 (
plain) (
tree)
|
|
#include <SDL2/SDL.h>
#include "cq.h"
#include "../lib/cglm/include/cglm/cglm.h"
#pragma once
#define MAX_FRAMES_IN_FLIGHT 2
typedef struct {
mat4 model;
mat4 view;
mat4 proj;
} UniformBufferObject;
typedef struct {
} frame_data;
typedef struct state {
int window_w, window_h;
int cell_w, cell_h;
int grid_w, grid_h;
int char_w, char_h;
int char_x, char_y;
UniformBufferObject ubo;
float x;
int zoom;
SDL_Window* sdl_window;
VkInstance vk_instance;
VkDebugUtilsMessengerEXT vk_debug_messenger;
PFN_vkCreateDebugUtilsMessengerEXT pfnCreateDebugUtilsMessengerEXT;
PFN_vkDestroyDebugUtilsMessengerEXT pfnDestroyDebugUtilsMessengerEXT;
VkPhysicalDevice vk_physical_device;
VkDevice vk_device;
VkQueue vk_graphics_queue;
VkSurfaceKHR vk_surface;
VkQueue vk_present_queue;
VkSwapchainKHR vk_swap_chain;
uint32_t vk_swap_chain_image_count;
// LIST vk_swap_chain_images; // VkImage
VkImage vk_swap_chain_images[1024];
VkFormat vk_swap_chain_image_format;
VkExtent2D vk_swap_chain_extent;
//LIST vk_swap_chain_image_views; // VkImageView
VkImageView vk_swap_chain_image_views[1000];
VkRenderPass vk_render_pass;
VkDescriptorSetLayout vk_descriptor_set_layout;
VkPipelineLayout vk_pipeline_layout;
VkPipeline vk_graphics_pipeline;
VkFramebuffer vk_swap_chain_framebuffers[1000];
uint32_t vk_swap_chain_framebuffers_count;
VkCommandPool vk_command_pool;
VkCommandBuffer vk_command_buffers[MAX_FRAMES_IN_FLIGHT];
VkSemaphore imageAvailableSemaphores[MAX_FRAMES_IN_FLIGHT];
VkSemaphore renderFinishedSemaphores[MAX_FRAMES_IN_FLIGHT];
VkFence inFlightFences[MAX_FRAMES_IN_FLIGHT];
VkBuffer vk_uniform_buffers[MAX_FRAMES_IN_FLIGHT];
VkDeviceMemory vk_uniform_buffers_memory[MAX_FRAMES_IN_FLIGHT];
void * vk_uniform_buffers_mapped[MAX_FRAMES_IN_FLIGHT];
VkBuffer vk_vertex_buffer;
VkDeviceMemory vk_vertex_buffer_memory;
VkBuffer vk_index_buffer;
VkDeviceMemory vk_index_buffer_memory;
VkDescriptorPool vk_descriptor_pool;
VkDescriptorSet vk_descriptor_sets[MAX_FRAMES_IN_FLIGHT];
LIST test;
} state_t ;
void
init_state(state_t * s)
{
s->window_w = 800;
s->window_h = 600;
s->cell_w = 10;
s->cell_h = 10;
s->grid_w = 0;
s->grid_h = 0;
s->char_w = 0;
s->char_h = 0;
s->char_x = 0;
s->char_y = 0;
s->zoom = 10;
s->x = 0.0f;
s->sdl_window = NULL;
s->vk_swap_chain_image_count = 0;
s->vk_physical_device = VK_NULL_HANDLE;
s->vk_swap_chain_framebuffers_count = 0;
list_init(VkImage *, s->test, 1024);
}
|