Files
Gryphn/projects/loader/src/gryphn_device_functions.h
Gregory Wells ddd28858ef gnUnmapBuffer
2025-08-12 14:33:03 -04:00

65 lines
3.7 KiB
C

#pragma once
#include "stdint.h"
#include "stdlib.h"
#include "core/gryphn_return_code.h"
#include "gryphn_handles.h"
typedef struct gnPresentationQueueInfo gnPresentationQueueInfo;
typedef struct gnShaderModuleInfo gnShaderModuleInfo;
typedef struct gnRenderPassDescriptorInfo gnRenderPassDescriptorInfo;
typedef struct gnGraphicsPipelineInfo gnGraphicsPipelineInfo;
typedef struct gnFramebufferInfo gnFramebufferInfo;
typedef struct gnCommandPoolInfo gnCommandPoolInfo;
typedef struct gnBufferInfo gnBufferInfo;
typedef struct gnUniformAllocationInfo gnUniformAllocationInfo;
typedef struct gnBufferUniformInfo gnBufferUniformInfo;
typedef struct gnStorageUniformInfo gnStorageUniformInfo;
typedef struct gnImageUniformInfo gnImageUniformInfo;
typedef struct gnTextureInfo gnTextureInfo;
typedef struct gnSubmitInfo gnSubmitInfo;
typedef struct gnPresentInfo gnPresentInfo;
typedef struct gnDeviceFunctions {
gnReturnCode (*_gnCreatePresentationQueue)(gnPresentationQueueHandle presentationQueue, const gnOutputDeviceHandle device, gnPresentationQueueInfo presentationInfo); gnReturnCode (*_gnPresentationQueueGetImage)(gnPresentationQueueHandle presentationQueue, uint32_t* imageIndex);
void (*_gnDestroyPresentationQueue)(gnPresentationQueueHandle presentationQueue);
gnReturnCode (*_gnCreateShaderModule)(gnShaderModuleHandle module, gnOutputDeviceHandle device, gnShaderModuleInfo shaderModuleInfo);
void (*_gnDestroyShaderModule)(gnShaderModuleHandle module);
gnReturnCode (*_gnCreateRenderPassDescriptor)(gnRenderPassDescriptorHandle renderPass, gnOutputDeviceHandle device, gnRenderPassDescriptorInfo info);
void (*_gnDestroyRenderPassDescriptor)(gnRenderPassDescriptorHandle renderPass);
gnReturnCode (*_gnCreateGraphicsPipeline)(gnGraphicsPipelineHandle pipeline, gnOutputDeviceHandle device, gnGraphicsPipelineInfo pipelineInfo);
void (*_gnDestroyGraphicsPipeline)(gnGraphicsPipelineHandle pipeline);
gnReturnCode (*_gnCreateFramebuffer)(gnFramebuffer framebuffer, gnOutputDeviceHandle device, gnFramebufferInfo framebufferInfo);
void (*_gnDestroyFramebuffer)(gnFramebuffer framebuffer);
gnReturnCode (*_gnCreateCommandPool)(gnCommandPoolHandle commandPool, gnOutputDeviceHandle device, gnCommandPoolInfo info);
void (*_gnDestroyCommandPool)(gnCommandPoolHandle commandPool);
gnReturnCode (*_gnCreateBuffer)(gnBufferHandle buffer, gnDeviceHandle device, gnBufferInfo info);
void (*_gnBufferData)(gnBufferHandle buffer, size_t size, void* data);
void (*_gnBufferSubData)(gnBufferHandle buffer, size_t offset, size_t dataSize, void* data);
void* (*_gnMapBuffer)(gnBufferHandle buffer);
void (*_gnUnmapBuffer)(gnBufferHandle buffer);
void (*_gnDestroyBuffer)(gnBufferHandle buffer);
gnReturnCode (*_gnCreateUniformPool)(gnUniformPool pool, gnDeviceHandle device);
gnUniform* (*_gnUniformPoolAllocateUniforms)(gnUniformPool pool, gnUniformAllocationInfo allocInfo);
void (*_gnDestroyUniformPool)(gnUniformPool pool);
void (*_gnUpdateBufferUniform)(gnUniform uniform, gnBufferUniformInfo* bufferInfo);
void (*_gnUpdateStorageUniform)(gnUniform uniform, gnStorageUniformInfo* storageInfo);
void (*_gnUpdateImageUniform)(gnUniform uniform, gnImageUniformInfo* imageInfo);
gnReturnCode (*_gnCreateTexture)(gnTexture texture, gnDevice device, const gnTextureInfo info);
void (*_gnTextureData)(gnTextureHandle texture, void* pixelData);
void (*_gnDestroyTexture)(gnTexture texture);
gnReturnCode (*_gnSubmit)(gnOutputDeviceHandle device, gnSubmitInfo submit);
gnReturnCode (*_gnPresent)(gnOutputDeviceHandle device, gnPresentInfo info);
void (*_gnWaitForDevice)(gnOutputDeviceHandle device);
} gnDeviceFunctions;