| 938 | |
| 939 | |
| 940 | void queryDrawable(Display *dpy, GLXDrawable draw, int attribute, |
| 941 | unsigned int *value) |
| 942 | { |
| 943 | if(fconfig.egl) |
| 944 | { |
| 945 | FakePbuffer *pb = NULL; |
| 946 | |
| 947 | if(!value) return; |
| 948 | |
| 949 | if(!draw || (pb = PBHASHEGL.find(draw)) == NULL) |
| 950 | { |
| 951 | faker::sendGLXError(dpy, X_GLXGetDrawableAttributes, GLXBadDrawable, |
| 952 | false); |
| 953 | return; |
| 954 | } |
| 955 | |
| 956 | switch(attribute) |
| 957 | { |
| 958 | case GLX_WIDTH: |
| 959 | *value = pb->getWidth(); |
| 960 | return; |
| 961 | case GLX_HEIGHT: |
| 962 | *value = pb->getHeight(); |
| 963 | return; |
| 964 | case GLX_PRESERVED_CONTENTS: |
| 965 | *value = 1; |
| 966 | return; |
| 967 | case GLX_LARGEST_PBUFFER: |
| 968 | *value = 0; |
| 969 | return; |
| 970 | case GLX_FBCONFIG_ID: |
| 971 | *value = pb->getFBConfig() ? pb->getFBConfig()->id : 0; |
| 972 | return; |
| 973 | default: |
| 974 | return; |
| 975 | } |
| 976 | } |
| 977 | else _glXQueryDrawable(DPY3D, draw, attribute, value); |
| 978 | } |
| 979 | |
| 980 | |
| 981 | Bool queryExtension(Display *dpy, int *majorOpcode, int *eventBase, |
no test coverage detected