[過去ログ] SDLスレ (987レス)
前次1-
抽出解除 レス栞

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
569
(3): sgi_rocks [sage] 04/09/08 00:55 ID:hVzmkiI8(1/2) AAS
>>568
568(1): 531 ◆pm4Rr1N8T6 [sage] 04/09/07 03:58 ID:s0fkyrDg(2/2) AAS
外部リンク[zip]:gamdev.org
昨日バグ潰したんだった。
あと、README のメッセージに関する説明を細かくしておいた。
仕様を確定させたつもりは無いから、
ウィンドウシステム固有の問題とかあったら連絡お願い。
基本的な仕様は現在ので良いと思います。
ひとつ提案があるとすれば、SDL_PollEventでイベントがなかった場合にIM関連のイベントを調べるのではなく、
User DefineなイベントをSDLのイベントキューに入れて、SDL_PollEventのループ内で他のイベントと同じように
処理できるようになればよいかな、と思いました。

>>566
566(1): 564 [sage] 04/09/07 02:23 ID:aIh9QYNB(1) AAS
それっぽく動いたけど、キー取りこぼすし、終了できないし。
プロトコルとかまで調べないといかんかなぁ。。。
だれかXIMの挙動に詳しい人っている?
私も531さんの仕様に沿った形で、XIMでの実装していたのですが、なかなか難しいですね(汗。
というのも、win32.cのように、自分でprocを作って、そっちで必要なものを処理した後、
SDLのprocにメッセージを渡す、というような形が取れれば一番良いと思うのですが、
X Window Systemでは、イベントが起こるたびに呼ばれるコールバック関数を設定する、というのはなく、
SDLが常にイベントを見るためにループしてるので、どうやってイベントをSDLより先に取得するかで悩んでます。
一応、XReparentWindowとかいう関数で、無理やり自分の作ったwindowをSDLの描写windowの親にして、
wmwindowの方はXUnmapWindow関数でマップをはずす事でなんとかSDLより先にイベントを取れるようになったのですが、
今度はXIMの仕様でなかなかわからなくて・・・。

XIMでは変換だけIMに任す、というのはできないらしく、必ず
何を入力しているのか、というのがXIMによって描写されてしまっている感じがします。
なので、変換中の文字列が取得できるにしても、すでにXIMによって画面に描写されている感じになってしまうかもしれません。
もしXやXIMに詳しい方がいらっしゃれば、その辺り教えて頂けると嬉しいです。
571
(3): 564 [sage] 04/09/08 03:05 ID:/gyCnV3K(1) AAS
あ、かぶってしまった >>569
外部リンク[zip]:gamdev.org
kinput2 + canna で一応動いた。test/main.cは書換え無しでほぼ同じ挙動をするはず。
skkinputでは動かなかった。
on-the-spot とかいうスタイルを使えば描画も全部アプリケーション側でいけるはず。

いちいち全部描画をアプリケーションでやるのは面倒なこともあるかもしれんので、
ネイティブなIMEウィンドウで描画する方法もあったらいいかもしれんと思う。 >>仕様

>>570
570(1): sgi_rocks [sage] 04/09/08 01:07 ID:hVzmkiI8(2/2) AAS
長くてすいません(汗。
なんかサイトとか立ち上げた方が良い気がしてきたりしますがどうでしょう?
たしかに、あったら助かるかも。
574: 名前は開発中のものです。 [sage] 04/09/08 12:44 ID:4F4ga2pg(1/4) AAS
>>569
> どうやってイベントをSDLより先に取得するかで悩んでます。
一応こんなもんがあるよ。
外部リンク[html]:www.tacoworks.jp
ただ、これを使っても、SDL 自体の処理がタコで
ユーザーにイベントを回してこないことがある。
win32.c では SDL が一部のイベントを握り潰していたから
自分で Win32API 側のイベントを奪い取るしか無かった。
あと、アプリケーション開発側のユーザーが
SDL_inputmethod と同時に自前で SDL_SetEventFilter() を使った場合、
きちんと古い SDL_EventFilter を呼んでくれない危険性もあるね。
575: 名前は開発中のものです。 [sage] 04/09/08 13:09 ID:4F4ga2pg(2/4) AAS
>>571
おお、やった!
っていうか SDL_EventFilter 使ってたんだね。

> ネイティブなIMEウィンドウで描画する方法もあったらいいかもしれんと思う。 >>仕様
SDL_rwops や SDL_rotozoom みたいに本体と分離できないかな。
SDL_inputmethod 自体に描画を入れるのを嫌がってるのは
ユーザーに何らかの制約を課したくないだけだからなんだけど、
ほら、使わない場合にまでわざわざ SDL_ttf を入れるのって面倒じゃない。
もっとプリミティブな部分を前面に押し出していった方が
ユーザーとしても使いやすいと思ってたんだけど、そうでもないのかな。
そういう意味で
>>569
> User DefineなイベントをSDLのイベントキューに入れて、SDL_PollEventのループ内で他のイベントと同じように
> 処理できるようになればよいかな
とも考えてたんだけど、
IME 処理は SDL 本体のイベントループと別の場所で
単純に処理できた方が楽だと思ってわざと今の仕様にした。
仕様に関しては他の人の意見も参考にしたい。

>>572
572(1): sgi_rocks [sage] 04/09/08 10:28 ID:Z7GwucVh(1/3) AAS
>>571
すごいです。Fedora Core 2(XIM + canna)で試しましたが、Windowsと同じように動作しました。
on-the-spotだとコールバック関数設定できたんですか(汗。思いつかなかったです。

一応サイトを作ってみました。
もし良かったら使って下さい。
外部リンク:p56.aaacafe.ne.jp
あらら、SourceForge.jp にでもプロジェクト立てればいいやと思ってたんだけど、
それは大体出来てからでいいかな。
っていうか LGPL で問題無い?

>>573
573(1): sgi_rocks [sage] 04/09/08 10:35 ID:Z7GwucVh(2/3) AAS
>>571
すごいです。Fedora Core 2(XIM + canna)で試しましたが、Windowsと同じように動作しました。
on-the-spotだとコールバック関数設定できたんですか(汗。思いつかなかったです。

一応サイトを作ってみました。
もし良かったら使って下さい。
外部リンク:p56.aaacafe.ne.jp
おちけつ

ちょっと家に帰ったらテストプログラム修正する。
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.036s