| 855 | static char glxextensions[1024] = VGL_GLX_EXTENSIONS; |
| 856 | |
| 857 | static const char *getGLXExtensions(void) |
| 858 | { |
| 859 | const char *realGLXExtensions = fconfig.egl ? "" : |
| 860 | _glXQueryExtensionsString(DPY3D, DefaultScreen(DPY3D)); |
| 861 | |
| 862 | if(fconfig.egl) |
| 863 | { |
| 864 | faker::init3D(); |
| 865 | if((faker::eglMajor > 1 || (faker::eglMajor == 1 && faker::eglMinor >= 5)) |
| 866 | && !strstr(glxextensions, "GLX_ARB_create_context")) |
| 867 | strncat(glxextensions, |
| 868 | " GLX_ARB_create_context GLX_ARB_create_context_profile", |
| 869 | 1023 - strlen(glxextensions)); |
| 870 | if(!strstr(glxextensions, "GLX_EXT_framebuffer_sRGB")) |
| 871 | strncat(glxextensions, " GLX_EXT_framebuffer_sRGB", |
| 872 | 1023 - strlen(glxextensions)); |
| 873 | return glxextensions; |
| 874 | } |
| 875 | else |
| 876 | { |
| 877 | CHECKSYM_NONFATAL(glXCreateContextAttribsARB) |
| 878 | if(__glXCreateContextAttribsARB |
| 879 | && !strstr(glxextensions, "GLX_ARB_create_context")) |
| 880 | strncat(glxextensions, |
| 881 | " GLX_ARB_create_context GLX_ARB_create_context_profile", |
| 882 | 1023 - strlen(glxextensions)); |
| 883 | } |
| 884 | |
| 885 | if(strstr(realGLXExtensions, "GLX_ARB_create_context_robustness") |
| 886 | && !strstr(glxextensions, "GLX_ARB_create_context_robustness")) |
| 887 | strncat(glxextensions, " GLX_ARB_create_context_robustness", |
| 888 | 1023 - strlen(glxextensions)); |
| 889 | |
| 890 | if(strstr(realGLXExtensions, "GLX_ARB_fbconfig_float") |
| 891 | && !strstr(glxextensions, "GLX_ARB_fbconfig_float")) |
| 892 | strncat(glxextensions, " GLX_ARB_fbconfig_float", |
| 893 | 1023 - strlen(glxextensions)); |
| 894 | |
| 895 | if(strstr(realGLXExtensions, "GLX_EXT_create_context_es2_profile") |
| 896 | && !strstr(glxextensions, "GLX_EXT_create_context_es2_profile")) |
| 897 | strncat(glxextensions, " GLX_EXT_create_context_es2_profile", |
| 898 | 1023 - strlen(glxextensions)); |
| 899 | |
| 900 | if(strstr(realGLXExtensions, "GLX_EXT_fbconfig_packed_float") |
| 901 | && !strstr(glxextensions, "GLX_EXT_fbconfig_packed_float")) |
| 902 | strncat(glxextensions, " GLX_EXT_fbconfig_packed_float", |
| 903 | 1023 - strlen(glxextensions)); |
| 904 | |
| 905 | if(strstr(realGLXExtensions, "GLX_EXT_framebuffer_sRGB") |
| 906 | && !strstr(glxextensions, "GLX_EXT_framebuffer_sRGB")) |
| 907 | strncat(glxextensions, " GLX_EXT_framebuffer_sRGB", |
| 908 | 1023 - strlen(glxextensions)); |
| 909 | |
| 910 | CHECKSYM_NONFATAL(glXFreeContextEXT) |
| 911 | CHECKSYM_NONFATAL(glXImportContextEXT) |
| 912 | CHECKSYM_NONFATAL(glXQueryContextInfoEXT) |
| 913 | if(__glXFreeContextEXT && __glXImportContextEXT && __glXQueryContextInfoEXT |
| 914 | && !strstr(glxextensions, "GLX_EXT_import_context")) |
no test coverage detected