小澤様 from Yas
巻末のメールに関して,補足いたします.
OpenGLを起動直後のグラフィック出力直後には, displayの後にmyidleからのprintfが,
(親プロセスの)ktermの画面に,1回のみ出力されております.(すなわち,IdleFuncの
記述は誤っていないことになります.)
その後, myidleからのprintfの出力が止まってしまいます(myidleのコールがなされ
なくなります.)
グラフィック出力のWindowを移動すると,グラフィックは正常に出力され, displayが
コールされていることがprintfの出力からもわかるのですが, その後も,myidleからの
printfの出力がでません.
すなわち, myidleは,1回だけ正常にコールされていますが, その後, コールされなく
なっている様に見えます.
以上,補足申し上げます.
Delivered-To: vine-users@xxxxxxxxxxx
Date: Sun, 14 Dec 2003 19:27:09 +0000
From: Yasushi Sugimura <yas@xxxxxxxxxxxxxxxxxxxx>
Reply-To: vine-users@xxxxxxxxxxx
Subject: [vine-users:063457] Re: OpenGLのアクティブウインドウに関しまして
To: vine-users@xxxxxxxxxxx (vine-users ML)
X-ML-Name: vine-users
X-Mail-Count: 063457
X-MLServer: fml [fml 3.0pl#17]; post only (only members can post)
X-ML-Info: If you have a question, send e-mail with the body"help"
(without quotes) to the address
vine-users-ctl@xxxxxxxxxxx;help=<mailto:vine-users-ctl@xxxxxxxxxxx?body=help>
X-Mailer: QUALCOMM Windows Eudora Version 5.0.2-J
X-Sender: yas@xxxxxxxxxxxxxxxxxxxxxxxxx
Lines: 66
小澤様 from杉村
At 08:57 03/12/14 Sunday, you wrote:
小澤です.
From: Yasushi Sugimura <yas@xxxxxxxxxxxxxxxxxxxx>
Subject: [vine-users:063455] Re: OpenGL のアクティブウインドウに関しまして
Date: Sun, 14 Dec 2003 13:53:04 +0000
> > > OpenGLでのプログラムでは, displayでグラフィックを書いて, アイドル
> > > コールバックで, glutPostRedisplayを実行しているので, OpenGLのWindow
> > > に, 親プロセスが書き込んだデータで描画する筈と思っているのですが.....
> > > (そこに基本的な認識ミスがありますのでしょうか?)
> > >
> > > 親プロセスのKtermのウインドウがアクティブな場合, OpenGLのWindow
> > > には,アイドルコールバックではglutPostRedisplayだけではdisplayをコール
> > > してくれないのでしょうか?
> >glutDisplayFunc() に display() を指定していて,
> >glutIdleFunc() で glutPostRedisplay() を実行していて,
> >glutMainLoop() で回っているのですよね?
> おっしゃる通りでございます.
> 他のウインドウを移動して,重ねると, 本来出力すべきグラフィックが正常に出
力 され
> ます.
> XのBackingStoreとは何なのかよくわからなかったのですが, Webで調べまく
った結果,
> /etc/X11/XF86Config-4とXF86Config内には, BackingStoreの 記述はありま
せ んでした.
> (いれてもみましたが状況は変化しませんでした.)
BackingStore が効いていてるかどうかは,xdpyinfo の出力で options: を
確認するのが確実です.
noとなっておりました.
> 上記状況から再度考えますと, どうも, IdleFuncで指定したルーチンが
コー ルされて
> ないような
> 感じがするのでございますが...........お宮入りになりそうな気配でございます.
glutIdleFunc() で呼んでいる関数内と glutDisplayFunc() で呼んでいる関数
内で,何かを出力させてみて確認してはどうでしょうか?
glutPostRedisplay() が呼んであるのであれば,何もしない状態で
glutIdleFunc() と glutDisplayFunc() が交互に呼ばれ続けているはずです.
そのとき,実際に描画に使用しているデータと,メモリ上で書き換えたデータ
を出力することが可能であれば,正しく呼ばれているのかと,正しいデータが
使われているのが分かると思います.
printfをdisplayとmyidle(IdleFuncの関数)に埋め込みました.
ウインドウを動かすと, displayのprintfの出力がkterm画面に5〜6個でますが,
myidleからのprintfはでませんので, IdleFuncの関数がコールされて
いない様です.......(すみません,息子が今日帰ってきますので....
帰えらなければなりません...., 次のメール見るのは,翌朝になります......)
取り急ぎ御礼申し上げます.
*******************************************
********************** Linux User since 1999 March. 素人無線局
世界中に友達を沢山作っ* JA6EET/1 (Handle:YAS) Op.License No.AAPA17
て, 何時かキットキット * yas@xxxxxxxxxxxxxxxxxxxx : Yasushi Sugimura
世界中の友達を訪ね回っ* (欧文電信大好き派) ひたちなか市は578 杉村 康
て見たいヨ! ヨ! 夢? * Ibaraki National College of Technology
*****************************************************************
*************************************************
杉村 康
国立茨城工業高等専門学校 電子情報工学科
〒312-8508 茨城県ひたちなか市中根866
TEL 029-271-2954 FAX 029-273-3771(学科事務室)
E-mail yas@xxxxxxxxxxxxxxxxxxxx
*************************************************