コード例 #1
0
ファイル: GLCanvas.java プロジェクト: andreyvit/yoursway-swt
 /**
  * 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;
 }