| 62 | namespace faker { |
| 63 | |
| 64 | void *loadSymbol(const char *name, bool optional) |
| 65 | { |
| 66 | if(!name) |
| 67 | { |
| 68 | vglout.print("[VGL] ERROR: Invalid argument in loadSymbol()\n"); |
| 69 | safeExit(1); |
| 70 | } |
| 71 | if(!strncmp(name, "gl", 2)) |
| 72 | return loadGLSymbol(name, optional); |
| 73 | else if(!strncmp(name, "egl", 3)) |
| 74 | return loadEGLSymbol(name, optional); |
| 75 | #ifdef FAKEOPENCL |
| 76 | else if(!strncmp(name, "cl", 2)) |
| 77 | return loadOCLSymbol(name, optional); |
| 78 | #endif |
| 79 | #ifdef FAKEXCB |
| 80 | else if(!strcmp(name, "XGetXCBConnection") |
| 81 | || !strcmp(name, "XSetEventQueueOwner")) |
| 82 | return loadXCBX11Symbol(name, optional); |
| 83 | #endif |
| 84 | else if(!strncmp(name, "X", 1)) |
| 85 | return loadX11Symbol(name, optional); |
| 86 | #ifdef FAKEXCB |
| 87 | else if(!strncmp(name, "xcb_glx", 7)) |
| 88 | return loadXCBGLXSymbol(name, optional); |
| 89 | else if(!strncmp(name, "xcb_key", 7)) |
| 90 | return loadXCBKeysymsSymbol(name, optional); |
| 91 | else if(!strncmp(name, "xcb_", 4)) |
| 92 | return loadXCBSymbol(name, optional); |
| 93 | #endif |
| 94 | else |
| 95 | { |
| 96 | vglout.print("[VGL] ERROR: don't know how to load symbol \"%s\"\n", |
| 97 | name); |
| 98 | return NULL; |
| 99 | } |
| 100 | } |
| 101 | |
| 102 | } // namespace |
nothing calls this directly
no test coverage detected