update utils

This commit is contained in:
Greg Wells
2025-06-06 19:58:20 -04:00
parent f3a7d6e5c2
commit 96253ec389
9 changed files with 120 additions and 231 deletions

22
gryphn_utils.h Normal file
View File

@@ -0,0 +1,22 @@
#pragma once
#include "stdint.h"
#include "stdlib.h"
#include "src/gryphn_bool.h"
#include "src/gryphn_error_code.h"
#include "src/version/gryphn_version.h"
#include "src/math/gryphn_vec2.h"
#include "src/math/gryphn_vec3.h"
#include "src/math/gryphn_vec4.h"
#include "src/types/gryphn_color.h"
#include "src/types/gryphn_color_format.h"
#include "src/types/gryphn_image_format.h"
#include "src/gryphn_access_level.h"
typedef uint32_t gnUInt;
typedef char gnByte;
typedef unsigned char gnUByte;
typedef int gnInt;
typedef float gnFloat;
typedef size_t gnSize;

View File

@@ -1,7 +0,0 @@
#pragma once
#ifdef GN_REVEAL_IMPL
#define ACCESS_LEVEL public
#else
#define ACCESS_LEVEL protected
#endif

View File

@@ -1,40 +1,84 @@
#include "utils/strings/gryphn_string.h"
#pragma once
typedef enum gnReturnCode {
GN_SUCCESS, GN_FAILED, GN_FATAL,
GN_ERROR = GN_FAILED
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,
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
} gnReturnCode;
typedef gnReturnCode gnErrorCode;
typedef enum gnReturnMessage {
GN_UNKNOWN_ERROR,
GN_UNKNOWN_FRAMEBUFFER_ATTACHMENT,
GN_UNKNOWN_SHADER_MODULE,
GN_SHADER_FAILED_TO_COMPILE,
GN_UNSUPPORTED_COLOR_FORMAT,
GN_UNKNOWN_COLOR_FORMAT,
GN_UNSUPPORTED_RENDERING_API,
GN_FUNCTION_NOT_FOUND,
GN_UNABLE_TO_LOAD_DLL,
GN_FAILED_CREATE_DEVICE,
GN_FAILED_CREATE_GRAPHICS_PIPELINE,
GN_FAILED_CREATE_PRESENTATION_QUEUE,
GN_FAILED_TO_CREATE_FRAMEBUFFER,
GN_FAILED_CREATE_RENDERPASS,
GN_FAILED_CREATE_INSTANCE,
GN_FAILED_TO_ATTACH_WINDOW,
GN_FAILED_TO_CREATE_IMAGE
} gnReturnMessage;
inline gnString lastReturnAPIMessage = "";
inline gnReturnMessage lastReturnMessage = GN_UNKNOWN_ERROR;
static const gnString gnGetErrorString() { return lastReturnAPIMessage; }
static const gnReturnMessage gnGetErrorMessage() { return lastReturnMessage; }
static gnReturnCode gnReturnError(gnReturnMessage message, gnString errorMessage) {
lastReturnAPIMessage = errorMessage;
lastReturnMessage = message;
return GN_ERROR;
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_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";
}
}

18
src/gryphn_image_format.h Normal file
View File

@@ -0,0 +1,18 @@
#pragma once
typedef enum gnImageFormat_e {
GN_FORMAT_NONE,
GN_FORMAT_BGRA8_SRGB
} gnImageFormat;
typedef enum gnColorSpace_e {
GN_COLOR_SPACE_SRGB_NONLINEAR
} gnColorSpace;
typedef enum gnImageSharingMode_e {
GN_SHARING_MODE_EXCLUSIVE, GN_SHARING_MODE_CONCURRENT
} gnImageSharingMode;
typedef enum gnImageLayout_e {
GN_LAYOUT_UNDEFINED, GN_LAYOUT_PRESENTATION_QUEUE_IMAGE, GN_LAYOUT_TRANSFER_DESTINATION, GN_COLOR_ATTACHMENT
} gnImageLayout;

View File

