トップページgamedev
987コメント396KB

SDLスレ

■ このスレッドは過去ログ倉庫に格納されています
0001login:Penguin01/11/11 17:59ID:u0HMN7qC
マルチプラットホームな汎用ゲームライブラリの
SDLについてのスレッドです。
最新情報、参考になるソース、質問等

とりあえず、本山
http://www.libsdl.org/
0347ぁきまさ04/01/06 08:58ID:ZNIQCPQq
>>345
そうなんですか。
ありがとうございます。
やっぱり、海外の方が情報が多い。のでしょうか…。
0348名前は開発中のものです。04/01/06 13:15ID:Q68qBWfA
>>321
試してないけど MinGW-users メーリングリストに
http://sourceforge.net/mailarchive/forum.php?thread_id=3700241&forum_id=5119
ってのがあったよ。

要するに SDL_* に入ってる ltmain.sh がマズそうだから SDL_ttf の CVS
の最新から拾ってきて置き換えればいけるかもってことみたい。
0349名前は開発中のものです。04/01/07 01:08ID:FwBNDK1A
>>348
お!情報サンクス。

しかし、そのメールの日付が2004/01/05ってことは、
えらい最近まで原因判明してなかったのかー。
0350名前は開発中のものです。04/01/07 09:37ID:zZ1n6DvZ
>>349
いや…

CVS見ると2003/11/19には直ってたみたい。
http://www.libsdl.org/cgi/cvsweb.cgi/SDL_ttf2/ltmain.sh
0351名前は開発中のものです。04/01/07 12:16ID:kS7ua9BI
>>346
もうOpenGLメインにした方がいいかもなー。
DirectXは3D機能で2Dを表現するのが主流になってきてるそうだし。
0352名前は開発中のものです。04/01/08 12:06ID:cCRZtzcW
>>346
>>351の意見も一理だが、SDL_gfxじゃ不足かい?
回転と拡縮とMMX使用のイメージフィルタがあるそうなんだが。

ttp://www.ferzkopp.net/~aschiffler/Software/SDL_gfx-2.0/

ちなみにLGPL。
SDLは回転とか含め応用(?)な機能を
ポータブルに実現できる「レイヤ」を提供するもんだろうから、
多分SDL自体に実装されることはないと思われ。
0353名前は開発中のものです。04/01/10 01:50ID:Th3gvov6
回転などの「インタフェース」を用意してもいい時期ではないかと、
そろそろ思うわけだけどね。

まぁ、glutやWGLみたいなOpenGLフレームワークの一つとして収まるつもりなら、
別にそれでもいいと思うけど。
0354名前は開発中のものです。04/01/10 22:25ID:CxzW6WTE
>>353
「SDL Request For Implementation」、略して「SRFI」ってノリか。……Schemeと名前被るけど。
0355名前は開発中のものです。04/01/11 05:04ID:kHguDFRk
mingw(gcc3.3.1)+msys1.0.9+SDL1.2.6でエラーが出て
SDLをビルドできないんですが・・・。

