# HG changeset patch # User Mike Pavone # Date 1383029999 25200 # Node ID 51bf87f76d15c139e8f04deb36d4e4a377ecabab # Parent 0820a71b80f3c351ded6399a08d07f5b8608134e Pull shader file names from config file. diff -r 0820a71b80f3 -r 51bf87f76d15 default.cfg --- a/default.cfg Mon Oct 28 23:50:28 2013 -0700 +++ b/default.cfg Mon Oct 28 23:59:59 2013 -0700 @@ -56,6 +56,8 @@ video { width 640 + vertex_shader default.v.glsl + fragment_shader default.f.glsl } audio { diff -r 0820a71b80f3 -r 51bf87f76d15 render_sdl.c --- a/render_sdl.c Mon Oct 28 23:50:28 2013 -0700 +++ b/render_sdl.c Mon Oct 28 23:59:59 2013 -0700 @@ -181,8 +181,8 @@ 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 -r 0820a71b80f3 -r 51bf87f76d15 tern.c --- a/tern.c Mon Oct 28 23:50:28 2013 -0700 +++ b/tern.c Mon Oct 28 23:59:59 2013 -0700 @@ -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 @@ 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 -r 0820a71b80f3 -r 51bf87f76d15 tern.h --- a/tern.h Mon Oct 28 23:50:28 2013 -0700 +++ b/tern.h Mon Oct 28 23:59:59 2013 -0700 @@ -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 @@ 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);