diff options
author | Mike Pavone <pavone@retrodev.com> | 2013-10-28 23:50:28 -0700 |
---|---|---|
committer | Mike Pavone <pavone@retrodev.com> | 2013-10-28 23:50:28 -0700 |
commit | 27eb6b37f9b2a9b0c05770475fb28f8792fcf5c5 (patch) | |
tree | a739d981425bcc2cce8836349e62dc047a1ae295 | |
parent | 94eea1e7324e6599decb73b78d13b111dd5b2621 (diff) |
Move shader files to their own directory. Read shaders from /.config/blastem/shaders or from path_to_exe/shaders instead of the current working directory.
-rw-r--r-- | render_sdl.c | 21 | ||||
-rw-r--r-- | shaders/default.f.glsl (renamed from default.f.glsl) | 0 | ||||
-rw-r--r-- | shaders/default.v.glsl (renamed from default.v.glsl) | 0 |
3 files changed, 15 insertions, 6 deletions
diff --git a/render_sdl.c b/render_sdl.c index f4241fc..f36318d 100644 --- a/render_sdl.c +++ b/render_sdl.c @@ -8,6 +8,7 @@ #include "render.h" #include "blastem.h" #include "io.h" +#include "util.h" #ifndef DISABLE_OPENGL #include <GL/glew.h> @@ -111,14 +112,22 @@ const GLushort element_data[] = {0, 1, 2, 3}; GLuint load_shader(char * fname, GLenum shader_type) { - FILE * f = fopen(fname, "r"); + char * parts[] = {getenv("HOME"), "/.config/blastem/shaders/", fname}; + char * shader_path = alloc_concat_m(3, parts); + FILE * f = fopen(shader_path, "r"); + free(shader_path); if (!f) { - fprintf(stderr, "Failed to open shader file %s for reading\n", fname); - return 0; + parts[0] = get_exe_dir(); + parts[1] = "/shaders/"; + shader_path = alloc_concat_m(3, parts); + f = fopen(shader_path, "r"); + free(shader_path); + if (!f) { + fprintf(stderr, "Failed to open shader file %s for reading\n", fname); + return 0; + } } - fseek(f, 0, SEEK_END); - long fsize = ftell(f); - fseek(f, 0, SEEK_SET); + long fsize = file_size(f); GLchar * text = malloc(fsize); if (fread(text, 1, fsize, f) != fsize) { fprintf(stderr, "Error reading from shader file %s\n", fname); diff --git a/default.f.glsl b/shaders/default.f.glsl index f7bb89a..f7bb89a 100644 --- a/default.f.glsl +++ b/shaders/default.f.glsl diff --git a/default.v.glsl b/shaders/default.v.glsl index 367c128..367c128 100644 --- a/default.v.glsl +++ b/shaders/default.v.glsl |