このコードはウィンドウを完全に作成し、opengl コンテキストを初期化します。
Display *dpy( XOpenDisplay( NULL );
int screen = XDefaultScreen( dpy );
const int fbCfgAttribslist[] =
{
GLX_RENDER_TYPE, GLX_RGBA_BIT,
GLX_DRAWABLE_TYPE, GLX_PBUFFER_BIT,
None
};
int nElements = 0;
GLXFBConfig * glxfbCfg = glXChooseFBConfig( dpy,
screen,
fbCfgAttribslist,
& nElements );
const int pfbCfg[] =
{
GLX_PBUFFER_WIDTH, WINDOW_WIDTH,
GLX_PBUFFER_HEIGHT, WINDOW_HEIGHT,
GLX_PRESERVED_CONTENTS, True,
GLX_LARGEST_PBUFFER, False,
None
};
GLXPbuffer pBufferId = glXCreatePbuffer( dpy, glxfbCfg[ 0 ], pfbCfg );
XVisualInfo * visInfo = glXGetVisualFromFBConfig( dpy, glxfbCfg[ 0 ] );
GLXContext glCtx = glXCreateContext( dpy, visInfo, NULL, True );
glXMakeContextCurrent( dpy,
pBufferId,
pBufferId,
glCtx );
実際には、これはウィンドウではなく pbuffer を設定していますが、あなたの場合、ウィンドウを作成し、ビジュアルを設定したので、最初の部分をスキップして、opengl コンテキストの作成に進むことができます。