SDLスレ
■ このスレッドは過去ログ倉庫に格納されています
0001login:Penguin
01/11/11 17:59ID:u0HMN7qCSDLについてのスレッドです。
最新情報、参考になるソース、質問等
とりあえず、本山
http://www.libsdl.org/
0534名前は開発中のものです。
04/08/27 17:57ID:cER7lJgy0535531 ◆pm4Rr1N8T6
04/08/27 18:27ID:hR9vryWfうーん、すっげー適当な調査しかしてないんだけど、処理の流れとしては
1.SDL_GetWMInfo() でウィンドウシステム固有の情報を受け取る
2.IME が処理してる情報をコールバックで拝借する
3.共有 API によってウィンドウシステムに依存しない情報を得られるようにする
って感じが良さそうな気がする。
共有 API で取得できるべき情報はこんなとこだろうか。
・現在の漢字入力の ON/OFF
・現在入力中の文字列
・変換確定を行ったかどうかの情報
・確定後の文字列
わー、よくわからない!
結局変換中の小さいウィンドウを出す座標も設定出来ないと駄目だよなー。
Qt のソースでも読もうかな。
↓続く
0536531 ◆pm4Rr1N8T6
04/08/27 18:28ID:hR9vryWfSDL_SysWMinfo の定義には
・X11
・Nano-X
・Win32
・RiscOS
があるね。
BeOS とか Amiga とかは最初は無視しといていいかな。
Mac はどうしよう。随分前に調べたんだけど情報を見付けることができなかった。
情報リンク
http://home.catv.ne.jp/pp/ginoue/im/index.html
日本語入力プログラミング
http://www.hmug.org/man/3/XmbLookupString.html
XmbLookupString() の man (ごめん、UNIX よくわからない)
http://www.kumei.ne.jp/c_lang/sdk3/sdk_278.htm
IME の操作@猫でもわかるプログラミング
0537sgi_rocks
04/08/28 00:26ID:IBxR98vc共通のAPIを提供しておいて、そのAPIが各々のOSの
ネイティブな入力機構を使うのに賛成です。
Mac OS Xに関しては、X11を使っている場合に限っては、
Linuxなどと同じX11経由の入力機構が使えると思います。
私はLinuxでSDLを動かしているので、X11(XIM経由)を少しやってみます。
0538sgi_rocks
04/08/28 02:14ID:IBxR98vcそれらを含めたSDLを使ったGUIを提供した方が良いのでしょうか?
入力している時の、変換候補などの表示や、入力欄の事を考えると、
そこだけ他のGUIと違ってしまうのも変な感じがしなくもないのです。
簡単なGUIも一緒に提供するのも良いかもしれない、と思うのですがどうでしょう。
0539529
04/08/28 13:34ID:D9fRqR5kとりあえずmainはSDL_mainに置換されるという話なのでもちろんint main(int argc, char* argv[])
は書いているのですが、それでもError: 外部シンボル '_main' が未解決(E:\BCC55\LIB\C0W32.OBJ が参照)
が表示されるというのは謎ですね…。このエラーメッセージが何を言っているかがいまいちよく分からないのですが、
多分システムからコールバックされるべき_main、が無いってことなんですかね?
SDLmain.libでそっちの方が定義されてるはずなのに…orz
>>538
私は完璧に素人なのでこんなことにコメントするのもちとあれなのですが、
GUIごと提供してくれるとかなり便利そうな気もしますね。
0540名前は開発中のものです。
04/08/28 15:30ID:YZXmLvihとりえあず日本語入力機構だけを提供した方がいいと思います.
GUIは結局アプリケーション作る人次第な気がするので…
0541名前は開発中のものです。
04/08/28 15:58ID:QqhNTGOxよくあのペースで発表・発売できるもんだよ。
俺も将来はあのくらいの会社をもちたい。
0542名前は開発中のものです。
04/08/28 16:01ID:QqhNTGOx誤爆です。
0543531 ◆pm4Rr1N8T6
04/08/28 16:23ID:doDxlGS3GUI 部分はあとからでも付け足せるから先に入力機構だけでいいんじゃないかな。
と思いながら Win32 部分を作ってたんだけどさ、
まさか編集可能なウィンドウ(テキストボックスなど)が付いてないと
IME を入力可能状態にできないウィンドウシステムってある?
どうも上手くいかないんだけど、Win32 とかはそうなってるのかな。
うーん、ちょっと怖いなあ。GUI セットじゃないと厳しいかな。
とりあえず共通 API は、
・ネイティブな C で書く
・初期化関数で構造体を生成してポインタを返し、終了関数で開放
・ポリモーフィズムは構造体内に関数へのポインタを保持することで実装
・各処理系ごとにプリプロセッサで分岐し、初期化関数内の処理を切り分ける
って感じでいいかな。
SDL 本体内部の SDL_rwops や、多くの SDL 系ライブラリで使用されてる方法だから、
ソースを読めばもっと具体的な実現方法は把握できると思う。
ある程度各処理系の情報、実装の方向性がまとまってきたら、
共通 API を作るためのフレームワークを実装するよ。
一応 smpeg みたいな例もあるし、C++ で書いても問題は無いと思うけど、どっちがいいかな。
0544529
04/08/29 10:00ID:o5xfi0oD公式ページからSDL.dllをダウンロードしてきてimplibでSDL.libを生成して、
SDL_win32_main.cをコンパイルしてSDL_main.libを作っても駄目でした。
最近のソースにはBorland用のライブラリ一式があるんですがあれは使っていいのでしょうかね?
Error: 外部シンボル '_main' が未解決(E:\BCC55\LIB\C0X32.OBJ が参照)
もう見飽きた…orz
0545名前は開発中のものです。
04/08/29 12:50ID:dvcQQr7Q一応、念のため聞いておくが、
SDL.libはリンクしているけどSDL_main.libをリンクし忘れているなんてことは無いよな?
0546名前は開発中のものです。
04/08/29 14:02ID:iNpWlI3a-L/usr/local/lib -lmingw32 -lSDLmain -lSDL -mwindows
0547名前は開発中のものです。
04/08/29 14:57ID:dvcQQr7Qそれ、cygwinの場合でしょ?>>529の場合はbccらしいから同じとは限らないし。
0548名前は開発中のものです。
04/08/29 15:00ID:dvcQQr7Q0549名前は開発中のものです。
04/08/29 17:36ID:Vt1Safbsオプションを-Wにしてみろ。
0550529
04/08/29 19:35ID:o5xfi0oDSDL.libとSDL_main.libは同じフォルダにおいてフォルダにリンクをしてるので
多分し忘れということは無いと思うんですが…。
>>549
-Wを入れると今度は
Error: 外部シンボル 'WinMain' が未解決(E:\BCC55\LIB\C0W32.OBJ が参照)
となるんでどうしたものか…。
一応構造的にはSDL_main.libの_mainやらWinMainがコールバックされてそこから
mainが置換されたSDLmainの方に制御が移されるんですよね?
それともそれをやるにはコンパイルするときにコマンドラインオプションが必要とか?
もうわけわかんないです…。
0551名前は開発中のものです。
04/08/29 20:24ID:iNpWlI3a0552名前は開発中のものです。
04/08/29 23:02ID:hlhX5yl6> 一応構造的にはSDL_main.libの_mainやらWinMainがコールバックされてそこから
> mainが置換されたSDLmainの方に制御が移されるんですよね?
どう考えてるのかよくわかんないんだけど、実際には
1. SDL_win32_main.c の中の WinMain() が呼ばれる
2. その WinMain() が consol_main() を経由して SDL_main() を呼ぶ
3. SDL_win32_main.c が SDL_main.h を include しており、
その中で main() が SDL_main() として define されている
という作りになってる。
要するに、SDLmain.lib の中の WinMain() によって起動して、
その WinMain() が君のソースの中の main() を呼ぶって仕組み。
WinMain() で起動するために -W オプションは必須だね。
BCC が使う OMF っていうオブジェクトファイル、ライブラリファイルの形式では
関数の頭にアンダーバーを付けることになってるっぽい。
従って、main() をリンクする時には _main って部分を探すんだよ。
「bcc32.exe に -W オプションをきちんとつけて」
「`SDLmain.lib' と、`main() のあるソースから作った .obj ファイル' の両方をきちんとリンクする」
というプロセスが必要だよ。
常にどれかが抜けてるんだと思う。
0553531 ◆pm4Rr1N8T6
04/08/29 23:55ID:hlhX5yl6このまんまじゃ入力状態を取得できないなー。
表示すらしてないわけだから入力事態が行われてなさそう。
やっぱり GUI をセットにしないと駄目っぽい。
とりあえず、枠線付けただけのテキストボックスを CreateWindow() して
その GUI 内で IME による入力をできるようにしてみるよ。
こういうアプローチを取ると IME による入力部分だけ
OS 依存のフォント表示になってしまうけど、
その辺はもっと煮詰めてから考えることにする。
0554529
04/08/31 00:00ID:QiRAdHy60557sgi_rocks
04/08/31 04:06ID:hQvLtj9ASDL_PeekEventかなんかで定期的にチェックするのが良いのかも、と思っています。
最初はSDL_SysWMinfoのwindowのIDを使って、イベント自体を自分でマップしようとしていたのですが、
どうもSDL自体がマップしようとしてるイベント等と衝突する可能性もありそうなので、
イベント自体はすべてSDLに任せといて、SDL_Event構造体にある、SDL_WMMsg(やったっけ?)のwindow
に対するメッセージをチェックしつつ、もしそれがIM関連だった場合のみIM関連のものを実行するのが良いかもしれません。
実際にテストでやってみて、できたらまた書きます。
OpenGL使ってる場合は、別にコンテキストが用意されてるみたいなのですが、
WindowsでのOpenGLの扱いがどうなってるかは良くわからないので時間かかるかもしれませんが・・・。
0558531 ◆pm4Rr1N8T6
04/09/01 04:52ID:Iu2ojuI1子ウィンドウ(この場合テキストボックス)を作るために SDL_SysWMinfo を使ってるって意味で言ってたんだけど、
アプローチが違うから伝わってなかったみたいでごめん。
で、Windows 側でテキストボックス(エディットコントロール)を置いてみたんだけど、
どーしてもキーボードからの文字入力ができない。
まあよく考えると DirectX や OpenGL を使ってプライマリに描画されると
子ウィンドウは消えてしまうから元々この方法じゃ駄目かも知れないけど、
貼り付けや切り取りなんかはできるのに
一切の文字の入力ができないのはやっぱりおかしい。
と思ってソース読んでみたら、SDL め、
メッセージループでキーボードイベントを SDL の中に取り込んだあと
Windows 標準のウィンドウプロシージャーに渡さず破棄してる。
当然ウィンドウにキーボードイベントは通達されず、文字入力は不可能。
ALT+F4 での終了や ALT+SPACE でのメニュー出現が動かないのもこのせい。
そこで SDL_WMmsg を使ってみようとしたんだけど、
SDL で拾えなかったものだけを扱ってるもんだから
Windows 固有のキーボードイベントは破棄されててどうやっても取得できない。
もう一段ウィンドウプロシージャを噛ませるしか無いかな。
こりゃ大変だ……
0559531 ◆pm4Rr1N8T6
04/09/01 04:56ID:Iu2ojuI10560名前は開発中のものです。
04/09/01 10:29ID:Ph6g14fmAnthyのライブラリを使って自前で漢字変換するようにすればよいのではないかと思った。
sdlskkも同じような方式だっけ?なら同じようなのを増やしても意味無いな・・・。
0561名前は開発中のものです。
04/09/01 22:55ID:M+Pa7IBI意味あると思うよ。
skkは操作系がかなり独特だから対象ユーザが限られるけど、
Anthyなら普段は別のIMEを使用している人もそれほど違和感なく使えると思うし。
0562sgi_rocks
04/09/02 04:11ID:fDohgGN6ゲームのWindowと別のWindowを作ってそこで入力するのであれば、
それは既にやった事があります。(gtk+-2.xを使いました)
ゲームのWindow内に直接入力したいな、と思ってます。
恐らく、SDL_ttfを使うことになると思います。
>>560
自分で変換エンジンを作ってしまうのもよいのですが、
なるべく、ユーザーが使っているIMをそのまま使えるようにしようと思っていたので、
cannaやanthyではなく、XIMやIIIMFを操作する方法を探っています。
ただ、anthyなどを使って変換してしまうのも一つの手段ですし、
比較的簡単にできるかもしれませんね。
今少し時間がなかったりするので何もできてないのですが、
とりあえず私はXIMを操作する方向でやってみる予定です。
0563531 ◆pm4Rr1N8T6
04/09/05 01:18ID:O4WY3ynxhttp://gamdev.org/up/img/1165.zip
中身の test.zip の中にサンプル入れてある。
現在 Win32 用の処理のみ。
自分で IME 処理を実装することもできるから、
フリーな IME があったら自分で機能を追加できるよ。
まだテストが不十分だからあちこちにバグがありそう。注意!
>>562
いや、Windows 標準の入力機構を使おうとしたってこと。
Windows では、テキスト入力部分もウィンドウの一種として扱われてるんだよ。
あと、SDL_ttf は仕様レベルでのバグもあるし、
文字描画エンジンをユーザーが選ぶことができなくなるからできれば使いたくないなあ。
一応、上のライブラリでは単純な変換状況取得しかできないようになってる。
ライブラリの使い方サンプルプログラムでは SDL_ttf を使って描画した。
0564名前は開発中のものです。
04/09/05 21:21ID:gDPcDraAそれをXFilterEventしてやればXIMでも大丈夫なような気がしてきたのでちょいやってみます。
0565531 ◆pm4Rr1N8T6
04/09/05 22:36ID:Po72KKsfソースがぐちゃぐちゃだったのであちこち修正。
ついでにバグを潰して間に合わせだった仕様も結構変えてしまった。
昨日のを落としてた人ごめんなさい。
>>564
がんばれー
0566564
04/09/07 02:23ID:aIh9QYNBプロトコルとかまで調べないといかんかなぁ。。。
だれかXIMの挙動に詳しい人っている?
0567531 ◆pm4Rr1N8T6
04/09/07 03:52ID:s0fkyrDgインストール途中でこけるなあ。
とりあえず、MacOS 9 と MacOS X の入ったマシンを一台ずつ持ってるから、
そっちで Mac 版を作ってみるよ。
Mac の IME のインターフェイスは Text Service Manager ってんだっけ。
0568531 ◆pm4Rr1N8T6
04/09/07 03:58ID:s0fkyrDg昨日バグ潰したんだった。
あと、README のメッセージに関する説明を細かくしておいた。
仕様を確定させたつもりは無いから、
ウィンドウシステム固有の問題とかあったら連絡お願い。
0569sgi_rocks
04/09/08 00:55ID:hVzmkiI8基本的な仕様は現在ので良いと思います。
ひとつ提案があるとすれば、SDL_PollEventでイベントがなかった場合にIM関連のイベントを調べるのではなく、
User DefineなイベントをSDLのイベントキューに入れて、SDL_PollEventのループ内で他のイベントと同じように
処理できるようになればよいかな、と思いました。
>>566
私も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に詳しい方がいらっしゃれば、その辺り教えて頂けると嬉しいです。
0570sgi_rocks
04/09/08 01:07ID:hVzmkiI8なんかサイトとか立ち上げた方が良い気がしてきたりしますがどうでしょう?
0571564
04/09/08 03:05ID:/gyCnV3Khttp://gamdev.org/up/img/1198.zip
kinput2 + canna で一応動いた。test/main.cは書換え無しでほぼ同じ挙動をするはず。
skkinputでは動かなかった。
on-the-spot とかいうスタイルを使えば描画も全部アプリケーション側でいけるはず。
いちいち全部描画をアプリケーションでやるのは面倒なこともあるかもしれんので、
ネイティブなIMEウィンドウで描画する方法もあったらいいかもしれんと思う。 >>仕様
>>570
たしかに、あったら助かるかも。
0572sgi_rocks
04/09/08 10:28ID:Z7GwucVhすごいです。Fedora Core 2(XIM + canna)で試しましたが、Windowsと同じように動作しました。
on-the-spotだとコールバック関数設定できたんですか(汗。思いつかなかったです。
一応サイトを作ってみました。
もし良かったら使って下さい。
ttp://p56.aaacafe.ne.jp/~sdlim/
0573sgi_rocks
04/09/08 10:35ID:Z7GwucVhすごいです。Fedora Core 2(XIM + canna)で試しましたが、Windowsと同じように動作しました。
on-the-spotだとコールバック関数設定できたんですか(汗。思いつかなかったです。
一応サイトを作ってみました。
もし良かったら使って下さい。
ttp://p56.aaacafe.ne.jp/~sdlim/
0574名前は開発中のものです。
04/09/08 12:44ID:4F4ga2pg> どうやってイベントをSDLより先に取得するかで悩んでます。
一応こんなもんがあるよ。
http://www.tacoworks.jp/software/SDLdoc-jp/html/sdlseteventfilter.html
ただ、これを使っても、SDL 自体の処理がタコで
ユーザーにイベントを回してこないことがある。
win32.c では SDL が一部のイベントを握り潰していたから
自分で Win32API 側のイベントを奪い取るしか無かった。
あと、アプリケーション開発側のユーザーが
SDL_inputmethod と同時に自前で SDL_SetEventFilter() を使った場合、
きちんと古い SDL_EventFilter を呼んでくれない危険性もあるね。
0575名前は開発中のものです。
04/09/08 13:09ID:4F4ga2pgおお、やった!
っていうか SDL_EventFilter 使ってたんだね。
> ネイティブなIMEウィンドウで描画する方法もあったらいいかもしれんと思う。 >>仕様
SDL_rwops や SDL_rotozoom みたいに本体と分離できないかな。
SDL_inputmethod 自体に描画を入れるのを嫌がってるのは
ユーザーに何らかの制約を課したくないだけだからなんだけど、
ほら、使わない場合にまでわざわざ SDL_ttf を入れるのって面倒じゃない。
もっとプリミティブな部分を前面に押し出していった方が
ユーザーとしても使いやすいと思ってたんだけど、そうでもないのかな。
そういう意味で
>569
> User DefineなイベントをSDLのイベントキューに入れて、SDL_PollEventのループ内で他のイベントと同じように
> 処理できるようになればよいかな
とも考えてたんだけど、
IME 処理は SDL 本体のイベントループと別の場所で
単純に処理できた方が楽だと思ってわざと今の仕様にした。
仕様に関しては他の人の意見も参考にしたい。
>>572
あらら、SourceForge.jp にでもプロジェクト立てればいいやと思ってたんだけど、
それは大体出来てからでいいかな。
っていうか LGPL で問題無い?
>573
おちけつ
ちょっと家に帰ったらテストプログラム修正する。
0576531,575 ◆pm4Rr1N8T6
04/09/08 13:11ID:4F4ga2pg0577sgi_rocks
04/09/08 13:58ID:Z7GwucVh確かにSDL_inputmethod自体は描写に関するものは一切含まないようにしておいて、
もしそれが必要でありそうなら、SDL_inputmethodに対するラッパーを書く方が良いかもしれませんね。
sourceforge.jpはまったく頭に無かったです。
もしそっちでできるのであればそっちの方が良さそうですね。
SDLでIMを使いたいな、と思ったのもゲームを作ってたのが原因なので、
今作ってるものにSDL_inputmethodを使ってみます。
0578564
04/09/08 16:06ID:5bciN7sZWindowsだったらMS-IMEの変換ウィンドウっていう意味で。
それだったらどう?
0579531 ◆pm4Rr1N8T6
04/09/08 18:28ID:4F4ga2pgプライマリバッファに描画するようにした時、
どうしても OS ネイティブなウィンドウがプライマリバッファで上書きされてしまうみたい。
Windows の場合は変換中の文字列も一つのウィンドウの中の表示という扱いで、
プライマリバッファに上書きされてしまうから、そういう条件下ではどうしても自前描画になるっぽい。
基本的な知識が足りてないから曖昧な言い方になってしまった。
わかりづらい説明ですまん。
結局 OS 自体に入力部分を描画させるのは難しいみたい。
俺の知識不足である可能性も充分に有り得るから、
誰か解決方法知ってる人がいたら情報お願い。
0580('A`)
04/09/08 21:41ID:il2D+HG0自分は面倒くさいのでgtk windowid hackで取り込んで
テキストウィジェット貼り付けただけですませてもたですよ('A`)
('A`)('A`)('A`)('A`)('A`)('A`)('A`)('A`)('A`)('A`)('A`)('A`)('A`)('A`)('A`)
http://drizzt.kilobug.org/pub/misc/gtksdl-gtk2.tar.gz
http://www.maccormack.net/~djm/sdl_win32_demo/sdl_win32_demo.zip
0582名前は開発中のものです。
04/09/12 22:47:27ID:Y32NRKdwsmpeg/video/MPEGvideo.cppのMPEGvideo::Stopが以下のようになってます。
297 MPEGvideo:: Stop(void)
298 {
299 if ( _thread ) {
300 SDL_WaitThread(_thread, NULL);
301 _thread = NULL;
302 }
303 ----
304 playing = false;
305 ----
306 ResetPause();
307 }
playing = false;をSDL_WaitThreadの前にしないと何時までもStopしないと思うのですが…。
0583582
04/09/12 22:51:21ID:Y32NRKdw> 305 ----
の----は無視してください。
0584名前は開発中のものです。
04/09/13 17:03:47ID:F/MIp811SDL_inputmethod
http://p56.aaacafe.ne.jp/~sdlim/
0585名前は開発中のものです。
04/09/13 17:16:32ID:055hpd5o0586名前は開発中のものです。
04/09/13 18:53:29ID:F/MIp811Linux japan最終号は出版元にも既にバックナンバーがない状態でして、SDLの貴重なドキュメントを逃したことが非常に残念です。。
Linux japanのいくつかの連載記事は出版元の協力を得てpdfで公開されているので、"SDLバカ一代"についても期待をしているのですが...
0587名前は開発中のものです。
04/09/14 16:53:11ID:F75T3zlI著者にメールで相談してみては?
0588名前は開発中のものです。
04/09/14 19:23:51ID:BUAbryMc0589名前は開発中のものです。
04/09/14 20:10:50ID:BUAbryMcどうも無理ぽい。
gdkx.hをgdkwin32.hに、GDK_WINDOW_XWINDOWをGDK_WINDOW_HWNDに書き換えて
-mms-bitfields付けてgcc3.2.3でコンパイルしたところ、
SDLのウィンドウとGTK+のウィンドウの二つが。
0590名前は開発中のものです。
04/09/16 14:37:11ID:HQ3ex6FR0591名前は開発中のものです。
04/09/16 17:49:16ID:2OLCusILhttp://sdlinputmethod.sourceforge.net/
0592名前は開発中のものです。
04/09/16 23:34:47ID:Bx2LEHan0593名前は開発中のものです。
04/09/17 00:11:19ID:jqWr+HpC一般的かどうかは知らんが、オレはそうしてる。
0594名前は開発中のものです。
04/09/17 08:53:16ID:YTjwD9CrRPGやSLGなんかもその場で読んで充分じゃないかと思う。
リアルタイム要素の強さ次第かな。
0596名前は開発中のものです。
04/09/23 07:48:29ID:MAQ37xzD0597名前は開発中のものです。
04/09/23 09:56:35ID:PYDXgeMB0598名前は開発中のものです。
04/09/24 00:07:23ID:WNRqvYHHとりあえずSDL_GetError()。
で、そのエラーを出してる部分のソースを読むしかないんじゃないかな。
0599名前は開発中のものです。
04/10/12 16:04:41ID:JVe9TSlCweb pageからproject page(http://sourceforge.net/projects/sdlinputmethod)
へのリンクを張ってもらえるとうれしいです。
0600名前は開発中のものです。
04/10/15 13:38:24ID:0e1E0ggZ0601名前は開発中のものです。
04/10/21 11:52:02ID:6v+I1mnz画像の回転表示ってどうやってますか?
OpenGL使うという方法もあるのかも知れませんが、一応それ以外で。
0602名前は開発中のものです。
04/10/21 13:55:22ID:B5V9eGhnどうやってといわれれば、回転させるプログラム組んで。
0603名前は開発中のものです。
04/10/21 20:05:17ID:JI3rp/xxSGE
0604名前は開発中のものです。
04/10/22 16:04:05ID:jWZrFodZRuby/SDLのSDL#transformみたいなことをRUDLでやりたいんだが…
0605名前は開発中のものです。
04/10/24 21:43:30ID:f3AiXIG40606名前は開発中のものです。
04/10/25 07:22:46ID:VVYWZ8/ESDL_gfx SGE のどっちかを使え。
それぞれどういうものかは自分で使って確かめろ。
>>605
TTF_Render*_Shaded() TTF_Render*_Blended() のどっちかを使え。
どういう差があるのかは自分で使って確かめろ。
ドキュメントが少ないのは事実だが、
いくらなんでももうちょっと自分で調べないと何もできないぞ。
このぐらいの情報はすぐ見付かる。
0607名前は開発中のものです。
04/10/25 15:36:34ID:+kRZkPnxしかし4MByte近いbmpになってしまった
でけーなぁ
透過pngにすると使い勝手はいいんだが、内部ではどれくらいに展開されてるんだろ
0608605
04/10/25 22:33:39ID:snYpUN8B駄目ですた。
SHADEDは背景色が透過されずに表示されて、BLENDEDは何も表示され
ませんでした。
OpenGLのテクスチャに使うために、一度2の累乗サイズのサーフェイスに
Blitしてるのが原因なのかもしれないです。
SOLIDの場合はちゃんと透過されてるのに、何故なんだろう・・・。
0609605
04/10/25 23:43:05ID:snYpUN8BSDL_ttfから取得したサーフェイスを、2の累乗サイズのサーフェイスに
Blitした後に、ttfのサーフェイスにアルファフラグを書き戻してやらないと
いけないみたいです。
何故こうなってるのか、未だにさっぱりですが、ともかくこういう物の
ようです。
どうもありがとうございました。
0610606
04/10/26 00:44:33ID:zFRaLOBe「アルファフラグを書き戻す」ってのがどういう行為を指してるのかちょっとよくわからなかったんだが、
SDL_ttf の Blended 系では、
・フォントを描画した Surface を返す
・階調的なアルファブレンドも行う
という二つの条件を満たすために
返した Surface の中にアルファチャンネルを含めてある。
で、新しいサーフェスに Blit したりして
サーフェスをいくつもまたぐ時に問題になってくるのがこれ。
http://zinnia.dyndns.org/~cvsweb/sdldoc-jp/sdlblitsurface.html
> blit 操作の結果は SDL_SRCAPLHA がセットされているか否かによって大きく変化します。
> これがどのように結果に影響するかについては、 SDL_SetAlpha を見て下さい。
ここら辺をちゃんと設定してなかったんでないかい?
ちょっと情報が少ないから推測でもの言ってるが。
ところで、最初に提供してもらった情報が少なかったとはいえ、
この条件下なら確かに混乱して質問してもおかしくないわな。
キツい言い方して悪かった。
0611名前は開発中のものです。
04/10/26 17:28:03ID:UwgETfqySDL_imageを使って読み込んでOpenGL のテクスチャデータに変換
ttp://alb.hp.infoseek.co.jp/opengl/texture.shtml
透過png使えて幸せになれる
0612603
04/10/26 20:49:27ID:8Om0IHEs0613605
04/10/26 23:10:01ID:tqT7U+dqどうもです。
「アルファフラグを書き戻す」というか、Blitする前に
文字を書いたサーフェイスのSDL_PixelFormatのcolorkeyと、
alphaを保存しておいて、Blitした後に同じサーフェイスに
再度セットしなおすとうまく行くんです。
そのサーフェイスは後は解放するだけで、全く使わないんですが
そんなものなんでしょうか。
SDL_SRCALPHAとかSDL_SRCCOLORKEYとかは色々やってみたんですが、
全く駄目駄目でした。
スレ汚しでしたが、どうもありがとうございました。
0614名前は開発中のものです。
04/10/28 05:06:14ID:mhNHIfQh探しても見付からない。できれば日本語が良いけど最悪英語でも良いかな。
0615名前は開発中のものです。
04/10/28 07:07:22ID:qwRYnaquhttp://www.libsdl.org/books.php
日本語はなかったと思う。IntroductionとTutorialとかが結構充実していて
読みやすい英語で書かれているから(日本語訳もあるし)、それで十分間に合うと思うけど…。
でも、新しいAPIのmanは整備して欲しいかなぁ…。manが使えないときはソース読め。
0616名前は開発中のものです。
04/10/28 07:09:55ID:LDePkSKW誰か英語に強い人いない?
0617名前は開発中のものです。
04/10/28 10:03:12ID:tuc1m51KSDLってLGPLだよね?
LGPLはソースコード公開の義務はなかったはず
ソースコード公開の義務があるのはGPL
LGPLはリンクし直せなければいけなかったはず
でもWindows版はDLLになっているから大丈夫なのかな?
その他のプラットフォームならリンク前の物も入手できるようにしないといけないのか?
「欲しい人はメールください」ってREADMEにメアドといっしょに書いておけば、
常時アップしておく必要はない気がする
詳しいエロい人教えて
あとSDLを使ってること、SDLがLGPLであることはきちんとREADMEに載せないといけないよね?
0618名前は開発中のものです。
04/10/28 23:15:32ID:rppov/8Qライセンスを理解して同意するプロセスは必要不可欠.
つまり >>617 にSDLを使う資格はない.てか DirectX で十分だろ.
0619名前は開発中のものです。
04/10/29 16:03:43ID:VQCXStAA日本語リファレンスは見た?
0620名前は開発中のものです。
04/11/03 11:35:47ID:oDGcAACs画像の回転や拡大のライブラリSDL_gfxがあると知りました。
早速使ってみようと思って落としてみました。
ですが、ビルドしてもインポートライブラリが無効であるとエラーがでます。
SDLgfxを使ってる方はどのようにしてLIBファイルを入手したのでしょうか。
それともD言語用には別な方法があるのでしょうか。
ttp://www.ferzkopp.net/~aschiffler/Software/SDL_gfx-2.0/SDL_gfx-2.0.12.tar.gz
0621名前は開発中のものです。
04/11/03 12:21:56ID:YwbSD6qVこれ使って作るんじゃね?
0622620
04/11/03 15:03:02ID:oDGcAACs先ほど試しましたところ、ビルド自体は成功しました。(テストはまだですが
大感謝です。
0623名前は開発中のものです。
04/11/04 16:16:01ID:WBic7bqMユーザーがパースペクティブの変更やズームイン・アウトを行えるシステムに関する特許。
http://www.itmedia.co.jp/news/articles/0411/04/news023.html
0624名前は開発中のものです。
04/11/12 22:52:56ID:/3BmI4D1何かSDL関係のお勧めサイト紹介とかやるか?
とりあえずググって出た日本のサイト
ttp://www.mediawars.ne.jp/~freemage/progs/sdl/
ttp://risky-safety.org/~zinnia/sdl/
ttp://www.libsdl.org/intro.jp/toc.html
ttp://cefiro.homelinux.org/topics/SDL/printable/setup-win32-cygwin-20030603.html
ttp://ahirujigen.hp.infoseek.co.jp/coding_texfont.htm
ttp://www.tsg.ne.jp/text/2002/sdl-opengl/
ttp://www.geocities.co.jp/Berkeley/2093/sdl.html
多分どれもこれも外出だと思うが…
0625名前は開発中のものです。
04/11/12 23:16:01ID:lGdyiPKMABAゲームなんていいよなぁー。
0626名前は開発中のものです。
04/11/13 00:01:36ID:98R+onSK言いだしっぺはリンクはるべ
で、ABAゲームってなに?
0627名前は開発中のものです。
04/11/13 03:37:05ID:gttWCWSdhttp://www.asahi-net.or.jp/~cs8k-cyu/
これをフリーで出してるのはかなり反則級というか、なんというか・・・
0628名前は開発中のものです。
04/11/13 14:12:49ID:UOJJqomHセンス良くてかっこいい
0629名前は開発中のものです。
04/11/13 16:29:11ID:GrYxDtPw0630名前は開発中のものです。
04/11/15 00:04:26ID:iEfH5u7g0631名前は開発中のものです。
04/11/19 22:06:31ID:qqm541c3ttp://tokyo.cool.ne.jp/sdl/
0632名前は開発中のものです。
04/11/20 07:00:15ID:AUnD/RqU0633名前は開発中のものです。
04/11/20 16:11:50ID:PDaYb1sL■ このスレッドは過去ログ倉庫に格納されています