[SML 7621] Ubuntu 9.04でJunのOpenGL examplesを表示させる方法を教えてください

hirowadenden hirowadenden @ hera.eonet.ne.jp
2009年 8月 8日 (土) 11:34:29 JST


はじめまして。
ハンドル名で失礼します、hirowadendenと申します。
今までに何度となく挫折していますが、性懲りもなくまたSmalltalkを勉強しよ
うと思っています。

Ubuntu 9.04(i386版)にVisualWorks7.6ncとJun781をインストールし、Junのイン
ストール確認のためにJun LauncherのexpamplesのCube, Benzenなどを起動した
のですが、OpenGL関連のexamplesはビューの中身が表示されません。正しく表示
するための方法もしくはヒントをご教示ください。なお、Soroban, Spiro
Design, Cartoon MovieなどOpenGLではないexamplesは正しく表示されています。

[環境]
VisualWorks7.6NC ("じゅん for Smalltalk"ページのインストール方法を参考
に、CD-ROMイメージから必要なファイルを解凍してインストール)
Jun781 ("じゅん for Smalltalk"ページのインストール方法を参考に、パーセル
からインストール)
※ libGL.so, libGLU.so, libX11.so, libXext.soが存在しないので、
/usr/local/libの下に以下のシンボリックリンクを作成:
 libGL.so -> /usr/lib/libGL.so.1
 libGLU.so -> /usr/lib/libGLU.so.1
 libX11.so -> /usr/lib/libX11.so.6
 libXext.so -> /usr/lib/libXext.so.6
上記リンク先は、さらに以下のようなシンボリックリンクになっています:
 /usr/lib/libGL.so.1 -> libGL.so.1.2
 /usr/lib/libGLU.so.1 -> libGLU.so.1.3.070300
 /usr/lib/libX11.so.6 -> libX11.so.6.2.0
 /usr/lib/libXext.so.6 -> libXext.so.6.4.0

OS: Ubuntu 9.04 (Linux 2.6.28-14-generic i686)
CPU: AMD Athlon(tm) Dual Core Processor 4850e
メインメモリ: 2GByte
チップセット: AMD 690G + ATI SB600
オンボードグラフィック: ATI Radeon X1250 (自動でメインメモリから128MByte
割当て)
ビデオドライバ: the open-source "radeon" driver
<glxinfoから抜粋の情報>
direct rendering: Yes
server glx vendor string: SGI
server glx version string: 1.2
client glx vendor string: SGI
client glx version string: 1.4GLX version: 1.2
OpenGL vendor string: DRI R300 Project
OpenGL renderer string: Mesa DRI R300 20060815 x86/MMX+/3DNow!+/SSE2 NO-TCL
OpenGL version string: 1.3 Mesa 7.4

[やったこと]
(1)"Jun Launcher"のexamplesからOpenGL関連のexampleを起動
・"Jun Launcher"のexamplesからCube, BenzenなどOpenGL関連のexampleを起動
すると、Viewfinderのウインドウが開き、メニューやホイールは表示されるが、
ビューの中身は真っ白である。
・Viewfinderのウインドウを閉じると、VisualWorksを起動したシェル画面に以
下のようなメッセージがでる。
    X11 Error:
    Display:	0x095809b0
    Serial:	0x0000879e
    Major:	154
    Minor:	15
    XID:	0x040000ed
    GLXBadDrawable

(2)"JunOpenGLInterface example1"を"Do it"(これは正常に動作)
・"Do it"したウインドウ内にカラフルな六角形が表示され、マウスボタンをク
リックすると、ウインドウ内の表示が"Do it"する前に戻る。

(3)"JunOpenGLInterface example2"を"Do it"
・"Depth32Image"というタイトルのウインドウが開くが、ウインドウの中身は
真っ白である。
・"Depth32Image"というタイトルのウインドウが開くときに、VisualWorksを起
動したシェル画面に以下のようなメッセージがでる。(閉じるときにはメッセー
ジはでない)
    X11 Error:
    Display:	0x095809b0
    Serial:	0x000276fb
    Major:	154
    Minor:	15
    XID:	0x04000163
    GLXBadDrawable

(4)"JunOpenGLInterface glVersion."を"Inspect it"
・a ByteStringが返されるが、中身は空('')。('1.3 Mesa 7.4'となるべき?)

(5)"JunOpenGLInterface glVersion."を"Debug it"
・Stepping intoで順に追っていくと、JunGLMesaInterface>>glGetString: でエ
ラーになり、_errorCodeはa SystemError(#'bad handle',nil)になっており、こ
こで続行(Run)すると、"Unhandled exception: bad hadle"とExceptionのウイン
ドウが開く。(4)の詳細を追うことができない。

(6)"JunOpenGLInterface gluVersion."を"Inspect it"(これは正常に動作)
・a ByteStringが返され、中身は'1.3'。

(7)"JunOpenGLInterface gluVersion."を"Debug it"
・Stepping intoで順に追っていくと、JunGLMesaInterface>>gluGetString: で
エラーになり、_errorCodeはa SystemError(#'bad handle',nil)になっており、
ここで続行(Run)すると、"Unhandled exception: bad hadle"とExceptionのウイ
ンドウが開く。(6)では正常に動作していたのに、"Debug it"すると例外が発生
してしまう。

(8)(本件とは関係ないかもしれませんが)Jun4Java729をSun jdk1.5.0_18上で実
行し、"じゅんランチャー"の実例集からキューブ, ベンゼンを起動
・デフォルトOpenGLビューがJunGLCanvasのときは正常に表示される。
・デフォルトOpenGLビューがJunGLJPanelのときはJun for Smalltalkと同じく
ビューファインダのウインドウが開きメニューやホイールは表示されるが、
ビューの中身は表示されない。

(1)〜(3)を"Debug it"で追うのは手強そうだったので、(4)〜(7)を試しました
が、普通に実行するのと、"Debug it"で実行するのでは結果が違うので分からな
くなってしまいました。
Jun4Javaでは表示できているので、Jun for SmalltalkでもOpenGLのexamplesを
表示できるのではないかと思っています。どんなことでも結構ですので、ご教示
いただきたくお願い致します。

-- hirowadenden



SML メーリングリストの案内