接着创建一个OpenGL状态信息,等一下创建窗口会用到。
cx = glXCreateContext(dpy, vi, None, GL_TRUE);
if (cx == NULL)
fatalError("could not create rendering context");
调用XCreateWindow函数,使用刚刚指定的视觉样式创建窗口。
cmap = XCreateColormap(dpy, RootWindow(dpy, vi->screen), vi->visual, AllocNone);
swa.colormap = cmap;
swa.border_pixel = 0;
swa.event_mask = KeyPressMask | ExposureMask | ButtonPressMask | StructureNotifyMask;
win = XCreateWindow(dpy, RootWindow(dpy, vi->screen), 0, 0,
glf_WinWidth, glf_WinHeight, 0, vi->depth, InputOutput, vi->visual,
CWBorderPixel | CWColormap | CWEventMask, &swa);
XSetStandardProperties(dpy, win, "main", "main", None, argv, argc, NULL);
再将刚刚创建的OpenGL状态信息,绑定到窗口。
glXMakeCurrent(dpy, win, cx);
最后,调用XMapWindow函数将窗口显示在桌面上就完成了。
XMapWindow(dpy, win);