GLUT和C类

我刚刚开始使用OpenGL,使用GLUT.您不能将成员函数传递给GLUT函数. (或指向成员的指示,尽管我没有真正探索那个选项).

我想知道是否有“体面”的方式,或者解决这个问题的“最体面”方式是什么?我知道你可以使用静态成员函数,但是没有更好的方法吗?

我知道还有其他库,比如用C语言编写的SFML并提供基于C类的接口,但我想知道GLUT的可能性是什么(确切地说是freeglut).

首先,GLUT不适用于严肃的应用工作.这是简单的图形演示.为此,它很好.如果你发现自己试图在GLUT中做认真的工作,你会发现自己花了很多时间来解决它的局限性.这种限制只是您最终会遇到的许多限制之一. GLFW虽然仍然具有这种限制(尽管下一版本不会),但对于严肃的应用工作来说通常是优越的.

其次,解决这个问题的“最体面”方式取决于你正在做什么.如果你只有一个窗口,那么正确的解决方案只是一个简单的静态函数,它可以将全局指针(或返回全局指针的函数)发送到你感兴趣的任何类.

如果你有多个窗口,那么你需要的是一个全局std :: map,它从GLUT的窗口标识符映射到指向某个对象的指针.然后,您可以获取调用特定函数的窗口,并使用映射将该调用转发到表示该窗口的特定对象.

相关文章
相关标签/搜索