X-Git-Url: https://eleni.mutantstargoat.com/git/?p=libgliar;a=blobdiff_plain;f=src%2Fgliar.c;h=23164d5a28d75fe708b4e78c54cadf357119297a;hp=7ba60d9e3417d5e481588abe5bd16955329e9698;hb=00bfdd4a8d29cac26588295e8d115cd1463b2a44;hpb=1619401a12d5365a754a85031922c8c2ff6229ee diff --git a/src/gliar.c b/src/gliar.c index 7ba60d9..23164d5 100644 --- a/src/gliar.c +++ b/src/gliar.c @@ -327,7 +327,7 @@ void glGetProgramivARB(GLuint program, GLenum pname, GLint *params) init(); if(!gl_get_programiv) { - fprintf(stderr, "Unable to fake the %s function. It is not supported by your OpenGL implementation.\n", __func__); + fprintf(stderr, "GLIAR: Unable to fake the %s function. It is not supported by your OpenGL implementation.\n", __func__); return; } @@ -400,9 +400,20 @@ void glGetProgramivARB(GLuint program, GLenum pname, GLint *params) key = 0; } - if(key && (option = gliar_find_opt(cfglist, key)) && option->type == GLIAR_NUMBER) { - *params = option->num_val; - return; + if(key) { + char buf[256]; + if(program == GL_VERTEX_PROGRAM_ARB) { + sprintf(buf, "v %s", key); + } + else if(program == GL_FRAGMENT_PROGRAM_ARB) { + sprintf(buf, "f %s", key); + } + key = buf; + + if((option = gliar_find_opt(cfglist, key)) && option->type == GLIAR_NUMBER) { + *params = option->num_val; + return; + } } gl_get_programiv(program, pname, params); @@ -411,17 +422,16 @@ void glGetProgramivARB(GLuint program, GLenum pname, GLint *params) void *glXGetProcAddress(const unsigned char *procname) { - if(!glx_get_proc_address) { - glx_get_proc_address = dlsym(RTLD_NEXT, "glXGetProcAddress"); - if(!glx_get_proc_address) { - return 0; - } - } + init(); - if(!strcmp((char*)procname, "glGetProgramivARB")) { - char *overr_name = "gl_get_programiv"; - return glx_get_proc_address((unsigned char*)overr_name); + if(!strcmp((char*)procname, "glGetProgramivARB") || !strcmp((char*)procname, "glGetProgramiv")) { + return glGetProgramivARB; } return glx_get_proc_address(procname); } + +void *glXGetProcAddressARB(const unsigned char *procname) +{ + return glXGetProcAddress(procname); +}