#include "vulkan_loader.h" #include #include #include #include #include #include #include #include #include gnDeviceFunctions loadVulkanDeviceFunctions() { return (gnDeviceFunctions){ ._gnCreatePresentationQueue = createPresentationQueue, ._gnPresentationQueueGetImage = getPresentQueueImage, ._gnDestroyPresentationQueue = destroyPresentationQueue, ._gnCreateShaderModule = createShaderModule, ._gnDestroyShaderModule = destroyShaderModule, ._gnCreateRenderPassDescriptor = createRenderPass, ._gnDestroyRenderPassDescriptor = destroyRenderPass, ._gnCreateGraphicsPipeline = createGraphicsPipeline, ._gnDestroyGraphicsPipeline = destroyGraphicsPipeline, ._gnCreateFramebuffer = createFramebuffer, ._gnDestroyFramebuffer = destroyFramebuffer, ._gnCreateCommandPool = createCommandPool, ._gnDestroyCommandPool = destroyCommandPool, // gnReturnCode (*_gnCreateSemaphore)(gnSemaphoreHandle semaphore, gnOutputDeviceHandle device); // void (*_gnDestroySemaphore)(gnSemaphoreHandle semaphore); // gnReturnCode (*_gnCreateBuffer)(gnBufferHandle buffer, gnDeviceHandle device, gnBufferInfo info); // void (*_gnBufferData)(gnBufferHandle buffer, size_t size, void* data); // void* (*_gnMapBuffer)(gnBufferHandle buffer); // void (*_gnDestroyBuffer)(gnBufferHandle buffer); ._gnCreateUniformPool = createUniformPool, ._gnUniformPoolAllocateUniforms = allocateUniforms, ._gnDestroyUniformPool = destroyUniformPool, // void (*_gnUpdateBufferUniform)(gnUniform uniform, gnBufferUniformInfo* bufferInfo); // void (*_gnUpdateImageUniform)(gnUniform uniform, gnImageUniformInfo* imageInfo); ._gnCreateTexture = createTexture, ._gnTextureData = textureData, ._gnDestroyTexture = destroyTexture, // gnReturnCode (*_gnCreateFence)(gnFenceHandle fence, gnOutputDeviceHandle device); // void (*_gnSignalFence)(gnFenceHandle fence); // void (*_gnWaitForFence)(gnFenceHandle fence, uint64_t timeout); // void (*_gnResetFence)(gnFenceHandle fence); // void (*_gnDestroyFence)(gnFenceHandle fence); // gnReturnCode (*_gnSubmit)(gnOutputDeviceHandle device, gnSubmitInfo submit); // gnReturnCode (*_gnPresent)(gnOutputDeviceHandle device, gnPresentInfo info); ._gnWaitForDevice = waitForDevice }; }