| 955 | // corresponding 3D X server FB config. |
| 956 | |
| 957 | int glXGetConfig(Display *dpy, XVisualInfo *vis, int attrib, int *value) |
| 958 | { |
| 959 | VGLFBConfig config; int retval = 0; |
| 960 | |
| 961 | TRY(); |
| 962 | |
| 963 | if(IS_EXCLUDED(dpy)) |
| 964 | return _glXGetConfig(dpy, vis, attrib, value); |
| 965 | |
| 966 | if(!dpy) return GLX_NO_EXTENSION; |
| 967 | if(!vis) return GLX_BAD_VISUAL; |
| 968 | if(!value) return GLX_BAD_VALUE; |
| 969 | |
| 970 | ///////////////////////////////////////////////////////////////////////////// |
| 971 | OPENTRACE(glXGetConfig); PRARGD(dpy); PRARGV(vis); PRARGIX(attrib); |
| 972 | STARTTRACE(); |
| 973 | ///////////////////////////////////////////////////////////////////////////// |
| 974 | |
| 975 | if((config = matchConfig(dpy, vis)) != 0) |
| 976 | { |
| 977 | if(attrib == GLX_USE_GL) |
| 978 | { |
| 979 | if(vis->c_class == TrueColor || vis->c_class == DirectColor) *value = 1; |
| 980 | else *value = 0; |
| 981 | } |
| 982 | else if(attrib == GLX_RGBA) |
| 983 | { |
| 984 | if((glxvisual::getFBConfigAttrib(dpy, config, |
| 985 | GLX_RENDER_TYPE) & GLX_RGBA_BIT) != 0) |
| 986 | *value = 1; |
| 987 | else *value = 0; |
| 988 | } |
| 989 | else retval = backend::getFBConfigAttrib(dpy, config, attrib, value); |
| 990 | } |
| 991 | else |
| 992 | { |
| 993 | *value = 0; |
| 994 | if(attrib != GLX_USE_GL) retval = GLX_BAD_VISUAL; |
| 995 | } |
| 996 | |
| 997 | ///////////////////////////////////////////////////////////////////////////// |
| 998 | STOPTRACE(); if(value) { PRARGIX(*value); } else { PRARGX(value); } |
| 999 | CLOSETRACE(); |
| 1000 | ///////////////////////////////////////////////////////////////////////////// |
| 1001 | |
| 1002 | CATCH(); |
| 1003 | return retval; |
| 1004 | } |
| 1005 | |
| 1006 | |
| 1007 | GLXContext glXGetCurrentContext(void) |
no test coverage detected