筆者の環境ではInterl版Macでは上手く画像が表示されません。余裕があれば、他のIntel Macでも動作確認を行ってみたいと思っていますが、なかなか自由に使えるIntel Macが無いものですから...特に、筆者の場合はLeopardのX11をhttp://xquartz.macosforge.org/trac/wikiに従って頻繁にアップデートしているため、デフォルトのLeopardの環境と異なる事もあります。
もしIntel MacのLeopardで上手く動作したのであれば、参考までに実行環境等までご連絡いただけると幸いです。
Mac OS X 10.3 Panther上でOpenInventor(TM)をインストールした経験のある方なら、http://www.memention.com/ivscriptをご存知かと思います。本ページにて提案する方法はこのivscriptにて記載していある方法を元に、コンパイルオプションと若干のファイルの修正を行っただけですので、まずこちらの情報を参考にOpenInventor(TM)のソース、finkを用いた関連ライブラリのインストールをおよびパッチを入手します。
このivscriptにある手順をまとめると下記の通りです。
(Leopardのbison 2.3ではソースファイル中のyaccファイルを上手く処理できません。筆者はyaccファイルの修正には自信が無いので、手っ取り早くMacOS X 10.3上のbison 1.28では正常に処理できていたことから古いbisonをインストールする事としました)
ここまでくれば後はソースのパッチ当てとコンパイルのみです
/usr/bin/g++ -L//usr/lib -multiply_defined suppress -L/usr/X11R6/lib -L/sw/lib -L/sw/lib/freetype2/lib -lm -L../../../lib -L../../../libSoXt -L/usr/lib/gcc/powerpc-apple-darwin9/4.0.1 -L/Developer/SDKs/MacOSX10.4u.sdk/usr/X11R6/lib/ componentTest.o libInventorWidget.a -lInventor -lInventorXt -lGLw -lXi -lXm -lXt -lX11 -lGLU -lGL -liconv -ldl -lstdc++.6 -lmx -lgcc_s.10.5 -lgcc -dylib_file /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGL.dylib:/System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGL.dylib -o componentTest Undefined symbols: "_glwM2DrawingAreaWidgetClass", referenced from: _glwM2DrawingAreaWidgetClass$non_lazy_ptr in libInventorWidget.a(MyTextureEd.o) ld: symbol(s) not found collect2: ld returned 1 exit status make[3]: *** [componentTest] Error 1 make[2]: *** [all] Error 2 make[1]: *** [all] Error 1 make: *** [all] Error 1
echo > samples/widgets/componentTest
上手くapps以下のコンパイルが終了すれば、apps/tools/ivview/ivviewなどができているはずです。PowerPC MaCであればivviewで、手持ちのOpenInventorファイルが上手く表示できるか確認してみてください。
先のcomponentTestにおける"_glwM2DrawingAreaWidgetClass"に関するエラーがlibInventorWidget.a(MyTextureEd.o)にあることから、InventorWidgetを利用するプログラムでは正常にコンパイルあるいは動作しない可能性があります。
Intel Macではコンパイルは終了しても残念ながら正常に画面が表示されません。"Warning: Cannot find callbak list in XtAddCallback"が多数出力され、一面グレーの画面(画面左上に少しだけ何か表示される)となり、役に立ちません。画面表示を行わないプログラムならば実行可能かと思いますが、バイナリデータの読み込みには問題があります。
コンパイル前にlib/database/include/Inventor/elements/SoTextureQualityElement.hの87行目のデフォルト値0.5を0.9などに しておくと、いちいちプログラムやデータファイル中でデフォルト値を上げずに品質の良いテクスチャマッピングが得られます。
ご意見等はまで