/** * Returns a GLData object describing the created context. * * @return GLData description of the OpenGL context attributes * @exception SWTException * <ul> * <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver * </ul> */ public GLData getGLData() { checkWidget(); int /*long*/ window = OS.GTK_WIDGET_WINDOW(handle); int /*long*/ xDisplay = OS.gdk_x11_drawable_get_xdisplay(window); GLData data = new GLData(); int[] value = new int[1]; GLX.glXGetConfig(xDisplay, vinfo, GLX.GLX_DOUBLEBUFFER, value); data.doubleBuffer = value[0] != 0; GLX.glXGetConfig(xDisplay, vinfo, GLX.GLX_STEREO, value); data.stereo = value[0] != 0; GLX.glXGetConfig(xDisplay, vinfo, GLX.GLX_RED_SIZE, value); data.redSize = value[0]; GLX.glXGetConfig(xDisplay, vinfo, GLX.GLX_GREEN_SIZE, value); data.greenSize = value[0]; GLX.glXGetConfig(xDisplay, vinfo, GLX.GLX_BLUE_SIZE, value); data.blueSize = value[0]; GLX.glXGetConfig(xDisplay, vinfo, GLX.GLX_ALPHA_SIZE, value); data.alphaSize = value[0]; GLX.glXGetConfig(xDisplay, vinfo, GLX.GLX_DEPTH_SIZE, value); data.depthSize = value[0]; GLX.glXGetConfig(xDisplay, vinfo, GLX.GLX_STENCIL_SIZE, value); data.stencilSize = value[0]; GLX.glXGetConfig(xDisplay, vinfo, GLX.GLX_ACCUM_RED_SIZE, value); data.accumRedSize = value[0]; GLX.glXGetConfig(xDisplay, vinfo, GLX.GLX_ACCUM_GREEN_SIZE, value); data.accumGreenSize = value[0]; GLX.glXGetConfig(xDisplay, vinfo, GLX.GLX_ACCUM_BLUE_SIZE, value); data.accumBlueSize = value[0]; GLX.glXGetConfig(xDisplay, vinfo, GLX.GLX_ACCUM_ALPHA_SIZE, value); data.accumAlphaSize = value[0]; GLX.glXGetConfig(xDisplay, vinfo, GLX.GLX_SAMPLE_BUFFERS, value); data.sampleBuffers = value[0]; GLX.glXGetConfig(xDisplay, vinfo, GLX.GLX_SAMPLES, value); data.samples = value[0]; return data; }