[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[b-free: 2060] Re: Xlib interfaceの存在価値 (was: BTK)
隆一です。
X サーバとディスプレイプリミティブの組み合わせは何とおりか考えることが
できます:
1) X サーバを改造してディスプレイプリミティブの API を提供する。
(X からは画面描画のための機能を流用するにとどめる(ライブラリは、提
供しない))
2) X サーバはそのままで、X プロトコルをしゃべるディスプレイプリミティ
ブマネージャを作る(ディスプレイプリミティブは Xlib をリンクする)。
3) X サーバと Xlib はそのままで、Xlib の上にライブラリとしてディスプレ
イプリミティブを作る。アプリケーションは、Xlib とディスプレイプリミ
ティブの両方を呼び出すことができる(画面情報の整合性は?)。
やすしさんと平松さんは 3) を、落合さんは 1) を主張していると思います。
私は、1) か 2) がよくて、作る労力からすると、1) の方が軽いように思いま
す(ディスプレイプリミティブサーバをひとつ作るだけでいいから)。
3) の作りかたでは多分ディスプレイプリミティブは作れないのではないかと
思います。
From: hiramatu@cdrom.co.jp
Subject: [b-free: 2058] Re: Xlib interfaceの存在価値 (was: BTK)
Date: Tue, 08 Sep 1998 13:09:55 +0900
> 平松です。
>
> > > > たとえば、ディスプレイプリミティブが独自の管理情報をもっている場合、問
> > > > 題があると思います。これは、アプリケーションから X を使えるようにした
> > > > 場合でも問題になりますが。
> > >
> > > 自分が思っていた方法なら、display primitiveの情報はもちろん API を通して
> > > 受け取ります。たとえ Xlibを直接使ったからと行って display primitive API
> > > に、accessできないわけではないですから。
> >
> > いや、だからアプリケーションが Xlib に直接アクセスすると、ディスプレイ
> > プリミティブの内部情報と X サーバ側とで不一致が生じるんじゃないですか?
> > これは、アプリケーションがディスプレイプリミティブを呼び出せるとしても
> > 解決できません。
>
> display primitive と Xlib は同時に使ってはいけない、ということにしては
> どうでしょう……って、そんな問題ではない?
display primitive と Xlib は同時に使えないという実装は可能だと思います
が、それでは意味がないでしょう。X11 ベースのアプリケーションと BTRON
のアプリケーションが(同じ画面で)同時に動かないということですから。
ディスプレイプリミテイブは、X11 サーバのように、システム内でひとつだけ
存在するものです。そして、ディスプレイプリミティブ内部で、独自に情報を
もっています。ライブラリのようにプロセス毎に存在していて、データも別々
に管理しているものではありません。アプリケーションが X サーバに直接ア
クセスしてしまうと、ディスプレイプリミティブのもっている情報と X11 の
実際の画面とで不一致が生じてしまいます。
これを避けるには、アプリケーションが X11 に直接アクセスしたということ
をディスプレイプリミティブに知らせる必要があります。でも、それだったら
ディスプレイプリミティブを介したアクセスに限定する方がいいでしょう。
> > > display primitiveがlibraryでも情報を持つことになりますか?
> >
> > えーと、ディスプレイプリミティブはライブラリで実装できるんでしょうか?
> >
> > プロセス間で共有する情報(システム内で共有している情報)はないですか?
> > それがあると、ライブラリとしてディスプレイプリミティブを実装するのは
> > 難しいでしょう。
>
> おそらくここでは display primitive を Xlib 上のライブラリとして実装
> できない、とおっしゃっていると思うのですが、それでは display primitive
> を X Protocol を直接やり取りするライブラリとして作るということでしょう
> か。
「Xlib 上」ということは気にしていません。
ディスプレイプリミティブを実装するときに、ライブラリという形態ではでき
ないのではないか? ということを問題にしています。
ディスプレイプリミティブが X のプロトコルをしゃべるかどうかについては、
Xlib をディスプレイプリミティブにリンクしてしまえば済む話です。
(共有ライブラリの仕組みがない以上、静的リンクになってしまいますが)
> そんなわけで、「プロセス間で共有する情報」を何とかするには、X Protocol
> 自体を拡張した上で、display primitive を X Protocol で通信するライブラリ
> にするというのがいいのではないかと思います。X サーバに新たな機能が付け加
> わるわけですね。またはウィンドウシステムに X を使うのはやっぱりやめる、
> とか。
>
> できれば Xlib 上に作った方が楽だとは思いますが……。
ディスプレイプリミティブが情報を保持できるようにプロセスとして作って、
Xlib をリンクしたら労力は相当軽減できるのでは?
ディスプレイプリテミィブをライブラリとして作ることにこだわる理由はなん
でしょうか?
> 私の書いた所には間違いがあるかも。私は X をよく知ってるわけではないし、
> ディスプレイプリミティブはもっと知らないのです。
おそらく、アプリケーションが X11 をアクセスした方がいいという主張をさ
れている方は、ディスプレイプリミティブが X の Toolkit のように作れると
考えていると思います。私は、これだとおそらくうまくいかないと思っていま
す。むしろ、SUN の X11/News のような形態になるのではないでしょうか?
p----------------------------------------------------------------------q
| FROM R.Night |
| E-mail: |
| rnaitoh@st.rim.or.jp |
| Key fingerprint = 89 EB 77 95 40 C0 3C CC 37 A1 A7 FA 1C 66 FF D0 |
b----------------------------------------------------------------------d