gpt4 book ai didi

c++ - GLUT 和 C++ 类

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:31:44 24 4
gpt4 key购买 nike

我不久前开始使用 OpenGL,使用 GLUT。您不能将成员函数传递给 GLUT 函数。 (或者就此而言指向成员的指针,尽管我并没有真正探索该选项)。

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

我知道还有其他库,例如 SFML,它们是用 C++ 编写的并提供基于 C++ 类的接口(interface),但我想知道关于 GLUT(确切地说是 freeglut)的可能性是什么。

最佳答案

首先,GLUT 不适用于严肃的应用程序工作。它用于简单的图形演示。为此目的,这很好。如果您发现自己尝试在 GLUT 中认真工作,您会发现自己花费大量时间来解决它的局限性。此限制只是您最终会遇到的众多限制之一。 GLFW,虽然仍然有这个限制(虽然下一个版本不会),但通常更适合严肃的应用程序工作。

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

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

关于c++ - GLUT 和 C++ 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7211422/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com