diff options
author | Mike Pavone <pavone@retrodev.com> | 2013-10-28 23:59:59 -0700 |
---|---|---|
committer | Mike Pavone <pavone@retrodev.com> | 2013-10-28 23:59:59 -0700 |
commit | d0b2a6deb5c48fc0f40a979401ea8e99eea7a65e (patch) | |
tree | 57770eaf1f0db4cbb4e5416e29dd9d9862965e70 | |
parent | 27eb6b37f9b2a9b0c05770475fb28f8792fcf5c5 (diff) |
Pull shader file names from config file.
-rw-r--r-- | default.cfg | 2 | ||||
-rw-r--r-- | render_sdl.c | 4 | ||||
-rw-r--r-- | tern.c | 11 | ||||
-rw-r--r-- | tern.h | 3 |
4 files changed, 14 insertions, 6 deletions
diff --git a/default.cfg b/default.cfg index ef8bace..32df104 100644 --- a/default.cfg +++ b/default.cfg @@ -56,6 +56,8 @@ bindings { video { width 640 + vertex_shader default.v.glsl + fragment_shader default.f.glsl } audio { diff --git a/render_sdl.c b/render_sdl.c index f36318d..709733c 100644 --- a/render_sdl.c +++ b/render_sdl.c @@ -181,8 +181,8 @@ void render_alloc_surfaces(vdp_context * context) glBufferData(GL_ARRAY_BUFFER, sizeof(vertex_data), vertex_data, GL_STATIC_DRAW); glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, buffers[1]); glBufferData(GL_ELEMENT_ARRAY_BUFFER, sizeof(element_data), element_data, GL_STATIC_DRAW); - vshader = load_shader("default.v.glsl", GL_VERTEX_SHADER); - fshader = load_shader("default.f.glsl", GL_FRAGMENT_SHADER); + vshader = load_shader(tern_find_ptr_default(config, "videovertex_shader", "default.v.glsl"), GL_VERTEX_SHADER); + fshader = load_shader(tern_find_ptr_default(config, "videofragment_shader", "default.f.glsl"), GL_FRAGMENT_SHADER); program = glCreateProgram(); glAttachShader(program, vshader); glAttachShader(program, fshader); @@ -1,6 +1,6 @@ /* Copyright 2013 Michael Pavone - This file is part of BlastEm. + This file is part of BlastEm. BlastEm is free software distributed under the terms of the GNU General Public License version 3 or greater. See COPYING for full license text. */ #include "tern.h" @@ -101,13 +101,18 @@ tern_node * tern_insert_int(tern_node * head, char * key, intptr_t value) return tern_insert(head, key, val); } -void * tern_find_ptr(tern_node * head, char * key) +void * tern_find_ptr_default(tern_node * head, char * key, void * def) { tern_val ret; if (tern_find(head, key, &ret)) { return ret.ptrval; } - return NULL; + return def; +} + +void * tern_find_ptr(tern_node * head, char * key) +{ + return tern_find_ptr_default(head, key, NULL); } tern_node * tern_insert_ptr(tern_node * head, char * key, void * value) @@ -1,6 +1,6 @@ /* Copyright 2013 Michael Pavone - This file is part of BlastEm. + This file is part of BlastEm. BlastEm is free software distributed under the terms of the GNU General Public License version 3 or greater. See COPYING for full license text. */ #ifndef TERN_H_ @@ -28,6 +28,7 @@ int tern_find(tern_node * head, char * key, tern_val *ret); tern_node * tern_find_prefix(tern_node * head, char * key); intptr_t tern_find_int(tern_node * head, char * key, intptr_t def); tern_node * tern_insert_int(tern_node * head, char * key, intptr_t value); +void * tern_find_ptr_default(tern_node * head, char * key, void * def); void * tern_find_ptr(tern_node * head, char * key); tern_node * tern_insert_ptr(tern_node * head, char * key, void * value); |