aboutsummaryrefslogtreecommitdiff
path: root/src/gl.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/gl.c')
-rw-r--r--src/gl.c17
1 files changed, 9 insertions, 8 deletions
diff --git a/src/gl.c b/src/gl.c
index 0745810..ead18dc 100644
--- a/src/gl.c
+++ b/src/gl.c
@@ -8,13 +8,13 @@ typedef struct {
const char *name;
} dlsym_assign;
-static void* dlsym_print_fail(void *handle, const char *name) {
+static void* dlsym_print_fail(void *handle, const char *name, int required) {
dlerror();
void *sym = dlsym(handle, name);
char *err_str = dlerror();
if(!sym)
- fprintf(stderr, "dlsym(handle, \"%s\") failed, error: %s\n", name, err_str ? err_str : "(null)");
+ fprintf(stderr, "mgl %s: dlsym(handle, \"%s\") failed, error: %s\n", required ? "error" : "warning", name, err_str ? err_str : "(null)");
return sym;
}
@@ -26,16 +26,17 @@ int mgl_gl_load(mgl_gl *self) {
const char *glx_path = "libGL.so.1";
self->handle = dlopen(glx_path, RTLD_LAZY);
if(!self->handle) {
- fprintf(stderr, "dlopen(\"%s\", RTLD_LAZY) failed\n", glx_path);
+ fprintf(stderr, "mgl error:dlopen(\"%s\", RTLD_LAZY) failed\n", glx_path);
return -1;
}
const dlsym_assign required_dlsym[] = {
- { &self->glXChooseVisual, "glXChooseVisual" },
- { &self->glXCreateContext, "glXCreateContext" },
+ { &self->glXCreateNewContext, "glXCreateNewContext" },
+ { &self->glXMakeContextCurrent, "glXMakeContextCurrent" },
{ &self->glXDestroyContext, "glXDestroyContext" },
- { &self->glXMakeCurrent, "glXMakeCurrent" },
{ &self->glXSwapBuffers, "glXSwapBuffers" },
+ { &self->glXChooseFBConfig, "glXChooseFBConfig" },
+ { &self->glXGetVisualFromFBConfig, "glXGetVisualFromFBConfig" },
{ &self->glViewport, "glViewport" },
{ &self->glScissor, "glScissor" },
@@ -98,7 +99,7 @@ int mgl_gl_load(mgl_gl *self) {
};
for(int i = 0; required_dlsym[i].func; ++i) {
- *required_dlsym[i].func = dlsym_print_fail(self->handle, required_dlsym[i].name);
+ *required_dlsym[i].func = dlsym_print_fail(self->handle, required_dlsym[i].name, 1);
if(!required_dlsym[i].func) {
mgl_gl_unload(self);
return -1;
@@ -114,7 +115,7 @@ int mgl_gl_load(mgl_gl *self) {
};
for(int i = 0; optional_dlsym[i].func; ++i) {
- *optional_dlsym[i].func = dlsym_print_fail(self->handle, optional_dlsym[i].name);
+ *optional_dlsym[i].func = dlsym_print_fail(self->handle, optional_dlsym[i].name, 0);
}
return 0;