#pragma once typedef enum gnReturnCode_t { GN_SUCCESS, GN_UNKNOWN_RENDERINGAPI, GN_UNSUPPORTED_RENDERING_API, 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_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 } gnReturnCode; typedef gnReturnCode gnErrorCode; const char* gnErrorCodeToCString(enum gnReturnCode_t returnCode) { switch (returnCode) { default: return "GN_FORGOT"; 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_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_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"; } }