2 libgliar - a library that can fake the OpenGL context info returned by
5 Copyright (C) 2013 Canonical Ltd
7 This program is free software: you can redistribute it and/or modify
8 it under the terms of the GNU General Public License as published by
9 the Free Software Foundation, either version 3 of the License, or
10 (at your option) any later version.
12 This program is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 GNU General Public License for more details.
17 You should have received a copy of the GNU General Public License
18 along with this program. If not, see <http://www.gnu.org/licenses/>.
20 Author: Eleni Maria Stea <elene.mst@gmail.com>
33 static const GLubyte* (*gl_get_string)(GLenum);
34 static struct cfgopt *cfglist;
42 if(!(cfglist = gliar_load_cfg("gliar.conf"))) {
46 if((pw = getpwuid(getuid()))) {
49 homedir = getenv("HOME");
53 path = alloca(strlen(homedir) + strlen(".gliar.conf") + 2);
54 sprintf(path, "%s/.gliar.conf", homedir);
56 cfglist = gliar_load_cfg(path);
60 gl_get_string = dlsym(RTLD_NEXT, "glGetString");
66 const GLubyte *glGetString(GLenum name)
68 const char *key, *value;
89 if(key && (value = gliar_find_opt(cfglist, key))) {
93 return gl_get_string(name);