> c:\mingw\bin\..\lib\gcc-lib\mingw32\3.3.1\..\..\..\..\mingw32\bin\ld.exe:
> .libs/libSDL.lax/libhermes.al/mmxp2_32.lo: bad reloc address 0x87 in section `.text'

binutilsというかld-2.14.90のバグらしいのでSDLだけ
ldを2.13.90に差し替えてビルドしましたけど、大丈夫ですかね…。
早めにバグ取ってupdateしてほすいですな…>binutils
0356名前は開発中のものです。04/01/12 00:17ID:jHaBXaUC
>>355
確信はないけど、大丈夫なんじゃない?
そのぐらいで毎度問題出るんだったら、
公式で配ってるバイナリ配布版なんて誰も使えないことに。
0357名前は開発中のものです。04/01/12 10:30ID:oW00NT9Y
【ゴールデンレス】
このレスを見た人はコピペでもいいので
10分以内に3つのスレへ貼り付けてください。
そうすれば14日後好きな人から告白されるわ宝くじは当たるわ
出世しまくるわ体の悪い所全部治るわでえらい事です
035835504/01/12 16:22ID:k60kLF8M
>>356
できたSDL.dllをmingwでコンパイルした
メインプログラムと組み合わせると動いたのですが
VCでコンパイルしたメインプログラムとあわせると落ちてしまいました。

バイナリ配布のSDL.dllでは両方動くので
何か間違えてしまったかもしれませんです。ld だけ換えたせいなのかな…。
make install まで通ったので、あまりこだわらないことにします。(^^;
0359名前は開発中のものです。04/01/22 13:27ID:+O9pXp3N
>343
こんな便利なライブラリがある。
http://www1.seaple.icc.ne.jp/tomtom/development/review/osg_frameset.html
日本語の情報ページは、今の所このサイト位らしい。
もったいないからどんどん活用すべし。
0360名前は開発中のものです。04/01/22 17:42ID:viuBoj2b
>>357
そのコピペの頭の悪そうな感じが大好き。
0361名前は開発中のものです。04/01/24 00:42ID:gl5Pax92
>>343
http://cal3d.sourceforge.net/
これもなんとなくよさげっぽ?
0362名前は開発中のものです。04/02/01 22:25ID:VsJKdPiS
フルスクリーンにしてSDL_FillRect使うとものすうんごく遅いんですが、
こんなもんなんでしょうか?
SDL_FillRectを使わなければ60fpsくらい出るものが1以下に...
0363名前は開発中のものです。04/02/03 17:19ID:0RlVpYsz
>>362
あなたの環境でフルスクリーンでSDL_FillRect使って
ものすうんごく遅くなる最小限のサンプルプログラムを
示してくれればみんなテストしてくれると思うよ?
036436204/02/04 11:41ID:URHwb4SZ
>>363
長くなるので一部省略します。

if(fullScreen)
 screenSrf = SDL_SetVideoMode(640, 480, 16, SDL_HWSURFACE | SDL_FULLSCREEN | SDL_DOUBLEBUF);
else
 screenSrf = SDL_SetVideoMode(640, 480, 16, SDL_SWSURFACE);

while(1) {
 static int px = 0;
 SDL_Rect area = {0, 0, 640/2, 480};
 SDL_FillRect(screenSrf, NULL, SDL_MapRGB(screenSrf->format, 255, 255, 255));
 if(px > 640 / 2) px = 0;
 else px++;
 area.x = px;
 SDL_FillRect(screenSrf, &area, SDL_MapRGB(screenSrf->format, 0, 0, 0));
 SDL_Flip(screenSrf);
 waitByFPS();
 printf("FPS=%d\n", nowFps);
}
036536204/02/04 11:44ID:URHwb4SZ
waitByFPSの中身です。

static void waitByFPS() {
 Uint32 nowtime,lefttime;
 static Uint32 lasttime=0;
 const Uint32 interval=1000/fps;
 nowtime = SDL_GetTicks();
 lefttime = lasttime+interval-nowtime;
 if(lasttime+interval>nowtime) {
  SDL_Delay(lefttime);
  lasttime=nowtime+lefttime;
  nowFps = fps;
 } else {
  nowFps = 1000 / (nowtime - lasttime);
  lasttime=nowtime;
 }
}

変数fpsはint型で60、nowFpsには現在のFPSが入っています。
036636204/02/04 11:50ID:URHwb4SZ
っと、ここまで貼ったのですが、このプログラムの場合、
フルスクリーンにしたときにFPSが下がるのではなく、
何も写らなくなってしまいます。

問題が発生した元のプログラムも、どうやらSDL_FillRect又はSDL_Flipに
時間がかかっているのではなく、画面が実際に更新されていないだけのようです。
(つまり、nowFpsにはちゃんと60が入っている)

機種固有の問題でしょうか? よろしくお願いします。
0367名前は開発中のものです。04/02/07 11:16ID:X+ZonyxN
>>362
以下の環境で試してみましたがどの環境でも
フルスクリーン,ウィンドウモードの両方とも
正常に画面は更新されました。

ThinkPad X30, WinXP, cygwin + SDL 1.2.6
自作PC, Win2k, MinGW + SDL 1.2.6
自作PC, Linux2.4.22, SDL 1.2.5

# せめてコンパイル可能なプログラムを…
036836204/02/07 20:35ID:O0CtMFQf
>>367
ありがとうございます。そんなにたくさんの環境で...
やっぱり環境固有の問題みたいですね。

# 途中省略ってのはまずかったみたいですね。
# いや、ソース読むだけで判断するかなと...
# 想像以上に親切で迷惑をかけてしまったようです。スイマセン
0369名前は開発中のものです。04/02/23 10:47ID:E1aLNUXa
SDL version 1.2.7 リリース!
ってことで保守
0370 ◆8fOTfwdIi. 04/02/25 04:31ID:1WNUyKXe
SDL_archive っての作ってみたよ。
アーカイブファイルを元に内部のファイルのインデックス作って、
そこから SDL_RWops を生成できるってもの。
http://qas.sourceforge.jp/libraries/
VisualC++ と BCC のビルド環境しか入れてないから
gcc な人とかは自分で全ファイルをコンパイル&リンクして適当に作ってくだちい。
0371名前は開発中のものです。04/02/26 22:15ID:dtKYNn6B
>>370
そこに置いてあるpatchって本家にマージせんの?
0372 ◆8fOTfwdIi. 04/02/27 02:26ID:6UxR2Ywv
>>370
ちょっと本職が忙しくて睡眠時間すら削り取られてて、本家に投げる暇が無いのよ。
それに英語苦手なもんで……誰かパッチ投げだけやってくれる人いないかな。
0373 ◆8fOTfwdIi. 04/02/27 02:33ID:6UxR2Ywv
間違えた。>>371
0374名前は開発中のものです。04/03/01 21:32ID:4drL0pqW
SDL_gfxのImageFilterって使い方がいまいち分からない。

Test/ディレクトリにあるサンプルは適当な配列をいじってベンチマークしてるだけだし。

どっかに実際に使ってるdemoとかgameありませんか?

0375名前は開発中のものです。04/03/13 09:27ID:F3vxQxJh
SDL_net使ってるのですが、SDLNet_SocketSetの使い方がわかりません。
これにcliantのsocketをSDLNet_AddSocket()で登録していくのだろうなーというのは
なんとなく察しがつくんですが、ここに登録したcliantに対して操作する場合、
どのようにしたらいいんでしょうか?

ドキュメントにはポインターです、としか書かれてなかったのですが、
クライアントsocketポインタの配列みたいな役割になっているのでしょうか?

SDLNet_SocketSet socketset;
SDLNet_TCPsocket i;
for (i=(SDLNet_TCPsocket)socketset; *i!=NULL; i++) {
   len = SDLNet_TCP_Recv(i, message, 1024);
   printf ("Received: %.*s\n", len, message);
}
みたいな感じにすればいいのかな?
0376名前は開発中のものです。04/03/13 11:02ID:KWP+lz2i
ドキュメントを読む限り、SocketSetからそれにaddしたソケットを取得する手段は無いんじゃない?

こんなかんじ?

SDLNet_SocketSet sockset;
SDLNet_TCPsocket sock[10];
SDLNet_TCP_AddSocket(sockset, sock[0]);
SDLNet_TCP_AddSocket(sockset, sock[2]);
:
SDLNet_TCP_AddSocket(sockset, sock[9]);

if (SDLNet_CheckSockets(sockset, 1000) > 0) {
  for (i = 0; i< 10; i++) {
    if (SDLNet_SocketReady(serversock)) {
      SDLNet_TCP_Recv(sock[i], message, 1024);
    }
  }
}
0377名前は開発中のものです。04/03/13 12:58ID:KWP+lz2i
× if (SDLNet_SocketReady(serversock)) {
○ if (SDLNet_SocketReady(sock[i])) {
だった。

要するにselect()のfdsetと同じ役割と考えるとわかりやすい(というか実際に同じか)。
0378 ◆8fOTfwdIi. 04/03/15 00:02ID:RaMRNtCE
うがー
サイトをインチキ英訳して、
SDL 本家の ML に Mix_LoadMUS_RW() パッチ作ったよーって投げてみたよ。
http://qas.sourceforge.jp/patches/

ML 見てる分には、たまーに
「Mix_LoadMUS_RW() は実装されないの?」
って発言を見かけるから、少しは需要あるかなー。
0379 ◆8fOTfwdIi. 04/03/15 08:24ID:pf2gfzpT
「それ、一昨日俺が欲しいって言ったヤツだよ!」
って返事が来たんだけど、
本家に取り込んでもらうにはどうすりゃいいんだろう。
「commit してくれ」ってそのまんま頼めばいいのかな。

す、スレ違い?
0380名前は開発中のものです。04/03/15 08:57ID:k6ohdd5m
Sam Lantinga氏にmailを直接送ってみれば?
新機能の追加なのですぐにcommitされるか微妙ですが
なんらかの返信はすぐに来るはず。
怒られるようなことは、まずないと思います。
0381名前は開発中のものです。04/03/21 17:30ID:Nmo/42G+
SDL1.2.7をコンパイルしてみたのですが、SDL_cpuinfoの__asmで
cmp命令とmov命令の一部がアセンブラ構文エラーになって弾かれてしまいます。
WinXPかVC++5が悪いのかな。他の人はこういうふうにはならないのでしょうか?
今からVC6なんて手にはいらないし、.netならいいのかなぁ?
0382名前は開発中のものです。04/03/24 23:18ID:vYURZF4R
>>381
今VC5を使ってる人ってほとんどいないような希ガス。
だからそれだけの情報じゃぁなかなか答えようがないと思うよ。
とりあえず該当部分のコード晒してみるのはどう?

そーいうオレ自身ももっぱらMinGWなんでさっぱり分からんのだが。
0383名前は開発中のものです。04/03/25 10:56ID:06E5ih+O
>>381
想像ですが、cpuidの直後で引っ掛かってるんでないかと。
VC5にはcpuidがないとかいう噂を聞いた覚えがあります。

cpuid絡みならもしかすると、ソースの頭に
#define cpuid __asm _emit 0x0F __asm _emit 0xA2
を入れれば上手くいくかも。

自分はVC6で、今やってみたら1.2.7も普通にコンパイルできますな。
0384名前は開発中のものです。04/04/05 08:17ID:/ekkDjoX
SDLを最近delphiで始めました。
win32appを作るのに近い感覚で作れてなかなか良いですね。

ただ資料、特にdelphiのものは皆無といっても良いほど内のが玉に瑕。
今度入門ページとか作って見様かなぁ
038538104/04/07 01:48ID:Wn2bWE/g
遅レスすまそ。
やっぱりコンパイラの問題かなぁ。
VC.netを購入する理由が別にできてしまったので、
それでコンパイルしてみることにします。
で、それでもダメだったら>>383さんのを参考にしてみまつ。
0386名前は開発中のものです。04/04/13 00:18ID:R3klDjkd
質問です。SDL_mixerって何音同時再生できますか?
waveをたくさん重ねて鳴らしたいのですが。

0387名前は開発中のものです。04/04/13 01:35ID:ItZmwa9S
ttp://jcatki.no-ip.org/SDL_mixer/SDL_mixer.html#SEC1
> It supports 8 channels of 16 bit stereo audio, plus a single channel of music, ...
0388名前は開発中のものです。04/04/13 23:06ID:R3klDjkd
少な…
0389名前は開発中のものです。04/04/13 23:45ID:n/5r7ovM
>>388
>>387のは単なるdefault値だよ。
http://jcatki.no-ip.org/SDL_mixer/SDL_mixer.html#SEC22

The number of channels allocated.
Never fails...but a high number of channels can segfault if you run out of memory.
とある通り、メモリ(と演算速度もか?)の許す限りいくらでも取れるっぽ。
0390 ◆pm4Rr1N8T6 04/04/14 05:29ID:/mSmA8Oy
かなり大量に指定したことあるんだけど、
増えすぎてちゃんと鳴ってんのかどうかわからなかった。

まあ、16ぐらいは普通にいけるよ
0391 ◆pm4Rr1N8T6 04/04/14 05:31ID:/mSmA8Oy
あれ、トリップ打ち間違えた
0392名前は開発中のものです。04/04/19 23:43ID:df6eSjfW
スレ違いかもしれないんだけどさ、液晶モニタでゲーム作ってて、
表示してる画像を動かすと、やたらぶれて見えることってない?
静止してその場でアニメーションしてもぶれないんだけど、
画像全体を上下左右に動かすと途端にぶれて見えるみたいな。

でもCRTだと問題ないし、その液晶でだってゲーム全部ダメってこともなく……。

FPS落としてみたりして試行錯誤はしてるんだけど、うまくいかず。
世の中のゲームはどんな実装してんのか、誰か教えてくだされ……。
0393名前は開発中のものです。04/04/20 09:47ID:Kz7PIZnR
ブラーが掛かるように見えるなら、応答速度のいい液晶を使う。

FPSなゲームだと余り目立たないけど、1/30秒位でオブジェクトを
動かすと2重にブレて見える事もある。
中途半端に遅くても駄目な例。
0394名前は開発中のものです。04/04/21 09:16ID:GSi5k06l
【LCD】PCゲーマー的液晶ディスプレイ Part.2
http://game6.2ch.net/test/read.cgi/game/1069793039/
とかも参考になるかも。
039539204/04/21 16:31ID:WKD5qBW8
>>393,394
ありがd。やっぱ世の中安物はだめなのか……。
自分が使うぶんにはいいんだけど、
他人にプレイさせると選べないんだよね……。
0396名前は開発中のものです。04/04/24 02:00ID:Z5qgN2Ap
久々に本家のページ見にいったら
デザイン一新しててビックリしたんだけど、
いつから変わってたんだろう…。
0397 ◆pm4Rr1N8T6 04/04/24 16:53ID:dO/B4Z7t
>>396
何でか知らんのだけど、リニューアル後は
サイトの HTML や画像まで CVS に入れるようになったみたいだね。
CVS コミット通知の ML 読んでてびっくりしたよ。
0398名前は開発中のものです。04/05/12 07:37ID:+G0iEP7m
日本語入力は…とりあえずSDL_ttf+sskしかないんですかね?
ssk試してみたけどあれはツライなぁと。

SDLのソース触ってIMEからなんとか動かしてるんですけど、
やっぱSDL_imeがほすぃ…。
0399名前は開発中のものです。04/05/13 21:41ID:bDKw0/eZ
>>398
sdl-fan-jp で SDL で IME を直接使う、みたいなのが出てたね。
http://morihyphen.hp.infoseek.co.jp/prog/sdl-im.html
これ一個で X Window 系を一気にサポートできるけど
MacOS, Windows, Amiga OS 辺りがサポートできないね。
この XIM のものですら実践的じゃない部分も多いし、
実際やるとなると相当大変だな……
0400 ◆pm4Rr1N8T6 04/05/30 10:09ID:3EbvfWJ2
SDL_ttf の不満点を解消するパッチを作ってみた。
http://qas.sourceforge.jp/patches/

・ファイル開くのに失敗したら NULL を返すようにした。
 これまではライブラリ内部でクラッシュしてたんだよ。信じられるかい?
・SDL_bdf みたいに SDL_Surface へ直接描画する関数を追加した。
・横幅を元に、文字列の中で描画できる byte 数を返す関数を追加。
 文字列から横幅を取得することはできるんだけど、
 それだと先に横幅が決まってる場合にスマートに自動改行の実装するのは難しいんだよね。
0401 ◆pm4Rr1N8T6 04/05/30 10:17ID:3EbvfWJ2
Shaded や Blended を使う場合に
強制的に TTF ファイル内の埋め込みビットマップフォントが使用されてしまう問題は
Shaded や Blended の時だけ bitmap を使わないようにすればいい……と言いたいところだけど、
TTF_Size* を呼び出す時、Solid と Shaded, Blended との場合が区別できないから
互換性が失われてしまうんだよね。
TTF_Size*_{Solid|Shaded|Blended} ってのを新しく追加しようかなとも思ったんだけど、
結局互換性は保たれないからなあ。

オリジナルのコードを見るとよくわかるけど、
何と言うか、試行錯誤の爪あとがひどくて……
別のライブラリを作った方がいいのかなあ。
0402名前は開発中のものです。04/05/30 22:14ID:XZwjpvJy
>>400
パッチ作成おつー

パッチは役割毎に分けて,CVSバージョンに対して作って
直接 Sam に投げてあげると取り込まれやすいかもー

# Mix_LoadMUS_RW パッチも取り込まれてないのね…
# 今CVS見たら MikMod のみに対応した Mix_LoadMUS_RW の
# コードが入ってるっぽい…
0403名前は開発中のものです。04/06/16 14:33ID:Ui6mhgG3
Ruby/SDL on WinでSDL_kanjiを使えたという人います?
Linuxではできるみたいなんだけど、WinでRubyの拡張ライブラリ
を作るやり方がさっぱりわからない…
0404名前は開発中のものです。04/06/17 23:16ID:1bQx+Nnz
SDL使えばグラフィックは良いと思うんですが
サウンド用の汎用ライブラリって何かありますか?
0405名前は開発中のものです。04/06/17 23:40ID:eN4Qw0jN
OpenALだっけか。
感想キボンヌ
0406名前は開発中のものです。04/06/18 03:56ID:Lm+5DsNE
OpenALを上げる前に、
SDL_mixerとSDL_soundあたりをまず上げてやれよ。
SDLとの組み合わせでは一番使用例が多いだろうに。
それで機能不足を感じたなら改めてOpenALあたりを調べてみるのが良い気がする。
0407名前は開発中のものです。04/06/20 15:54ID:6tF2CK9b
>>403

SDL使うには Ruby/SDL と RUDL という手があるね。

漏れ、一時期、複雑なものなら型宣言有り言語推進派だったけど、
経験積むにつれ、型宣言に大した意味ないと思った。

Rubyマンセー
0408名前は開発中のものです。04/06/21 18:12ID:OvV70vE4
>>407
俺はRuby/SDLをやって、やっぱりRubyは大規模なものには
向かないと実感したよ。
1番多いミスが、変数に予期しない値が入っちゃうということなんで。
あと、初期化されていないフィールドと配列のインデックス越えでnilを返すところね。
自動テストができないから、リファクタリングも危険が伴うし。
もしまたスクリプト言語でゲームを書く機会があったら、今度はPyGameでやってみたい。

OpenALは3D空間内で音が聞こえてるようにシミュレートするやつだから
ファイル読み込みとかはほとんどできないよ。
0409名前は開発中のものです。04/06/22 00:54ID:BZgdUtKP
>>408
> OpenALは3D空間内で音が聞こえてるようにシミュレートするやつだから
> ファイル読み込みとかはほとんどできないよ。
ということは、SDL_soundでファイル読み込み&デコードやって、
OpenALに渡すのって実は良さそうなのか?
0410名前は開発中のものです。04/06/22 01:11ID:ITWJAyK6
>>408
その程度の問題だと単にRubyに慣れていないだけだとおもわれ

大規模なものを作ろうとおもったらどんな言語でもそれなりの
経験と設計とテストが必要でしょ…
0411名前は開発中のものです。04/06/24 01:02ID:Vimy071T
>>410
だな。インタプリンタならしょうがない。Pythonでも同じだろう。
0412名前は開発中のものです。04/06/24 01:09ID:M2KZSJrL
漏れが見た感じ、Ruby/SDL よりは RUDL のほうが完成度高いと感じた
0413名前は開発中のものです。04/06/24 01:10ID:M2KZSJrL
>>411

しかし型あってもエラー起きるときは起こるし。

単にリファクタリングにともなうテスト作りに慣れてないだけかと
0414名前は開発中のものです。04/06/24 01:17ID:x3Ts3VTh
布教なら余所でやってくれよ
0415名前は開発中のものです。04/06/24 01:25ID:M2KZSJrL
信者ではない
0416名前は開発中のものです。04/06/24 18:26ID:qm5ejIlD
でも、エラーであれ?と思うことはPythonの方がずっと少ないよ。
メッセージから原因もわかりやすいし。

>>412
RUDLってメンテナンス止まってない?
0417名前は開発中のものです。04/06/25 11:00ID:owgO6tb5
RUDLにしろRuby/SDLにしろ各機能がまとめてはいってるところが
いやなんだけど…

SDL + GL の描画しか使ってなくても SDL_image, SDL_mixer, SDL_ttf, SGE
のDLLも付けて配布しないといけないんだよねぇ…?
0418名前は開発中のものです。04/06/26 15:36ID:YpRH5ts9
>>417

神経質になりすぎだ
0419名前は開発中のものです。04/06/27 20:12ID:TlIkOaxm
翻訳サイトが消えてたり、さがさないでくださいと出てたり・・・
SDLは日本人が使うとどうかなっちゃうの?w
0420名前は開発中のものです。04/06/28 01:10ID:QaShh7Zh
お願い纏めて。そしたら頑張って何か作るから。
0421名前は開発中のものです。04/06/28 13:42ID:7p8HGt/8
>>419
翻訳サイトは移転しただけ。
ttp://www.tacoworks.jp/software/SDLdoc-jp/
0422名前は開発中のものです。04/07/01 21:15ID:nUzqGN14
資料が少ないな・・・
SDL推進してるWikiとかないの?
0423名前は開発中のものです。04/07/02 15:48ID:z9cQVZSD
>>422
今のところ無いっぽいね。
とりあえずはバラバラに存在する国内情報の
まとめページだけでも欲しいかな。
0424名前は開発中のものです。04/07/03 23:04ID:7rPVx/6/
>>422
SDLって大量の資料が必要なほど複雑なライブラリじゃないと思われ…
リファレンスマニュアルとチュートリアル以外でどんな資料が欲しいの?
0425名前は開発中のものです。04/07/03 23:14ID:1w5sa/fH
あのマニュアルめちゃめちゃ丁寧だよなぁ。
それだけじゃ足りないってことなんだろうけど。
0426名前は開発中のものです。04/07/04 05:22ID:dw9vgL9Y
SDL_imageとか拡張ライブラリはどこで仕様を見れるの?
0427名前は開発中のものです。04/07/04 08:41ID:ctIGerBf
>>426
SDL_image の場合 README に書いてある内容が全ての仕様だと思うけど…
ユーザが使うのは、
* SDL_Surface *IMG_Load(const char *file);
* SDL_Surface *IMG_Load_RW(SDL_RWops *src, int freesrc);
* SDL_Surface *IMG_LoadTyped_RW(SDL_RWops *src, int freesrc, char *type);
* SDL_Surface *IMG_ReadXPMFromArray(char **xpm);
くらいしかなくて、アプリケーションが使うのはほぼ一番目の関数だけ。

でも SDL_ttf とか SDL_net のドキュメントはもう少し欲しい気がするね。
0428名前は開発中のものです。04/07/04 14:50ID:CEd3aHf1
ライブラリ名と "Documentation" を同時に検索すると出てくるよ。
http://jcatki.no-ip.org/SDL_ttf/
http://jcatki.no-ip.org/SDL_net/
でもわかりにくいんだよなー。
特に SDL_ttf の場合、色んな描画方法に関して、
どう描画されるかではなくて重いだの軽いだの、そういうことばっかり書かれてたと思う。
0429名前は開発中のものです。04/07/04 21:55ID:dw9vgL9Y
解説してるわけじゃないけど、GameDevPukiWikiにSDLの項目はあるね
http://gamdev.org/w/?%5B%5BSDL%5D%5D
0430名前は開発中のものです。04/07/05 21:36ID:nSK/GKky
規制やっと解けたー。まぁ一応。

http://jcatki.no-ip.org/SDL_image/
http://jcatki.no-ip.org/SDL_mixer/

てか、ttp://jcatki.no-ip.org/から辿れば良いってことで。
0431名前は開発中のものです。04/07/07 01:04ID:n/Oy7Dm9
ところで、Linuxでバイナリ配布ってやりづらいような気がするのですが。
ディストリビューション毎に、glibcやらlibstdc++やらのバージョンがバラバラだったり、
ディストリビューション標準パッケージSDL_mixerが対応フォーマットさっぱりだったりとか。
どうにかならんもんかな。
0432名前は開発中のものです。04/07/07 01:08ID:W6JVsWwD
Redhatだけ対応しとけばいいよ
0433名前は開発中のものです。04/07/07 01:16ID:n/Oy7Dm9
>>432
やっぱそんな感じで割切るしかないですか。
とすると、RH系だと、今ならFedora2に対応しておけば良いのかな。
0434名前は開発中のものです。04/07/07 01:25ID:ixnokw2/
全部スタティックリンクしちゃえば
0435名前は開発中のものです。04/07/07 01:34ID:n/Oy7Dm9
>>434
う〜ん、確かに。
けど、LGPLのをスタティックリンクするってことは、
アプリ側の.oを配布する必要があるのかな。

それと、libc,libm,libstdc++とかスタティックリンクするとデカそうってのも微妙な感じだ。
0436名前は開発中のものです。04/07/07 16:05ID:Cr3igRfZ
>>435
スタティックリンクしたらアプリ側のソースコードを公開する必要がある.

Linuxでのバイナリ配布は
1) 各ディストリビューション毎にバイナリを作る
2) メジャーなディストリビューションだけ作ってあとはユーザにコンパイルさせる
3) 全部スタティックリンクしたのを一つだけ配布
のどれかじゃないかなぁ… あ…
4) バイナリと libSDL.so や libSDL_mixer.so を一緒に配布
(LD_LIBRARY_PATH を設定して起動するシェルスクリプトを同封)
ってのもありえるか…
0437名前は開発中のものです。04/07/07 20:12ID:qEMx/JGK
>>436
LGPLのはスタティックリンクしても公開しなくていいのでは。
043843104/07/07 22:19ID:TRH5OiZw
色々返答ありがとう。考えた結果、

・自分が普段使ってるディストリビューション用の実行ファイルと、
まともなSDL_mixerのrpmを用意する。
・それとは別に、アプリの.o(または、まとめて.aにするかも)とMakefileを用意する。

ぐらいにしておこうかと思います。
しかし、各ディストリビューション間のバイナリ互換性の低さは頭のイタイ問題ですな。
0439名前は開発中のものです。04/07/08 00:01ID:nQ5A0rf+
>>437
LGPL部分は差し替えれるようにしなきゃだめじゃなかった?
0440名前は開発中のものです。04/07/08 00:55ID:0z9S7ZSR
>>439
> LGPL部分は差し替えれるようにしなきゃだめじゃなかった?
その通り。だからアプリの.oを配布で正しいと思うんだけど。

アプリの.o + 差し替えたLGPLのライブラリ

で再構築可能だろ?
044143604/07/08 11:56ID:HbCYsiEE
LGPL部分を差し替え可能にする必要があるというのは当然として…

ちょっと聞きたいんだけど…
オブジェクトファイルだけあったら差し替え可能として認められるのかな?
この時オブジェクトファイルのフォーマットとかは問題にならんのかしら?
あ… 配布したスタティックリンクされた実行可能ファイルの元に
なった.oさえあればOKってことかな?
0442名前は開発中のものです。04/07/08 14:48ID:1+ItRMvE
>>441
オブジェクトファイルのフォーマットは、gcc の吐くような極一般的なものなら全然問題無いと思うよ。
>>440 の言う通り、君が作ったソフトウェアのオブジェクトファイルさえ入ってれば大丈夫だから、それで合ってるね。
0443名前は開発中のものです。04/07/10 20:51ID:21jpHlag
SDL-1.2.7+WinXP+VC+++.net2003で下のソースで落ちてしまいます。
誰か助けてください。
#include <SDL.h>
doubleax,ay;
int main(int argc, char** args) {
  SDL_Init(SDL_INIT_VIDEO);
SDL_Surface *screen;
screen = SDL_SetVideoMode(640, 480, 8, SDL_SWSURFACE);
  while(true) {
SDL_Event event;
  SDL_MouseMotionEvent mouse;
while(SDL_PollEvent(&event)) {
if(event.type==SDL_QUIT) {
return 0;
}
   if(event.type==SDL_MOUSEMOTION){
    ay += mouse.x;
    ax += mouse.y;
   }
  }
  SDL_Delay(10);
}
}
0444名前は開発中のものです。04/07/10 22:02ID:JmED2rrl
ax,ayがオーバーフローすんちゃうの?
0445名前は開発中のものです。04/07/10 22:45ID:MW3XWIRh
>>443
dx, dy を初期化してないのはC的にいいとして、mouse を初期化してねーじゃねーか。
ググったらこことか引っかかったから見てみれ。
http://www.pl-berichte.de/work/sdl/sdl-teil2.html
044644504/07/10 22:47ID:MW3XWIRh
「3. Input-Handling in der Praxis: Maus」
ってとこね。ってよく見たらドイツ語だ。すまん。でもソースは分かるよね。
■ このスレッドは過去ログ倉庫に格納されています