1

バージョン 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 が定義されている場所を知っている人はいますか?

4

1 に答える 1

2

これは LColorf と呼ばれ、LVecBase4f の typedef です。これは、4 成分の浮動小数点値 (ベクトルや色など) の汎用 Panda3D クラスです。「f」は「float」を表します。利用可能な LColord typedef もあります。

これは Panda3D 1.8.0 での変更です。1.8.0 より前は、Colorf (先頭の L なし) と呼ばれていました。おそらく、ダウンロードしたサンプル プログラムは、以前のバージョン用に設計されたものです。関連するサンプル プログラムを変更して LColorf を使用するか、これらのヘッダーを含める前に以下を追加することを選択できます。

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

(または、必要に応じて typedef を使用することもできます。)

記録として、LColorf シンボルを使用可能にするために含める適切なヘッダー ファイルはluse.h. を含めないpanda_glext.hでください。OpenGL レンダラーでのみ使用されます。

于 2013-03-05T12:53:46.883 に答える