我有一个使用 Glut 完成的项目,其中大多数子窗口具有相同的行为,除了不完全显示相同的东西(现在的图像)。
我想尽可能地重用代码,并决定对每个事件使用一个回调,所有窗口都将其用于特定事件。
他们是从回调内部确定哪个子窗口接收到事件的方法吗?
目标是做这样的事情(因为禁止指向成员方法的指针):
MyWindow* window1;
MyWindow* window2;
MyWindow* window3;
...
void callbacksReshape(int w, int h)
{
if("window 1")
window1->reshape(int w, int h);
if("window 2")
window2->reshape(int w, int h);
if("window 3")
window3->reshape(int w, int h);
}
谢谢大家的回答!
编辑:我知道glutGetWindow
,问题是:glutSetWindow
在调用回调函数之前是否会调用 Glut。