initial commit.

This commit is contained in:
siriusfox 2022-07-02 17:30:47 -07:00
commit c74c452362
17 changed files with 4983 additions and 0 deletions

47
src/lgl_shader_tools.cpp Normal file
View file

@ -0,0 +1,47 @@
//#include <GLFW/glfw3.h>
#include <stdio.h>
#include <string.h>
#include <cassert>
#include <stdlib.h>
#include <sys/stat.h>
#define CONST_READSHADER_MAX_FN_LEN 256
#define CONST_READSHADER_MAX_FN_SIZE 32*1024
char *readshader(const char *fn) {
char shader_fn[CONST_READSHADER_MAX_FN_LEN];
assert(strlen(fn) + 9 < CONST_READSHADER_MAX_FN_LEN);
struct stat status_buffer;
snprintf(shader_fn, CONST_READSHADER_MAX_FN_LEN, "shaders/%s", fn);
printf("%s\n", shader_fn);
if (stat(shader_fn, &status_buffer) == -1) {
printf("Failed to stat file '%s'\n", shader_fn);
return NULL;
}
assert(status_buffer.st_size < CONST_READSHADER_MAX_FN_SIZE-1);
FILE *fh = fopen(shader_fn, "r");
assert(fh != NULL);
char *shader_data = (char *)malloc(CONST_READSHADER_MAX_FN_SIZE);
assert(shader_data != NULL);
size_t read_bytes = fread((void *)shader_data, sizeof(char),
CONST_READSHADER_MAX_FN_SIZE-1, fh);
assert(read_bytes < CONST_READSHADER_MAX_FN_SIZE-1);
shader_data[read_bytes] = '\0';
fclose(fh);
return shader_data;
}
void freeshader(void *shader_fh) {
assert(shader_fh != NULL);
free(shader_fh);
}