From: Brian Date: Tue, 29 May 2007 14:05:10 +0000 (-0600) Subject: use glXGetProcAddress to get extension funcs X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=0c5662acc7ac3bdd5712a7dabfc970d801117149;p=mesa.git use glXGetProcAddress to get extension funcs --- diff --git a/progs/xdemos/texture_from_pixmap.c b/progs/xdemos/texture_from_pixmap.c index 50870c4df4a..ab215b0ac30 100644 --- a/progs/xdemos/texture_from_pixmap.c +++ b/progs/xdemos/texture_from_pixmap.c @@ -43,6 +43,9 @@ static float top, bottom; +static PFNGLXBINDTEXIMAGEEXTPROC glXBindTexImageEXT_func = NULL; +static PFNGLXRELEASETEXIMAGEEXTPROC glXReleaseTexImageEXT_func = NULL; + static Display * OpenDisplay(void) @@ -60,10 +63,20 @@ OpenDisplay(void) screen = DefaultScreen(dpy); ext = glXQueryExtensionsString(dpy, screen); if (!strstr(ext, "GLX_EXT_texture_from_pixmap")) { - printf("GLX_EXT_texture_from_pixmap not supported by GLX\n"); + fprintf(stderr, "GLX_EXT_texture_from_pixmap not supported.\n"); exit(1); } + glXBindTexImageEXT_func = (PFNGLXBINDTEXIMAGEEXTPROC) + glXGetProcAddress((GLubyte *) "glXBindTexImageEXT"); + glXReleaseTexImageEXT_func = (PFNGLXRELEASETEXIMAGEEXTPROC) + glXGetProcAddress((GLubyte*) "glXReleaseTexImageEXT"); + + if (!glXBindTexImageEXT_func || !glXReleaseTexImageEXT_func) { + fprintf(stderr, "glXGetProcAddress failed!\n"); + exit(1); + } + return dpy; } @@ -241,14 +254,14 @@ BindPixmapTexture(Display *dpy, GLXPixmap gp) glGenTextures(1, &texture); glBindTexture(GL_TEXTURE_2D, texture); - glXBindTexImageEXT(dpy, gp, GLX_FRONT_LEFT_EXT, NULL); + glXBindTexImageEXT_func(dpy, gp, GLX_FRONT_LEFT_EXT, NULL); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); glEnable(GL_TEXTURE_2D); /* - glXReleaseTexImageEXT (display, glxpixmap, GLX_FRONT_LEFT_EXT); + glXReleaseTexImageEXT_func(display, glxpixmap, GLX_FRONT_LEFT_EXT); */ }