From ff907c6ffa7ed0a7c6ce938b40a6c223dd0a3b9d Mon Sep 17 00:00:00 2001 From: omnisci3nce <17525998+omnisci3nce@users.noreply.github.com> Date: Wed, 27 Mar 2024 22:09:03 +1100 Subject: start going through Kohi episode 26 --- src/platform/file.c | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) (limited to 'src/platform/file.c') diff --git a/src/platform/file.c b/src/platform/file.c index ec9259a..ac5014d 100644 --- a/src/platform/file.c +++ b/src/platform/file.c @@ -61,3 +61,33 @@ str8_opt str8_from_file(arena *a, str8 path) { return result; } + +FileData load_spv_file(const char *path) { + FILE *f = fopen(path, "rb"); + if (f == NULL) { + perror("Error opening file"); + return (FileData){NULL, 0}; + } + + fseek(f, 0, SEEK_END); + long fsize = ftell(f); + rewind(f); + + char *data = (char *)malloc(fsize); + if (data == NULL) { + perror("Memory allocation failed"); + fclose(f); + return (FileData){NULL, 0}; + } + + size_t bytesRead = fread(data, 1, fsize, f); + if (bytesRead < fsize) { + perror("Failed to read the entire file"); + free(data); + fclose(f); + return (FileData){NULL, 0}; + } + + fclose(f); + return (FileData){data, bytesRead}; +} \ No newline at end of file -- cgit v1.2.3-70-g09d2