有没有办法获得opengl上下文的大小?或者至少估计它的大小?如果是,怎么样?
我有一个过剩的应用程序,它创建了几个窗口。由于过剩不会在窗口之间共享opengl上下文,因此每个窗口都会创建新窗口。现在,我正在尝试减少所需的内存,因为它适用于嵌入式系统。但是如果opengl上下文小到足以忽略它,那么我不会看到内存使用量的大幅减少。
我找到this patch来创建具有共享opengl上下文的窗口:
Windows用户的一个小附录(作者:Misbah Qidwai):我将这个子程序添加到glut_win.c中。我使用这个例程来调用wglSharedLists()
//MQ
/* CENTRY */
GLXContext APIENTRY
glutGetWindowRenderContext(int win)
{
GLUTwindow *window;
if (win < 1 || win > __glutWindowListSize) {
__glutWarning("glutSetWindow attempted on bogus window.");
return NULL;
}
window = __glutWindowList[win - 1];
if (!window) {
__glutWarning("glutSetWindow attempted on bogus window.");
return NULL;
}
return window->renderCtx;
}
答案 0 :(得分:2)
OpenGL上下文是一个抽象的东西。支持特定上下文的数据量可以与指针一样小,也可以大到几兆字节。上下文本身不是某种数据结构,它只是程序和图形系统共享的句柄,因此彼此“知道”对方正在谈论的内容。
在特定配置中了解的唯一方法是测量它。