@@ -1,7 +1,7 @@
#pragma once
#include <stdlib.h>
#include <string.h>
#include "../gryphn_bool.h"
#include "gryphn_bool.h"
static char* add_string_to_string(char* str1, char* str2) {
char* buffer = (char*)malloc(sizeof(char) * (strlen(str1) + strlen(str2) + 1));

View File

@@ -1,188 +0,0 @@
#pragma once
typedef int gnImageFormat;
#define GN_FORMAT_UNDEFINED 0
#define GN_FORMAT_R4G4_UNORM_PACK8 1
#define GN_FORMAT_R4G4B4A4_UNORM_PACK16 2
#define GN_FORMAT_B4G4R4A4_UNORM_PACK16 3
#define GN_FORMAT_R5G6B5_UNORM_PACK16 4
#define GN_FORMAT_B5G6R5_UNORM_PACK16 5
#define GN_FORMAT_R5G5B5A1_UNORM_PACK16 6
#define GN_FORMAT_B5G5R5A1_UNORM_PACK16 7
#define GN_FORMAT_A1R5G5B5_UNORM_PACK16 8
#define GN_FORMAT_R8_UNORM 9
#define GN_FORMAT_R8_SNORM 10
#define GN_FORMAT_R8_USCALED 11
#define GN_FORMAT_R8_SSCALED 12
#define GN_FORMAT_R8_UINT 13
#define GN_FORMAT_R8_SINT 14
#define GN_FORMAT_R8_SRGB 15
#define GN_FORMAT_R8G8_UNORM 16
#define GN_FORMAT_R8G8_SNORM 17
#define GN_FORMAT_R8G8_USCALED 18
#define GN_FORMAT_R8G8_SSCALED 19
#define GN_FORMAT_R8G8_UINT 20
#define GN_FORMAT_R8G8_SINT 21
#define GN_FORMAT_R8G8_SRGB 22
#define GN_FORMAT_R8G8B8_UNORM 23
#define GN_FORMAT_R8G8B8_SNORM 24
#define GN_FORMAT_R8G8B8_USCALED 25
#define GN_FORMAT_R8G8B8_SSCALED 26
#define GN_FORMAT_R8G8B8_UINT 27
#define GN_FORMAT_R8G8B8_SINT 28
#define GN_FORMAT_R8G8B8_SRGB 29
#define GN_FORMAT_B8G8R8_UNORM 30
#define GN_FORMAT_B8G8R8_SNORM 31
#define GN_FORMAT_B8G8R8_USCALED 32
#define GN_FORMAT_B8G8R8_SSCALED 33
#define GN_FORMAT_B8G8R8_UINT 34
#define GN_FORMAT_B8G8R8_SINT 35
#define GN_FORMAT_B8G8R8_SRGB 36
#define GN_FORMAT_R8G8B8A8_UNORM 37
#define GN_FORMAT_R8G8B8A8_SNORM 38
#define GN_FORMAT_R8G8B8A8_USCALED 39
#define GN_FORMAT_R8G8B8A8_SSCALED 40
#define GN_FORMAT_R8G8B8A8_UINT 41
#define GN_FORMAT_R8G8B8A8_SINT 42
#define GN_FORMAT_R8G8B8A8_SRGB 43
#define GN_FORMAT_B8G8R8A8_UNORM 44
#define GN_FORMAT_B8G8R8A8_SNORM 45
#define GN_FORMAT_B8G8R8A8_USCALED 46
#define GN_FORMAT_B8G8R8A8_SSCALED 47
#define GN_FORMAT_B8G8R8A8_UINT 48
#define GN_FORMAT_B8G8R8A8_SINT 49
#define GN_FORMAT_B8G8R8A8_SRGB 50
#define GN_FORMAT_A8B8G8R8_UNORM_PACK32 51
#define GN_FORMAT_A8B8G8R8_SNORM_PACK32 52
#define GN_FORMAT_A8B8G8R8_USCALED_PACK32 53
#define GN_FORMAT_A8B8G8R8_SSCALED_PACK32 54
#define GN_FORMAT_A8B8G8R8_UINT_PACK32 55
#define GN_FORMAT_A8B8G8R8_SINT_PACK32 56
#define GN_FORMAT_A8B8G8R8_SRGB_PACK32 57
#define GN_FORMAT_A2R10G10B10_UNORM_PACK32 58
#define GN_FORMAT_A2R10G10B10_SNORM_PACK32 59
#define GN_FORMAT_A2R10G10B10_USCALED_PACK32 60
#define GN_FORMAT_A2R10G10B10_SSCALED_PACK32 61
#define GN_FORMAT_A2R10G10B10_UINT_PACK32 62
#define GN_FORMAT_A2R10G10B10_SINT_PACK32 63
#define GN_FORMAT_A2B10G10R10_UNORM_PACK32 64
#define GN_FORMAT_A2B10G10R10_SNORM_PACK32 65
#define GN_FORMAT_A2B10G10R10_USCALED_PACK32 66
#define GN_FORMAT_A2B10G10R10_SSCALED_PACK32 67
#define GN_FORMAT_A2B10G10R10_UINT_PACK32 68
#define GN_FORMAT_A2B10G10R10_SINT_PACK32 69
#define GN_FORMAT_R16_UNORM 70
#define GN_FORMAT_R16_SNORM 71
#define GN_FORMAT_R16_USCALED 72
#define GN_FORMAT_R16_SSCALED 73
#define GN_FORMAT_R16_UINT 74
#define GN_FORMAT_R16_SINT 75
#define GN_FORMAT_R16_SFLOAT 76
#define GN_FORMAT_R16G16_UNORM 77
#define GN_FORMAT_R16G16_SNORM 78
#define GN_FORMAT_R16G16_USCALED 79
#define GN_FORMAT_R16G16_SSCALED 80
#define GN_FORMAT_R16G16_UINT 81
#define GN_FORMAT_R16G16_SINT 82
#define GN_FORMAT_R16G16_SFLOAT 83
#define GN_FORMAT_R16G16B16_UNORM 84
#define GN_FORMAT_R16G16B16_SNORM 85
#define GN_FORMAT_R16G16B16_USCALED 86
#define GN_FORMAT_R16G16B16_SSCALED 87
#define GN_FORMAT_R16G16B16_UINT 88
#define GN_FORMAT_R16G16B16_SINT 89
#define GN_FORMAT_R16G16B16_SFLOAT 90
#define GN_FORMAT_R16G16B16A16_UNORM 91
#define GN_FORMAT_R16G16B16A16_SNORM 92
#define GN_FORMAT_R16G16B16A16_USCALED 93
#define GN_FORMAT_R16G16B16A16_SSCALED 94
#define GN_FORMAT_R16G16B16A16_UINT 95
#define GN_FORMAT_R16G16B16A16_SINT 96
#define GN_FORMAT_R16G16B16A16_SFLOAT 97
#define GN_FORMAT_R32_UINT 98
#define GN_FORMAT_R32_SINT 99
#define GN_FORMAT_R32_SFLOAT 100
#define GN_FORMAT_R32G32_UINT 101
#define GN_FORMAT_R32G32_SINT 102
#define GN_FORMAT_R32G32_SFLOAT 103
#define GN_FORMAT_R32G32B32_UINT 104
#define GN_FORMAT_R32G32B32_SINT 105
#define GN_FORMAT_R32G32B32_SFLOAT 106
#define GN_FORMAT_R32G32B32A32_UINT 107
#define GN_FORMAT_R32G32B32A32_SINT 108
#define GN_FORMAT_R32G32B32A32_SFLOAT 109
#define GN_FORMAT_R64_UINT 110
#define GN_FORMAT_R64_SINT 111
#define GN_FORMAT_R64_SFLOAT 112
#define GN_FORMAT_R64G64_UINT 113
#define GN_FORMAT_R64G64_SINT 114
#define GN_FORMAT_R64G64_SFLOAT 115
#define GN_FORMAT_R64G64B64_UINT 116
#define GN_FORMAT_R64G64B64_SINT 117
#define GN_FORMAT_R64G64B64_SFLOAT 118
#define GN_FORMAT_R64G64B64A64_UINT 119
#define GN_FORMAT_R64G64B64A64_SINT 120
#define GN_FORMAT_R64G64B64A64_SFLOAT 121
#define GN_FORMAT_B10G11R11_UFLOAT_PACK32 122
#define GN_FORMAT_E5B9G9R9_UFLOAT_PACK32 123
#define GN_FORMAT_D16_UNORM 124
#define GN_FORMAT_X8_D24_UNORM_PACK32 125
#define GN_FORMAT_D32_SFLOAT 126
#define GN_FORMAT_S8_UINT 127
#define GN_FORMAT_D16_UNORM_S8_UINT 128
#define GN_FORMAT_D24_UNORM_S8_UINT 129
#define GN_FORMAT_D32_SFLOAT_S8_UINT 130
#define GN_FORMAT_BC1_RGB_UNORM_BLOCK 131
#define GN_FORMAT_BC1_RGB_SRGB_BLOCK 132
#define GN_FORMAT_BC1_RGBA_UNORM_BLOCK 133
#define GN_FORMAT_BC1_RGBA_SRGB_BLOCK 134
#define GN_FORMAT_BC2_UNORM_BLOCK 135
#define GN_FORMAT_BC2_SRGB_BLOCK 136
#define GN_FORMAT_BC3_UNORM_BLOCK 137
#define GN_FORMAT_BC3_SRGB_BLOCK 138
#define GN_FORMAT_BC4_UNORM_BLOCK 139
#define GN_FORMAT_BC4_SNORM_BLOCK 140
#define GN_FORMAT_BC5_UNORM_BLOCK 141
#define GN_FORMAT_BC5_SNORM_BLOCK 142
#define GN_FORMAT_BC6H_UFLOAT_BLOCK 143
#define GN_FORMAT_BC6H_SFLOAT_BLOCK 144
#define GN_FORMAT_BC7_UNORM_BLOCK 145
#define GN_FORMAT_BC7_SRGB_BLOCK 146
#define GN_FORMAT_ETC2_R8G8B8_UNORM_BLOCK 147
#define GN_FORMAT_ETC2_R8G8B8_SRGB_BLOCK 148
#define GN_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK 149
#define GN_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK 150
#define GN_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK 151
#define GN_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK 152
#define GN_FORMAT_EAC_R11_UNORM_BLOCK 153
#define GN_FORMAT_EAC_R11_SNORM_BLOCK 154
#define GN_FORMAT_EAC_R11G11_UNORM_BLOCK 155
#define GN_FORMAT_EAC_R11G11_SNORM_BLOCK 156
#define GN_FORMAT_ASTC_4x4_UNORM_BLOCK 157
#define GN_FORMAT_ASTC_4x4_SRGB_BLOCK 158
#define GN_FORMAT_ASTC_5x4_UNORM_BLOCK 159
#define GN_FORMAT_ASTC_5x4_SRGB_BLOCK 160
#define GN_FORMAT_ASTC_5x5_UNORM_BLOCK 161
#define GN_FORMAT_ASTC_5x5_SRGB_BLOCK 162
#define GN_FORMAT_ASTC_6x5_UNORM_BLOCK 163
#define GN_FORMAT_ASTC_6x5_SRGB_BLOCK 164
#define GN_FORMAT_ASTC_6x6_UNORM_BLOCK 165
#define GN_FORMAT_ASTC_6x6_SRGB_BLOCK 166
#define GN_FORMAT_ASTC_8x5_UNORM_BLOCK 167
#define GN_FORMAT_ASTC_8x5_SRGB_BLOCK 168
#define GN_FORMAT_ASTC_8x6_UNORM_BLOCK 169
#define GN_FORMAT_ASTC_8x6_SRGB_BLOCK 170
#define GN_FORMAT_ASTC_8x8_UNORM_BLOCK 171
#define GN_FORMAT_ASTC_8x8_SRGB_BLOCK 172
#define GN_FORMAT_ASTC_10x5_UNORM_BLOCK 173
#define GN_FORMAT_ASTC_10x5_SRGB_BLOCK 174
#define GN_FORMAT_ASTC_10x6_UNORM_BLOCK 175
#define GN_FORMAT_ASTC_10x6_SRGB_BLOCK 176
#define GN_FORMAT_ASTC_10x8_UNORM_BLOCK 177
#define GN_FORMAT_ASTC_10x8_SRGB_BLOCK 178
#define GN_FORMAT_ASTC_10x10_UNORM_BLOCK 179
#define GN_FORMAT_ASTC_10x10_SRGB_BLOCK 180
#define GN_FORMAT_ASTC_12x10_UNORM_BLOCK 181
#define GN_FORMAT_ASTC_12x10_SRGB_BLOCK 182
#define GN_FORMAT_ASTC_12x12_UNORM_BLOCK 183
#define GN_FORMAT_ASTC_12x12_SRGB_BLOCK 184