#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_UNKNOWN_ERROR, // GN_UNKNOWN_FRAMEBUFFER_ATTACHMENT, // GN_UNKNOWN_SHADER_MODULE, // GN_UNKNOWN_FUNCTION, // GN_SHADER_FAILED_TO_COMPILE, // GN_UNSUPPORTED_COLOR_FORMAT, // GN_UNKNOWN_COLOR_FORMAT, // GN_FUNCTION_NOT_FOUND, // GN_FAILED_CREATE_GRAPHICS_PIPELINE, // GN_FAILED_CREATE_PRESENTATION_QUEUE, // GN_FAILED_TO_CREATE_FRAMEBUFFER, // GN_FAILED_CREATE_RENDERPASS, // GN_FAILED_TO_ATTACH_WINDOW, // GN_FAILED_TO_CREATE_IMAGE } gnReturnCode; typedef gnReturnCode gnErrorCode; static 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"; } }