#pragma once typedef enum gnReturnCode_t { GN_SUCCESS, GN_UNKNOWN_RENDERINGAPI, GN_UNSUPPORTED_RENDERING_API, GN_UNSUPPORTED_IMAGE_FORMAT, GN_UNABLE_TO_LOAD_DYNAMIC_LIBARRY, GN_FAILED_CREATE_INSTANCE, GN_FAILED_TO_CREATE_DEBUGGER, GN_FAILED_TO_CREATE_DEVICE, GN_FAILED_TO_ATTACH_WINDOW, GN_INVALID_INSTANCE, GN_DEBUGGER_EXISTS, GN_NO_SUPPORTED_FORMATS, GN_NO_SUPPORTED_PRESENT_MODES, GN_UNKNOWN_IMAGE_FORMAT, GN_FAILED_TO_CREATE_PRESENTATION_QUEUE, GN_WINDOW_IN_USE, GN_UNSUPPORTED_IMAGE_COUNT, GN_FAILED_TO_CREATE_IMAGE_VIEW, GN_FAILED_TO_CREATE_SHADER_MODULE, GN_FAILED_TO_CONVERT_SHADER_CODE, GN_FAILED_TO_FIND_ENTRY_POINT, GN_FAILED_TO_CREATE_UNIFORM_LAYOUT, GN_FAILED_TO_CREATE_RENDER_PASS, GN_FAILED_TO_CREATE_GRAPHICS_PIPELINE, GN_UNSUPPORTED_SHADER_MODULE, GN_UNKNOWN_SUBPASS, GN_FAILED_TO_CREATE_FRAMEBUFFER, GN_DIVERGENT_RENDERPASS, GN_FAILED_TO_CREATE_COMMAND_POOL, GN_FAILED_TO_BEGIN_RECORDING, GN_FAIELD_TO_END_RECORDING, GN_FAILED_TO_ALLOCATE_COMMAND_BUFFERS, GN_FAILED_TO_CREATE_FENCE, GN_FAILED_TO_CREATE_SEMAPHORE, GN_FAILED_TO_SUBMIT_COMMAND_BUFFER, GN_OUT_OF_DATE_PRESENTATION_QUEUE, GN_SUBOPTIMAL_PRESENTATION_QUEUE, GN_FAILED_TO_CREATE_BUFFER, GN_FAILED_TO_ALLOCATE_MEMORY, GN_FAILED_TO_CREATE_IMAGE, GN_FAILED_TO_CREATE_SAMPLER, GN_FAILED_TO_LOAD_FUNCTION, GN_FAILED_TO_INIT_OPENGL } gnReturnCode; typedef gnReturnCode gnErrorCode; static const char* gnErrorCodeToCString(enum gnReturnCode_t returnCode) { switch (returnCode) { case GN_SUCCESS: return "GN_SUCCESS"; case GN_UNKNOWN_RENDERINGAPI: return "GN_UNKNOWN_RENDERINGAPI"; case GN_UNSUPPORTED_RENDERING_API: return "GN_UNSUPPORTED_RENDERING_API"; case GN_UNABLE_TO_LOAD_DYNAMIC_LIBARRY: return "GN_UNABLE_TO_LOAD_DYNAMIC_LIBARRY"; case GN_FAILED_CREATE_INSTANCE: return "GN_FAILED_CREATE_INSTANCE"; case GN_FAILED_TO_CREATE_DEBUGGER: return "GN_FAILED_TO_CREATE_DEBUGGER"; case GN_FAILED_TO_CREATE_DEVICE: return "GN_FAILED_TO_CREATE_DEVICE"; case GN_FAILED_TO_ATTACH_WINDOW: return "GN_FAILED_TO_ATTACH_WINDOW"; case GN_INVALID_INSTANCE: return "GN_INVALID_INSTANCE"; case GN_DEBUGGER_EXISTS: return "GN_DEBUGGER_EXISTS"; case GN_NO_SUPPORTED_FORMATS: return "GN_NO_SUPPORTED_FORMATS"; case GN_NO_SUPPORTED_PRESENT_MODES: return "GN_NO_SUPPORTED_PRESENT_MODES"; case GN_UNKNOWN_IMAGE_FORMAT: return "GN_UNKNOWN_IMAGE_FORMAT"; case GN_FAILED_TO_CREATE_PRESENTATION_QUEUE: return "GN_FAILED_TO_CREATE_PRESENTATION_QUEUE"; case GN_WINDOW_IN_USE: return "GN_WINDOW_IN_USE"; case GN_UNSUPPORTED_IMAGE_COUNT: return "GN_UNSUPPORTED_IMAGE_COUNT"; case GN_FAILED_TO_CREATE_IMAGE_VIEW: return "GN_FAILED_TO_CREATE_IMAGE_VIEW"; case GN_FAILED_TO_CREATE_SHADER_MODULE: return "GN_FAILED_TO_CREATE_SHADER_MODULE"; case GN_FAILED_TO_CONVERT_SHADER_CODE: return "GN_FAILED_TO_CONVERT_SHADER_CODE"; case GN_FAILED_TO_FIND_ENTRY_POINT: return "GN_FAILED_TO_FIND_ENTRY_POINT"; case GN_FAILED_TO_CREATE_UNIFORM_LAYOUT: return "GN_FAILED_TO_CREATE_UNIFORM_LAYOUT"; case GN_FAILED_TO_CREATE_RENDER_PASS: return "GN_FAILED_TO_CREATE_RENDER_PASS"; case GN_FAILED_TO_CREATE_GRAPHICS_PIPELINE: return "GN_FAILED_TO_CREATE_GRAPHICS_PIPELINE"; case GN_UNSUPPORTED_SHADER_MODULE: return "GN_UNSUPPORTED_SHADER_MODULE"; case GN_UNKNOWN_SUBPASS: return "GN_UNKNOWN_SUBPASS"; case GN_FAILED_TO_CREATE_FRAMEBUFFER: return "GN_FAILED_TO_CREATE_FRAMEBUFFER"; case GN_DIVERGENT_RENDERPASS: return "GN_DIVERGENT_RENDERPASS"; case GN_FAILED_TO_CREATE_COMMAND_POOL: return "GN_FAILED_TO_CREATE_COMMAND_POOL"; case GN_FAILED_TO_BEGIN_RECORDING: return "GN_FAILED_TO_BEGIN_RECORDING"; case GN_FAIELD_TO_END_RECORDING: return "GN_FAIELD_TO_END_RECORDING"; case GN_FAILED_TO_ALLOCATE_COMMAND_BUFFERS: return "GN_FAILED_TO_ALLOCATE_COMMAND_BUFFERS"; case GN_FAILED_TO_CREATE_FENCE: return "GN_FAILED_TO_CREATE_FENCE"; case GN_FAILED_TO_CREATE_SEMAPHORE: return "GN_FAILED_TO_CREATE_SEMAPHORE"; case GN_FAILED_TO_SUBMIT_COMMAND_BUFFER: return "GN_FAILED_TO_SUBMIT_COMMAND_BUFFER"; case GN_OUT_OF_DATE_PRESENTATION_QUEUE: return "GN_OUT_OF_DATE_PRESENTATION_QUEUE"; case GN_SUBOPTIMAL_PRESENTATION_QUEUE: return "GN_SUBOPTIMAL_PRESENTATION_QUEUE"; case GN_FAILED_TO_ALLOCATE_MEMORY: return "GN_FAILED_TO_ALLOCATE_MEMORY"; case GN_FAILED_TO_CREATE_BUFFER: return "GN_FAILED_TO_CREATE_BUFFER"; case GN_FAILED_TO_CREATE_IMAGE: return "GN_FAILED_TO_CREATE_IMAGE"; case GN_FAILED_TO_CREATE_SAMPLER: return "GN_FAILED_TO_CREATE_SAMPLER"; case GN_FAILED_TO_LOAD_FUNCTION: return "GN_FAILED_TO_LOAD_FUNCTION"; case GN_UNSUPPORTED_IMAGE_FORMAT: return "GN_UNSUPPORTED_IMAGE_FORMAT"; case GN_FAILED_TO_INIT_OPENGL: return "GN_FAILED_TO_INIT_OPENGL"; } }