我正在尝试为版本1.8构建Solar-System(C++)Panda3D示例。我遇到的问题是,在编译时出现错误:

clr; g++ -c ./solar_system/tut_solar_system.cpp -o ss.o -fPIC -L/usr/lib/panda3d -I/usr/include/python2.7 -I/usr/include/panda3d
./solar_system/../p3util/cOnscreenText.h:75:22: error: ‘Colorf’ does not name a type

我尝试编辑该文件,包括glew,glext和glut(由我的发行版提供),以及Panda3D提供的“panda_glext”,但这些都不提供ColorF。 (我正在使用archlinux,并且有glew,glext和freeglut。)

我不知道从哪里开始寻找。 Google让我失败了!有谁知道ColorF的定义位置?

最佳答案

它称为LColorf,它是LVecBase4f的typedef,它是四成分浮点值(例如 vector 和颜色)的通用Panda3D类。 “f”代表“float”;还有一个LColord typedef可用。

这是Panda3D 1.8.0中的更改。在1.8.0之前,它称为Colorf(不带前导L)。据推测,您下载的示例程序是为较早版本设计的。您可以将相关的示例程序更改为使用LColorf,或者可以选择在添加这些 header 之前添加以下内容:

#if PANDA_NUMERIC_VERSION >= 1008000
#define Colorf LColorf
#endif

(或者,如果您愿意,可以使用typedef。)

为了进行记录,要包括在内以使LColorf符号可用的适当头文件是luse.h。您不应包含panda_glext.h,它只能由OpenGL渲染器使用。

10-02 06:56