3 #include <msp/core/error.h>
11 DisplayOptions::DisplayOptions():
22 Window::Window(unsigned w, unsigned h)
31 Window::Window(const DisplayOptions &dopt)
38 XCloseDisplay(display);
41 void Window::init(const DisplayOptions &dopt)
43 display=XOpenDisplay(0);
45 throw Exception("Couldn't open X display");
48 attribs.push_back(GLX_BUFFER_SIZE);
49 attribs.push_back(dopt.depth);
50 attribs.push_back(GLX_DOUBLEBUFFER);
52 if(dopt.multisample>0)
54 attribs.push_back(GLX_SAMPLE_BUFFERS_ARB);
55 attribs.push_back(dopt.multisample);
58 XVisualInfo *visual=glXChooseVisual(display, DefaultScreen(display), &attribs.front());
60 throw Exception("Couldn't get a matching visual");
62 window=XCreateWindow(display, DefaultRootWindow(display), 0, 0, dopt.width, dopt.height, 0, CopyFromParent, InputOutput, visual->visual, 0, 0);