Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(16)

Side by Side Diff: third_party/glew/src/glew.c

Issue 525109: linux: dynamically load libGL.so.1, and use glew to dynamically resolve symbols (Closed)
Patch Set: . Created 10 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « third_party/glew/include/GL/glxew.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 ** The OpenGL Extension Wrangler Library 2 ** The OpenGL Extension Wrangler Library
3 ** Copyright (C) 2002-2008, Milan Ikits <milan ikits[]ieee org> 3 ** Copyright (C) 2002-2008, Milan Ikits <milan ikits[]ieee org>
4 ** Copyright (C) 2002-2008, Marcelo E. Magallon <mmagallo[]debian org> 4 ** Copyright (C) 2002-2008, Marcelo E. Magallon <mmagallo[]debian org>
5 ** Copyright (C) 2002, Lev Povalahev 5 ** Copyright (C) 2002, Lev Povalahev
6 ** All rights reserved. 6 ** All rights reserved.
7 ** 7 **
8 ** Redistribution and use in source and binary forms, with or without 8 ** Redistribution and use in source and binary forms, with or without
9 ** modification, are permitted provided that the following conditions are met: 9 ** modification, are permitted provided that the following conditions are met:
10 ** 10 **
(...skipping 8847 matching lines...) Expand 10 before | Expand all | Expand 10 after
8858 #ifdef WGL_OML_sync_control 8858 #ifdef WGL_OML_sync_control
8859 CONST_CAST(WGLEW_OML_sync_control) = wglewGetExtension("WGL_OML_sync_control") ; 8859 CONST_CAST(WGLEW_OML_sync_control) = wglewGetExtension("WGL_OML_sync_control") ;
8860 if (glewExperimental || WGLEW_OML_sync_control|| crippled) CONST_CAST(WGLEW_OM L_sync_control)= !_glewInit_WGL_OML_sync_control(GLEW_CONTEXT_ARG_VAR_INIT); 8860 if (glewExperimental || WGLEW_OML_sync_control|| crippled) CONST_CAST(WGLEW_OM L_sync_control)= !_glewInit_WGL_OML_sync_control(GLEW_CONTEXT_ARG_VAR_INIT);
8861 #endif /* WGL_OML_sync_control */ 8861 #endif /* WGL_OML_sync_control */
8862 8862
8863 return GLEW_OK; 8863 return GLEW_OK;
8864 } 8864 }
8865 8865
8866 #elif !defined(__APPLE__) || defined(GLEW_APPLE_GLX) 8866 #elif !defined(__APPLE__) || defined(GLEW_APPLE_GLX)
8867 8867
8868 PFNGLXQUERYEXTENSIONPROC __glewXQueryExtension = NULL;
8869 PFNGLXQUERYVERSIONPROC __glewXQueryVersion = NULL;
8870 PFNGLXGETCONFIGPROC __glewXGetConfig = NULL;
8871 PFNGLXCHOOSEVISUALPROC __glewXChooseVisual = NULL;
8872 PFNGLXCREATEGLXPIXMAPPROC __glewXCreateGLXPixmap = NULL;
8873 PFNGLXDESTROYGLXPIXMAPPROC __glewXDestroyGLXPixmap = NULL;
8874 PFNGLXCREATECONTEXTPROC __glewXCreateContext = NULL;
8875 PFNGLXDESTROYCONTEXTPROC __glewXDestroyContext = NULL;
8876 PFNGLXISDIRECTPROC __glewXIsDirect = NULL;
8877 PFNGLXCOPYCONTEXTPROC __glewXCopyContext = NULL;
8878 PFNGLXMAKECURRENTPROC __glewXMakeCurrent = NULL;
8879 PFNGLXGETCURRENTCONTEXTPROC __glewXGetCurrentContext = NULL;
8880 PFNGLXGETCURRENTDRAWABLEPROC __glewXGetCurrentDrawable = NULL;
8881 PFNGLXWAITGLPROC __glewXWaitGL = NULL;
8882 PFNGLXWAITXPROC __glewXWaitX = NULL;
8883 PFNGLXSWAPBUFFERSPROC __glewXSwapBuffers = NULL;
8884 PFNGLXUSEXFONTPROC __glewXUseXFont = NULL;
8885
8886 PFNGLXQUERYEXTENSIONSSTRINGPROC __glewXQueryExtensionsString = NULL;
8887 PFNGLXGETCLIENTSTRINGPROC __glewXGetClientString = NULL;
8888 PFNGLXQUERYSERVERSTRINGPROC __glewXQueryServerString = NULL;
8889
8868 PFNGLXGETCURRENTDISPLAYPROC __glewXGetCurrentDisplay = NULL; 8890 PFNGLXGETCURRENTDISPLAYPROC __glewXGetCurrentDisplay = NULL;
8869 8891
8870 PFNGLXCHOOSEFBCONFIGPROC __glewXChooseFBConfig = NULL; 8892 PFNGLXCHOOSEFBCONFIGPROC __glewXChooseFBConfig = NULL;
8871 PFNGLXCREATENEWCONTEXTPROC __glewXCreateNewContext = NULL; 8893 PFNGLXCREATENEWCONTEXTPROC __glewXCreateNewContext = NULL;
8872 PFNGLXCREATEPBUFFERPROC __glewXCreatePbuffer = NULL; 8894 PFNGLXCREATEPBUFFERPROC __glewXCreatePbuffer = NULL;
8873 PFNGLXCREATEPIXMAPPROC __glewXCreatePixmap = NULL; 8895 PFNGLXCREATEPIXMAPPROC __glewXCreatePixmap = NULL;
8874 PFNGLXCREATEWINDOWPROC __glewXCreateWindow = NULL; 8896 PFNGLXCREATEWINDOWPROC __glewXCreateWindow = NULL;
8875 PFNGLXDESTROYPBUFFERPROC __glewXDestroyPbuffer = NULL; 8897 PFNGLXDESTROYPBUFFERPROC __glewXDestroyPbuffer = NULL;
8876 PFNGLXDESTROYPIXMAPPROC __glewXDestroyPixmap = NULL; 8898 PFNGLXDESTROYPIXMAPPROC __glewXDestroyPixmap = NULL;
8877 PFNGLXDESTROYWINDOWPROC __glewXDestroyWindow = NULL; 8899 PFNGLXDESTROYWINDOWPROC __glewXDestroyWindow = NULL;
(...skipping 156 matching lines...) Expand 10 before | Expand all | Expand 10 after
9034 GLboolean __GLXEW_SGIX_visual_select_group = GL_FALSE; 9056 GLboolean __GLXEW_SGIX_visual_select_group = GL_FALSE;
9035 GLboolean __GLXEW_SGI_cushion = GL_FALSE; 9057 GLboolean __GLXEW_SGI_cushion = GL_FALSE;
9036 GLboolean __GLXEW_SGI_make_current_read = GL_FALSE; 9058 GLboolean __GLXEW_SGI_make_current_read = GL_FALSE;
9037 GLboolean __GLXEW_SGI_swap_control = GL_FALSE; 9059 GLboolean __GLXEW_SGI_swap_control = GL_FALSE;
9038 GLboolean __GLXEW_SGI_video_sync = GL_FALSE; 9060 GLboolean __GLXEW_SGI_video_sync = GL_FALSE;
9039 GLboolean __GLXEW_SUN_get_transparent_index = GL_FALSE; 9061 GLboolean __GLXEW_SUN_get_transparent_index = GL_FALSE;
9040 GLboolean __GLXEW_SUN_video_resize = GL_FALSE; 9062 GLboolean __GLXEW_SUN_video_resize = GL_FALSE;
9041 9063
9042 #endif /* !GLEW_MX */ 9064 #endif /* !GLEW_MX */
9043 9065
9066 #ifdef GLX_VERSION_1_1
9067
9068 static GLboolean _glewInit_GLX_VERSION_1_1 (GLXEW_CONTEXT_ARG_DEF_INIT) {
9069 GLboolean r = GL_FALSE;
9070
9071 r = ((glXQueryExtension = (PFNGLXQUERYEXTENSIONPROC)glewGetProcAddress((const GLubyte*)"glXQueryExtension")) == NULL) || r;
9072 r = ((glXQueryVersion = (PFNGLXQUERYVERSIONPROC)glewGetProcAddress((const GLub yte*)"glXQueryVersion")) == NULL) || r;
9073 r = ((glXGetConfig = (PFNGLXGETCONFIGPROC)glewGetProcAddress((const GLubyte*)" glXGetConfig")) == NULL) || r;
9074 r = ((glXChooseVisual = (PFNGLXCHOOSEVISUALPROC)glewGetProcAddress((const GLub yte*)"glXChooseVisual")) == NULL) || r;
9075 r = ((glXCreateGLXPixmap = (PFNGLXCREATEGLXPIXMAPPROC)glewGetProcAddress((cons t GLubyte*)"glXCreateGLXPixmap")) == NULL) || r;
9076 r = ((glXDestroyGLXPixmap = (PFNGLXDESTROYGLXPIXMAPPROC)glewGetProcAddress((co nst GLubyte*)"glXDestroyGLXPixmap")) == NULL) || r;
9077 r = ((glXCreateContext = (PFNGLXCREATECONTEXTPROC)glewGetProcAddress((const GL ubyte*)"glXCreateContext")) == NULL) || r;
9078 r = ((glXDestroyContext = (PFNGLXDESTROYCONTEXTPROC)glewGetProcAddress((const GLubyte*)"glXDestroyContext")) == NULL) || r;
9079 r = ((glXIsDirect = (PFNGLXISDIRECTPROC)glewGetProcAddress((const GLubyte*)"gl XIsDirect")) == NULL) || r;
9080 r = ((glXCopyContext = (PFNGLXCOPYCONTEXTPROC)glewGetProcAddress((const GLubyt e*)"glXCopyContext")) == NULL) || r;
9081 r = ((glXMakeCurrent = (PFNGLXMAKECURRENTPROC)glewGetProcAddress((const GLubyt e*)"glXMakeCurrent")) == NULL) || r;
9082 r = ((glXGetCurrentContext = (PFNGLXGETCURRENTCONTEXTPROC)glewGetProcAddress(( const GLubyte*)"glXGetCurrentContext")) == NULL) || r;
9083 r = ((glXGetCurrentDrawable = (PFNGLXGETCURRENTDRAWABLEPROC)glewGetProcAddress ((const GLubyte*)"glXGetCurrentDrawable")) == NULL) || r;
9084 r = ((glXWaitGL = (PFNGLXWAITGLPROC)glewGetProcAddress((const GLubyte*)"glXWai tGL")) == NULL) || r;
9085 r = ((glXWaitX = (PFNGLXWAITXPROC)glewGetProcAddress((const GLubyte*)"glXWaitX ")) == NULL) || r;
9086 r = ((glXSwapBuffers = (PFNGLXSWAPBUFFERSPROC)glewGetProcAddress((const GLubyt e*)"glXSwapBuffers")) == NULL) || r;
9087 r = ((glXUseXFont = (PFNGLXUSEXFONTPROC)glewGetProcAddress((const GLubyte*)"gl XUseXFont")) == NULL) || r;
9088
9089 r = ((glXQueryExtensionsString = (PFNGLXQUERYEXTENSIONSSTRINGPROC)glewGetProcA ddress((const GLubyte*)"glXQueryExtensionsString")) == NULL) || r;
9090 r = ((glXGetClientString = (PFNGLXGETCLIENTSTRINGPROC)glewGetProcAddress((cons t GLubyte*)"glXGetClientString")) == NULL) || r;
9091 r = ((glXQueryServerString = (PFNGLXQUERYSERVERSTRINGPROC)glewGetProcAddress(( const GLubyte*)"glXQueryServerString")) == NULL) || r;
9092
9093 return r;
9094 }
9095
9096 #endif
9097
9044 #ifdef GLX_VERSION_1_2 9098 #ifdef GLX_VERSION_1_2
9045 9099
9046 static GLboolean _glewInit_GLX_VERSION_1_2 (GLXEW_CONTEXT_ARG_DEF_INIT) 9100 static GLboolean _glewInit_GLX_VERSION_1_2 (GLXEW_CONTEXT_ARG_DEF_INIT)
9047 { 9101 {
9048 GLboolean r = GL_FALSE; 9102 GLboolean r = GL_FALSE;
9049 9103
9050 r = ((glXGetCurrentDisplay = (PFNGLXGETCURRENTDISPLAYPROC)glewGetProcAddress(( const GLubyte*)"glXGetCurrentDisplay")) == NULL) || r; 9104 r = ((glXGetCurrentDisplay = (PFNGLXGETCURRENTDISPLAYPROC)glewGetProcAddress(( const GLubyte*)"glXGetCurrentDisplay")) == NULL) || r;
9051 9105
9052 return r; 9106 return r;
9053 } 9107 }
(...skipping 485 matching lines...) Expand 10 before | Expand all | Expand 10 after
9539 r = ((glXGetVideoResizeSUN = (PFNGLXGETVIDEORESIZESUNPROC)glewGetProcAddress(( const GLubyte*)"glXGetVideoResizeSUN")) == NULL) || r; 9593 r = ((glXGetVideoResizeSUN = (PFNGLXGETVIDEORESIZESUNPROC)glewGetProcAddress(( const GLubyte*)"glXGetVideoResizeSUN")) == NULL) || r;
9540 r = ((glXVideoResizeSUN = (PFNGLXVIDEORESIZESUNPROC)glewGetProcAddress((const GLubyte*)"glXVideoResizeSUN")) == NULL) || r; 9594 r = ((glXVideoResizeSUN = (PFNGLXVIDEORESIZESUNPROC)glewGetProcAddress((const GLubyte*)"glXVideoResizeSUN")) == NULL) || r;
9541 9595
9542 return r; 9596 return r;
9543 } 9597 }
9544 9598
9545 #endif /* GLX_SUN_video_resize */ 9599 #endif /* GLX_SUN_video_resize */
9546 9600
9547 /* ------------------------------------------------------------------------ */ 9601 /* ------------------------------------------------------------------------ */
9548 9602
9549 typedef const char* ( * PFNGLXGETCLIENTSTRINGPROC) (Display *dpy, int name); 9603 #if !defined(GLEW_MX)
9604 GLenum glxewInit () {
9605 if (_glewInit_GLX_VERSION_1_1(GLEW_CONTEXT_ARG_VAR_INIT)) return GLEW_ERROR_GL X_VERSION_11_ONLY;
9606
9607 return GLEW_OK;
9608 }
9609 #endif
9550 9610
9551 GLboolean glxewGetExtension (const char* name) 9611 GLboolean glxewGetExtension (const char* name)
9552 { 9612 {
9553 GLubyte* p; 9613 GLubyte* p;
9554 GLubyte* end; 9614 GLubyte* end;
9555 GLuint len = _glewStrLen((const GLubyte*)name); 9615 GLuint len = _glewStrLen((const GLubyte*)name);
9556 static PFNGLXGETCLIENTSTRINGPROC __glewXGetClientString = NULL; 9616 static PFNGLXGETCLIENTSTRINGPROC __glewXGetClientString = NULL;
9557 /* if (glXQueryExtensionsString == NULL || glXGetCurrentDisplay == NULL) retur n GL_FALSE; */ 9617 /* if (glXQueryExtensionsString == NULL || glXGetCurrentDisplay == NULL) retur n GL_FALSE; */
9558 /* p = (GLubyte*)glXQueryExtensionsString(glXGetCurrentDisplay(), DefaultScree n(glXGetCurrentDisplay())); */ 9618 /* p = (GLubyte*)glXQueryExtensionsString(glXGetCurrentDisplay(), DefaultScree n(glXGetCurrentDisplay())); */
9559 if (__glewXGetClientString == NULL) { 9619 if (__glewXGetClientString == NULL) {
9560 __glewXGetClientString = (PFNGLXGETCLIENTSTRINGPROC) glewGetProcAddress((con st GLubyte *)"glXGetClientString"); 9620 __glewXGetClientString = (PFNGLXGETCLIENTSTRINGPROC) glewGetProcAddress((con st GLubyte *)"glXGetClientString");
9561 } 9621 }
9562 if (__glewXGetClientString == NULL) return GL_FALSE; 9622 if (__glewXGetClientString == NULL) return GL_FALSE;
9563 if (glXGetCurrentDisplay == NULL) return GL_FALSE; 9623 if (glXGetCurrentDisplay == NULL) return GL_FALSE;
9564 p = (GLubyte*)__glewXGetClientString(glXGetCurrentDisplay(), GLX_EXTENSIONS); 9624 p = (GLubyte*)__glewXGetClientString(glXGetCurrentDisplay(), GLX_EXTENSIONS);
9565 if (0 == p) return GL_FALSE; 9625 if (0 == p) return GL_FALSE;
9566 end = p + _glewStrLen(p); 9626 end = p + _glewStrLen(p);
9567 while (p < end) 9627 while (p < end)
9568 { 9628 {
9569 GLuint n = _glewStrCLen(p, ' '); 9629 GLuint n = _glewStrCLen(p, ' ');
9570 if (len == n && _glewStrSame((const GLubyte*)name, p, n)) return GL_TRUE; 9630 if (len == n && _glewStrSame((const GLubyte*)name, p, n)) return GL_TRUE;
9571 p += n+1; 9631 p += n+1;
9572 } 9632 }
9573 return GL_FALSE; 9633 return GL_FALSE;
9574 } 9634 }
9575 9635
9576 typedef Bool (* PFNGLXQUERYVERSIONPROC) (Display *dpy, int *major, int *minor);
9577
9578 GLenum glxewContextInit (GLXEW_CONTEXT_ARG_DEF_LIST) 9636 GLenum glxewContextInit (GLXEW_CONTEXT_ARG_DEF_LIST)
9579 { 9637 {
9580 int major, minor; 9638 int major, minor;
9581 static PFNGLXQUERYVERSIONPROC __glewXQueryVersion = NULL; 9639 static PFNGLXQUERYVERSIONPROC __glewXQueryVersion = NULL;
9582 if (__glewXQueryVersion == NULL) { 9640 if (__glewXQueryVersion == NULL) {
9583 __glewXQueryVersion = (PFNGLXQUERYVERSIONPROC) glewGetProcAddress((const GLu byte *)"glXQueryVersion"); 9641 __glewXQueryVersion = (PFNGLXQUERYVERSIONPROC) glewGetProcAddress((const GLu byte *)"glXQueryVersion");
9584 } 9642 }
9585 if (__glewXQueryVersion == NULL) return GL_FALSE; 9643 if (__glewXQueryVersion == NULL) return GL_FALSE;
9586 /* initialize core GLX 1.2 */ 9644 /* initialize core GLX 1.2 */
9587 if (_glewInit_GLX_VERSION_1_2(GLEW_CONTEXT_ARG_VAR_INIT)) return GLEW_ERROR_GL X_VERSION_11_ONLY; 9645 if (_glewInit_GLX_VERSION_1_2(GLEW_CONTEXT_ARG_VAR_INIT)) return GLEW_ERROR_GL X_VERSION_11_ONLY;
(...skipping 3306 matching lines...) Expand 10 before | Expand all | Expand 10 after
12894 } 12952 }
12895 #endif 12953 #endif
12896 } 12954 }
12897 } 12955 }
12898 ret = (len == 0); 12956 ret = (len == 0);
12899 } 12957 }
12900 return ret; 12958 return ret;
12901 } 12959 }
12902 12960
12903 #endif /* _WIN32 */ 12961 #endif /* _WIN32 */
OLDNEW
« no previous file with comments | « third_party/glew/include/GL/glxew.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698