summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--default.cfg2
-rw-r--r--render_sdl.c4
-rw-r--r--tern.c11
-rw-r--r--tern.h3
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);
diff --git a/tern.c b/tern.c
index 96a0985..f61e2aa 100644
--- a/tern.c
+++ b/tern.c
@@ -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)
diff --git a/tern.h b/tern.h
index e727599..e95e0c9 100644
--- a/tern.h
+++ b/tern.h
@@ -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);