MCPcopy Create free account
hub / github.com/VirtualGL/virtualgl / subWinTest

Function subWinTest

server/fakerut.cpp:2821–3001  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

2819// subwindows
2820
2821int subWinTest(void)
2822{
2823 Display *dpy = NULL; Window win = 0, win1 = 0, win2 = 0;
2824 #ifdef FAKEXCB
2825 xcb_connection_t *conn = NULL;
2826 #endif
2827 TestColor clr(0);
2828 int dpyw, dpyh, retval = 1, lastFrame = 0;
2829 int glxattribs[] = { GLX_DOUBLEBUFFER, GLX_RGBA, GLX_RED_SIZE, 8,
2830 GLX_GREEN_SIZE, 8, GLX_BLUE_SIZE, 8, None };
2831 XVisualInfo *vis = NULL;
2832 GLXContext ctx = 0;
2833 XSetWindowAttributes swa;
2834
2835 printf("Subwindow destruction test:\n\n");
2836
2837 try
2838 {
2839 try
2840 {
2841 for(int i = 0; i < 20; i++)
2842 {
2843 if(!dpy && !(dpy = XOpenDisplay(0)))
2844 THROW("Could not open display");
2845 dpyw = DisplayWidth(dpy, DefaultScreen(dpy));
2846 dpyh = DisplayHeight(dpy, DefaultScreen(dpy));
2847
2848 if((vis = glXChooseVisual(dpy, DefaultScreen(dpy),
2849 glxattribs)) == NULL)
2850 THROW("Could not find a suitable visual");
2851
2852 Window root = RootWindow(dpy, DefaultScreen(dpy));
2853 swa.colormap = XCreateColormap(dpy, root, vis->visual, AllocNone);
2854 swa.border_pixel = 0;
2855 swa.background_pixel = 0;
2856 swa.event_mask = 0;
2857 if(!win && (win = XCreateWindow(dpy, root, 0, 0, dpyw / 2, dpyh / 2, 0,
2858 vis->depth, InputOutput, vis->visual,
2859 CWBorderPixel | CWColormap | CWEventMask, &swa)) == 0)
2860 THROW("Could not create window");
2861 if((win1 = XCreateWindow(dpy, win, 0, 0, dpyw / 2, dpyh / 2, 0,
2862 vis->depth, InputOutput, vis->visual,
2863 CWBorderPixel | CWColormap | CWEventMask, &swa)) == 0)
2864 THROW("Could not create subwindow");
2865 if((win2 = XCreateWindow(dpy, win1, 0, 0, dpyw / 2, dpyh / 2, 0,
2866 vis->depth, InputOutput, vis->visual,
2867 CWBorderPixel | CWColormap | CWEventMask, &swa)) == 0)
2868 THROW("Could not create subwindow");
2869 XMapSubwindows(dpy, win);
2870 XMapWindow(dpy, win);
2871
2872 lastFrame = 0;
2873 if(!(ctx = glXCreateContext(dpy, vis, NULL, True)))
2874 THROW("Could not create context");
2875 XFree(vis); vis = NULL;
2876 if(!(glXMakeCurrent(dpy, win2, ctx)))
2877 THROWNL("Could not make context current");
2878 clr.clear(GL_BACK);

Callers 1

mainFunction · 0.85

Calls 15

XOpenDisplayFunction · 0.85
glXChooseVisualFunction · 0.85
XCreateWindowFunction · 0.85
glXCreateContextFunction · 0.85
XFreeFunction · 0.85
glXMakeCurrentFunction · 0.85
glXSwapBuffersFunction · 0.85
glXDestroyContextFunction · 0.85
XCloseDisplayFunction · 0.85
XDestroyWindowFunction · 0.85
XDestroySubwindowsFunction · 0.85
XSetEventQueueOwnerFunction · 0.85

Tested by

no test coverage detected