SDLスレ

このエントリーをはてなブックマークに追加
1login:Penguin
マルチプラットホームな汎用ゲームライブラリの
SDLについてのスレッドです。
最新情報、参考になるソース、質問等

とりあえず、本山
http://www.libsdl.org/
2名無しさん@お腹いっぱい。:01/11/11 18:15 ID:jfiPYGos
1.2.3 リリース!

SDL関係のニュースはSDL Watchで
http://www2.jan.ne.jp/~zinnia/sdl/watch/cur/rent/
3名無しさん@お腹いっぱい。:01/11/11 23:04 ID:???
恐らくこの板の住人のほとんどがWindowsオンリーのプログラマであるためか
こういうものに見向きもされないね・・・。
4名無しさん@お腹いっぱい。:01/11/11 23:26 ID:???
いや、実はつい最近知って手を出してみようとは思っているのだが
まだ何もやってないのでなんとも書けないのだ
5名無しさん@お腹いっぱい。:01/11/12 01:18 ID:DmTmPUJO
>3

そんなことないよ。
6名無しさん@お腹いっぱい。:01/11/12 01:57 ID:Owf81e9Y
7名無しさん@お腹いっぱい。:01/11/12 11:59 ID:???
うあ、結構簡単に作れるんだね。萌える。なにかやってみようかな
8 :01/11/12 18:59 ID:???
こういうものをうまく使ってマルチプラットホームのゲーム出そうなんて
奇特な国内メーカーいないかな
9名無しさん@お腹いっぱい。:01/11/12 19:20 ID:DmTmPUJO
前使ったときはアルファブレンディングのパフォーマンスが悪かったのですが
改善されたのでしょうか?ちなみにWindowsの話です。
10名無しさん@お腹いっぱい。:01/11/12 20:48 ID:???
えここでファイトの作者はこれ使ってたような…
だからいろんな機種に対応できるのかな。
11名無しさん@お腹いっぱい。:01/11/12 21:32 ID:???
>>10
PS2のLinuxにも対応してたしなー。ま、そんなに速度は出なかったようだが。
12名無しさん@お腹いっぱい。:01/11/12 21:47 ID:kcOnH9jV
>>9
Win版のソース見たこと無いけどライブラリ内でDirectX使ってるんじゃないかな?
もしかしたら前使ったバージョンってのがソフトでやってたのかもしれないけど・・・。
13名無しさん@お腹いっぱい。:01/11/12 22:09 ID:???
SDLはDirectXが入ってる環境では自動的に使ってくれるらしい。
ソース見てないけど。
14名無しさん@お腹いっぱい。:01/11/13 10:53 ID:PbpUkqCT
日本のSDL関係のリンクを書いておこう。

SDL library documentation(japanese)
http://www.wakhok.ac.jp/~momma/SDL/

Adas' Linux ゲームプログラム
http://www.geocities.co.jp/Berkeley/2093/

ruby/SDL
http://www.kmc.kyoto-u.ac.jp/~ohai/

Just Another Ruby/SDL
http://www6.tok2.com/home/tamura/rubysdl/index.php3
15名無しさん@お腹いっぱい。:01/11/13 20:04 ID:ClbS1Bbe
グラフィックはOpenGLベースでジョイパッド対応やオーディオのみ
SDLみたいな使い方を解説しているHPとかないでしょうか?
16名無しさん@お腹いっぱい。:01/11/13 20:26 ID:???
>>15
解説も何も、そうすれば良いじゃん
17名無しさん@お腹いっぱい。:01/11/14 22:16 ID:yJ3mZr76
SDL-fan-jp(メーリングリスト)
http://www.freeml.com/ml_info.php?ml=sdl-fan-jp

>SDLはDirectXが入ってる環境では自動的に使ってくれるらしい。
ヘッダとライブラリは必要。

既出の
Adas' Linux ゲームプログラム
http://www.geocities.co.jp/Berkeley/2093/
に解説あり。
18名無しさん@お腹いっぱい。:01/11/15 00:58 ID:???
>ヘッダとライブラリは必要。
開発環境にはってこと。
実行時にはDirectXを自動的に使ってくれる。
19名無しさん@お腹いっぱい。:01/11/18 08:00 ID:l+W9gEoZ
MacOS X / ProjectBuilderで使おうとしたら準備に3時間かかった。
変なディレクトリ構成でインストールしちゃったり、
SDL.hがフレームワークに入ってなかったり
PBProjects.tar.gzの最新版が壊れて(?)たり
鬱だ、、、
20 :01/11/18 13:46 ID:???
Allegroのほうが使いやすいと思う。
21名無しさん@お腹いっぱい。:01/11/18 14:16 ID:uGlRUOgo
22名無しさん@お腹いっぱい。:01/11/21 02:04 ID:8gboFG9q
allegroをBCBで使ってる人っています?
インストールの段階でつまづいて困ってるんですけど…
2322:01/11/21 23:16 ID:???
結局mingwに逃げちゃいました。
とりあえずインストールまで完了。
2422:01/11/23 10:39 ID:???
http://www.grandgent.com/gfoot/vivace/
とりあえずここのチュートリアルを一通り読んでみました。
25名前は開発中のものです。:01/11/23 21:49 ID:???
>>22が使ってるVerおよび環境は?
ウチはver3.9.40 +Win2k でmakefile.bcc の記述ミスによる
コンパイルエラーを確認したが。

※出力を良く見たら、ソースのパスから\が抜けていたので、
 エディタで行末以外の\を\\に置き換えてやったらうまくいった。
2622:01/11/24 21:25 ID:???
自分もver3.9.40+w2kです。

all3940.zipを解凍してfix.bat bcc32と実行するところまではOKなんですけど、
その後makeしようとすると「指定されたファイルが見つかりません」って出てしまいます。
\を\\で置き換えるのもやってみましたけど、同じでした。

mingwでインストールできちゃってるので、あんまり深くは追求しないことにします。
すいません。
2725:01/11/25 01:32 ID:???
後学の為にももう少し追及すべし!!
…とは言わん。対応するコンパイラの多さもAllegroのウリだし。

ところで「指定されたファイルが見つかりません」等と下手に
翻訳するより、原文載せた方が原因判明しやすいと思うヨ。
何となく BCC32DIR のパス指定ミスとか、
GNU make じゃなくてBCC付属のmake使ってるとか、
必要なファイルの不足とかいった原因が思い浮かぶが、
実際のエラー文を見てみないと良くワカラン。
2822:01/11/25 02:13 ID:???
BCBは、f:\w2k\Borland\CBuilder5にインストールされてます。
BCC32DIRの設定は
> set BCC32DIR=f:\w2k\Borland\CBuilder5
とやりました。

make しようとすると、

H:\temp\all3940\allegro>f:\w2k\mingw\bin\make.exe
process_begin: CreateProcess((null), echo Compiling Allegro for BCC32, optimised
. Please wait..., ...) failed.
make (e=2): 指定されたファイルが見つかりません。
f:\w2k\mingw\bin\make.exe: *** [msg] Error 2

と出てしまいます。
もうちょっと調べてみます
2925:01/11/25 14:57 ID:???
>>28
内部用コマンドであるはずのecho が外部コマンドとして
実行されようとして、結果エラーになってるみたいですナ。

自分もヘタレ何でよくわからんけど、もしかしてdos上で
cygwin用make実行してるとか、逆にcygwin上でdos用makeを
実行してない?

一応DOS/Win用のGNU-Makeの在処を。
 http://sourceforge.net/projects/mingw/
3022:01/11/26 07:45 ID:???
うーん、上のmakeはcygwinのじゃなくてmingwのdos用のなんですよね。
cygwinのmakeを使うと
copy: not found
って出ます。

一応makeだけ落としなおしてみましたけど結局同じでしたんで、
今回はあきらめることにします。
どうもありがとうございました。
3122:01/11/26 07:45 ID:???
上のmake=28で使ったmake ってことです。
32名前は開発中のものです。:01/12/05 01:12 ID:???
sage
33名前は開発中のものです。:01/12/23 23:10 ID:lg6LImo6
このスレ盛り上がらないね
34名前は開発中のものです。:01/12/24 00:27 ID:???
最近はSDLを使いつつ、OpenGLで2D描画するのがはやってるらしいよ。
35名前は開発中のものです。:01/12/24 01:51 ID:L8voSXpA
うーん、まぁ Ruby/SDL とか見てみて思ったのが、
やっぱ型付けが強い言語がゲームとか複雑な実装には
向いているのかなぁと。

(Rubyとかは業務機関とか単純な実装に使うのがいいやね。)
36名前は開発中のものです。:01/12/24 02:08 ID:9LVHa4NS
Cマガの来月号に何か載るらしい
37名前は開発中のものです。:01/12/24 02:47 ID:???
以前SDL+OpenGLは遅いと聞いたけど、改善されたん?>>034
38名前は開発中のものです。:01/12/24 05:10 ID:ducal9m3
>>35
よろしければ具体的な理由(そう感じた決定打?)を教えてください。
Ruby/SDLのサンプル見た感じではそんなに悪い印象を感じませんでしたが、
Cとかの方が有利な点があればぜひ知りたいです。
39名前は開発中のものです。:01/12/24 09:14 ID:???
SDLってGPLだかLGPL縛りじゃん。
感染しちゃうよ。ソース公開だとかどうしてるの?みんな
40名無しさん@Emacs:01/12/24 09:56 ID:8rf6wve4
>>34
SDL_OPENGLBLITのことでしょうか?今でも遅いですよ。
SDL_OPENGLでハードウェア使える環境なら、少なくとも2Dでは充分な速さが出ます。

>>39
SDLはLGPLです。ソースは公開しなくても良いです。
ただ再リンクが可能なようにオブジェクトも配布しないといけないんだっけか?
ヘタレなので詳しくはわかりませぬ。調べて下され。
41名前は開発中のものです。:01/12/24 10:31 ID:???
SDL_OPENGLBLITは気の迷いなので使うなってことになってるらしいよ。
OpenGL使うのは、Windows以外の2D描画でハードウェアアクセラレーションを
利用する手段が無いことじゃなかったかな。
42名無しさん@Emacs:01/12/24 12:17 ID:8rf6wve4
重箱の隅つつきですけど。

Windowsの2Dで提供されているぐらいのハードウェアアクセラレー
ションならSDLの各環境でも可能なら利用するように実装されてま
すね。
43名前は開発中のものです。:01/12/24 13:54 ID:L8voSXpA
>>38
Ruby は Cよりはよっぽどいいんですけども、ただ、
JavaやC++は型が間違っていると実行前に気づかせて
くれるので、ゲームのようにテストのしづらいものを
作る場合は型づけが強いほうが楽かなー。と思ったん
ですけども。
44名前は開発中のものです。:01/12/24 23:08 ID:UrCj+faV
>>43
ということは、以下のスレと関連する話って事ですか。

型なし言語逝ってよし
http://pc.2ch.net/test/read.cgi/tech/986355498/

実際にRuby/SDLなりその他のバインディング(っていうんでしたっけ?)での
ゲームの実例があればもう少し話を広げられそうなんですが、
詳しく知らないです。
45名前は開発中のものです。:01/12/25 14:58 ID:fIdcRD6/
> 実際にRuby/SDLなりその他のバインディング(っていうんでしたっけ?)での
> ゲームの実例があればもう少し話を広げられそうなんですが、

いろいろ考えてみたんですけど、まぁ、型づけが強くないとテスト
しづらいっていうのは、もともとテストしづらい設計で、こ
のまま作っていても、あんまりよくないっていうことを暗に
示しているのかなと思うようになりました。

型づけの強い言語でもそうだけど、型づけの弱い言語ならなおさら、
徹底した XP 張りのテストが必要になるなぁ、と。
46名前は開発中のものです。:01/12/27 05:06 ID:zYDgayx3
だんだんスレ違いなレスになってしまって申し訳ありません。

>>45
XPといってもRubyUnitをほんの少し触ったことしかありませんが、
単に型に注目するだけでしたら、引数の型が正しいかどうかを
確認するテストを各メソッド毎に用意する、みたいな。
C等のプロトタイプ(宣言?)をテストで補う感じでしょうか。

それとは別にゲーム…特にリアルタイム系のゲームにに特化した
テストがあると良いのかもしれませんね。
例えば入力機器(マウスとかジョイスティックとか)が吐き出すデータを
仮想的に生成して、それをリアルタイムにテストしていく…
なんか自分で書いてて良くわかりませんが。
47名前は開発中のものです。:01/12/27 14:35 ID:zrY5itRv
>>46

> 単に型に注目するだけでしたら、

つまりたとえば、シューティングゲーム作るときに、ステージの最期に
ボスシーンがあるわけですが、多分、多くのゲームプログラマは、
ステージの構成を Scene クラスとして、それを継承して BossScene クラス
みたいなものを作ると思うんですけども。

もし、間違えて Scene オブジェクトじゃなく int オブジェクトを
渡してしまっても、その間違いに気づくには、ボスシーンまで辿り
つかないといけないという、、、。ちょっと、これは、、、、うーん。

(まぁそれを未然に防ぐ手だてはいくつかあると思うんですけどもね。)

Ruby のような気軽に使われることを想定しているプログラミング言語
の場合は型なんて無いほうがメリットが多いので、それはそれでいいん
ですけども、ちょっと複雑なものになってしまったとき、Ruby じゃなく
C++ や Java の方がいいんじゃないかなと。
48名前は開発中のものです。:01/12/27 16:28 ID:???
例外は method missing や type error で出ることが多いけど、
結局はロジックの間違いなんだよね、ほとんど。
Java の null pointer exception もしかり。
型があることで設計がしやすいケース以外では
型が無くて困ることはないなあ。特にユニットテストし始めてからは。

ただ、ゲームではまだ試してないからわからないけど。
49名前は開発中のものです。:01/12/28 01:43 ID:???
つまり異なる型のオブジェクトを同一の変数にいれちゃうのが誤り。
そんなことしてないって言うんなら、バグの出る危険性は型なしでも強い型付けでも同じ。
まぁ、タイプミスやボケててで紛らわしい変数渡しちゃったりするのの防止には
なるかもね>強い型付け言語

経験的に>>47が言ってるようなバグで苦しんだことは無いぞ。
ゲームじゃない分野の話だけど。
50名前は開発中のものです。:01/12/28 03:26 ID:???
>>47
Rubyは変数自体に型が無いだけで、変数が指すオブジェクト自体には
型があります。ですからそれを本チャン前にチェックするような手順を
踏めば、CやC++のコンパイル時の型チェックと似たようなことを行う
事は可能です。ただ、CやC++は言語仕様として型チェック機能
があって(っていっても良いの?)、RubyやPerl等には無いと。

コードを書く際に言語を選択する時、おそらくどのようにして開発していくのか
というのは予め考えられていると思うんですよ。なので、Perlで書くにしても
Javaで書くにしてもそれなりに作っていけるものだと思います。
ですので>>47さんがC++やJavaの方が良いという話は、
その方が「自分に向いている」ということと解釈しました。多分そうですよね?

強引にSDLがらみに話を持っていくと、Ruby/SDLのコード量を見て
Cで書いた場合より少ない、というのがとても好印象でした。ただ、Rubyの
優位性の話をしたいわけじゃなくて、同じ機能のコードを書くのであれば、
書く量が少ないほど不具合に対処しやすいのではないかと。
ちょっと強引でしたねsage。
51名前は開発中のものです。:01/12/28 03:28 ID:???
ああ、書き損ない。

>>50
誤: Ruby/SDLのコード量を見て
正: Ruby/SDLのサンプルコードのコード量を見て
52名前は開発中のものです。:01/12/28 10:53 ID:???
>>44
流し読みしたけど。見るだけでもう疲れちゃった( ´∀`)
53名前は開発中のものです。:01/12/30 05:45 ID:apMyMob6
SDL-1.2.3+cygwin で -mno-cygwin オプションをつけると
undefined reference エラーがたくさんでるのですが
cygwin で -mno-cygwin オプションって鬼門なんでしょうか?
5453:01/12/31 03:52 ID:???
解決しました。どうも。
55名前は開発中のものです。:01/12/31 06:52 ID:???
原因はなんだったの?
56名前は開発中のものです。:02/01/02 01:49 ID:VzsaD8C7
schemeをゲームのスクリプトにしたことあるけど、

ゲームは乱数・ユーザー入力などの不確定要素の影響が大きい

単体テスト・自動テストが難しく、レアケースも多い

型付けが弱いと凡ミスの発見が遅れる

っていうのはあったよ。

やっぱり型は合った方がいいけど、
まあ事前に相応の開発手法をちゃんと練っておけば
対処できない範囲内でもない、といったところかな。

生Cをつかうくらいなら圧倒的にRuby使った方がいいと思うけど。
C++と比べたらC++を採る。俺なら。
57名前は開発中のものです。:02/01/11 01:41 ID:f0gNm/Wm
Cマガ2月号の特集SDLだってよ。

http://www.cmagazine.jp/contents/next.html
58名前は開発中のものです。:02/01/18 20:47 ID:???
>> 57
まさか Sam へのインタビュー付きとは思わなかった。
59名前は開発中のものです。:02/01/23 03:38 ID:???
Ruby/SDL の本が出るみたいね。時期はわからんけど。
60名前は開発中のものです。:02/01/23 14:53 ID:???
>>59
256倍?
61名前は開発中のものです。:02/01/24 02:54 ID:???
違うみたい。
62名前は開発中のものです。:02/01/24 15:24 ID:???
>>59
絶対買う。
ソースきぼーん。
63名前は開発中のものです。:02/01/24 22:16 ID:???
>>58
3月号はP/ECEの記事があるyo!
64名前は開発中のものです。:02/01/27 21:41 ID:???
65名前は開発中のものです。:02/01/28 04:13 ID:???
>>64
サンクス。
66名前は開発中のものです。:02/01/28 12:59 ID:z3on8a9k
SDLゲームコンテストの入賞作品ってどうよ?
67名前は開発中のものです。:02/01/28 16:53 ID:???
日本からのもいくつかあるみたいね。
http://www.nostarch.com/game_contest_results.htm
68名前は開発中のものです。:02/02/01 02:53 ID:???
>>66
上位ランクの方から順に試そうとしたんだが、正直、げんなりした。
センスの違いとゆーか。
69名前は開発中のものです。:02/02/01 10:36 ID:???
SDL_IMEとか誰か作ってくれないかなぁ?
そのまえにSDLだと日本語表示が問題なんだっけ?
70名前は開発中のものです。:02/02/02 05:37 ID:???
>SDL_IMEとか誰か作ってくれないかなぁ?
おめーが作れよ。
71名前は開発中のものです。:02/02/23 06:33 ID:a2u9firL
SDLでイベント(キー入力)とシーンの描画を別のスレッドで処理すると
ウインドウが停止してしまいました。
N64やGameCubeみたいにイベントとビデオを別のスレッドで動かすことは
できないよう少しがっかりしています。WindowsではDirectInputで直に
取ってくるしかないのでしょうか。
72名前は開発中のものです。:02/02/23 15:21 ID:???
>>071
SDL_SetEventFilter() 使ってメッセージをフックすれ。
フック後の処理を別スレッドしたいなら、フック関数内でスレッド生成すれ。
あとmutex忘れるなよ。
7371:02/02/23 20:17 ID:+rToCvhx
>>72
あ..なるほど...! この手法ならうまく書けそうですね。
72さんご助言大変参考になりました。ありがとうございます!
74名前は開発中のものです。:02/02/23 21:30 ID:???
>>73
がんばれヨ。
あと質問する前にリファレンスをじっくり見ような。
英語が辛いならこーいのもあるぞ。(ちと古い&有名すぎるが。)
 http://www.wakhok.ac.jp/~momma/SDL/
7571:02/02/26 07:13 ID:nHGqkL6j
>>74
数日かかりましたが、別スレッドでうまく動かせるようになりました。(^^;)
74=72?さんのおかげです。ありがとうございました。
ようやくスタートラインでゴールは遠いですが…。
これからはリファレンスじっくり見るように心がけます。
7671=75:02/02/26 11:35 ID:O5eBq1eX
何度もすみません…。できた、と思ったのですが、チェックしてみると
SDL_SetEventFilter() のフィルタリングは SDL_PumpEvents() の直後
にしか発生しないようでした。私としては、PumpEvents とは非同期で
イベントが発生したときに来ると思っていたのですが
SDL_PumpEvents() で汲み取らないとフィルタリングも発生しないようです。

ある時点のマウスの状態をそのまま取得できれば良いのですが…
そういう関数は無いですよね…。どうしたら良いのでしょうか…。

--- モニタ ---
[VIDEO/CORE] ユニットイニシャライズ
[CORE] 処理開始(インターバルタイム 25 ms)

[CORE] フレーム 9 : マウス( 590, 242 )

[VIDEO] シーン描画開始(CondSignalを受けて)

[CORE] フレーム 10 : マウス( 292, 466 )
:マウス位置の更新がフリーズ < フィルタリングが機能していない...? >
[CORE] フレーム 22 : マウス( 292, 466 )

[VIDEO] シーン描画終了(SDL_PumpEvents 実行)

[CORE] フレーム 23 : マウス( 148, 43 )
[CORE] フレーム 24 : マウス( 149, 21 )

[CORE] 終了リクエスト
[VIDEO/CORE] シャットダウン
77お節介な72:02/02/27 00:33 ID:???
本当はSDLプログラマーじゃないんだが…
Document Projectのページ(http://sdldoc.csn.ul.ie/)をざっと見てみたら、

 8.Events (http://sdldoc.csn.ul.ie/event.php
  Eventfunctions (http://sdldoc.csn.ul.ie/eventfunctions.php

にチミが求めているモノらしい関数があったゾ。

・SDL_GetMouseState (http://sdldoc.csn.ul.ie/sdlgetmousestate.php
書式:
 #include "SDL.h"
 Uint8 SDL_GetMouseState(int *x, int *y);

引数:
 x,y … マウスポインタの座標を受け取るint型変数へのポインタorNULL値。

戻り値:
 ボタンの状態。
 SDL_BUTTON(X) マクロとの論理積をとる事で、X番目のボタンの状態を取出せる。


# リファレンスはブックマークしておくよーに。
78お節介な72:02/02/27 00:35 ID:???
本当はSDLプログラマーじゃないんだが…
Document Projectのページ(http://sdldoc.csn.ul.ie/)をざっと見てみたら、

 8.Events (http://sdldoc.csn.ul.ie/event.php
  Eventfunctions (http://sdldoc.csn.ul.ie/eventfunctions.php

にチミが求めているモノらしい関数があったゾ。

・SDL_GetMouseState (http://sdldoc.csn.ul.ie/sdlgetmousestate.php
書式:
 #include "SDL.h"
 Uint8 SDL_GetMouseState(int *x, int *y);

引数:
 x,y … マウスポインタの座標を受け取るint型変数へのポインタorNULL値。

戻り値:
 ボタンの状態。
 SDL_BUTTON(X) マクロとの論理積をとる事で、X番目のボタンの状態を取出せる。
7976:02/02/27 02:06 ID:JQVw0zDd
すいません、何度も…。(^^;)
GetMouseState は使っているのですが PumpEvents(またはPollEvent)を
呼ばないと、更新されないようで…。

えっと…、やりたいことは以下の通りなのですが(↓任天堂方式)

イベントスレッド:イベントだけを処理
ビデオスレッド:必要なら描画
メインスレッド:イベント・描画に関係なく一定時間で起動(コマ落ち対策あり)

SDLの制限ではビデオとイベントは分離できない仕様になっていて
ビデオ処理→イベント処理を繰り返し一つのスレッドで行わないといけないようです。
状態を取得したくても PumpEvents() を置かないと読みとってくれないので(^^;)
非同期で割り込みでイベントを感知する手段がSDLになくて、イベントの入力が
画面の描画後でしか読みとってくれない(^^;)です。
ビデオの速いマシンでは問題ないのですが、遅いマシンでは入力まで遅くなって
しまいます。(^^;)
これって、イベントドリブン式の弱点…なんですよね…。
リアルタイムゲームをつくるとき、イベント直後に割り込みでフックしてくるか
そのまま入力を読み取るパターンがないと困ると思うんですが、PumpEvents()
(PollEvent) が前提になってるみたいで…。
80名前は開発中のものです。:02/03/09 01:07 ID:cjQ6leFr
IBMあげ
www-6.ibm.com/jp/developerworks/linux/sdl/sdl.html
81名前は開発中のものです。:02/03/10 18:06 ID:149HiR+p
82名前は開発中のものです。:02/03/18 08:47 ID:???
重複age
83名前は開発中のものです。:02/03/18 08:48 ID:5Rsci23c
age
84taku:02/03/18 13:52 ID:???
ゲーム制作初心者が集まって、ゲーム制作をしたいと思ってます。
ゲーム作りに興味がある人は、メールをください♪
思っているだけで、まったくゲーム制作をしたことがない人でも結構です♪
とりあえず、私も少しは、やっていますが、初心者なので、みんなで勉強をしながらゲームを作っていきたいと思ってます♪
基本的に、web上でやる、フリーゲームで、ジャンルとしては、RPGを考えています。(いろいろなジャンルも作ろうと考えていますが・・・)
それでは、とりあえず、メールをください♪
85名前は開発中のものです。:02/03/19 14:38 ID:???
Web上でやるゲ−ムなのにSDLつかうのか?
86名前は開発中のものです。:02/04/14 11:55 ID:lp2DMwsU
age
87名前は開発中のものです。:02/04/14 11:56 ID:lp2DMwsU
使ってる人いないのかー?
88名前は開発中のものです。:02/04/15 02:17 ID:???
居るよ!!

安心したかい?
89名前は開発中のものです。:02/04/15 22:40 ID:???
スマソ。漏れソースをGPLにしたくないからAllegroを研究中。
9087:02/04/17 01:40 ID:B2sY58og
>>88さんだけかよっ!

ちょっと覚えるために弄ってたら、
簡単にMODが再生出来てかなり感動したんだけど、
みんなは、これに魅力を感じないのかな?
91名前は開発中のものです。:02/04/17 09:04 ID:JVlCUCtA
>>90
お気楽だよね、SDL。
英語読むのたるいから、LinuxJapanの連載で情報収集してるけど、
周辺ライブラリも含めると、ほんと、楽。
Win用のソースをちょこっといじってLinuxで動いたときは
正直感動した。

>>89
SDLはLGPLだから、自分のソースをGPLにする必要ねーだろ。
DLLつかうか、リンク前のオブジェクトを一緒に配ればOKだ。
92MLをRomってる七資産:02/04/17 11:09 ID:???
>>90
ライセンスの問題が把握できず躊躇している人が多いと思われ。
漏れもその一人だが。

>>91
SDL-MLの有志の方々がdocのja化を進めてます。

最近、SDLでデモ作るコーダーも少なからずいますね。
それらのアーカイブには、ソースついてないから、ソースはつけなくて・・・いいのかな?
93名前は開発中のものです。:02/04/17 18:44 ID:???
でもパフォーマンス的にまだAllegroのほうが優れてんだよな、周辺ライブラリも・・・。所詮WINAPIもどき。
94名前は開発中のものです。:02/04/17 19:30 ID:???
Allegroは日本語リソースが少ないのがアレなのかも。
9589:02/04/17 23:55 ID:???
ちうかAllegroはフォントが独自形式なのが最大のネック。
RPG等の文字情報の多いゲームが作りづらいっつーか作れん。
AllegroでTTFを扱う為のライブラリがあったはずなんだが、
今は影も形も無い…
96名前は開発中のものです。:02/04/18 06:46 ID:???
1.2.4 stable released
97名前は開発中のものです。:02/04/19 14:03 ID:???
Allegroの作者はコンシューマ系の人のようですね。
(ライブラリの設計見ただけで分かるけど(ワラ)
その辺の好みで使い分けるのもいいかも風来のシレン。
98名前は開発中のものです。:02/04/24 06:39 ID:es9pDMEY
SDL はシンプルなのがいい。
Allegro はゴテゴテしすぎ。
99名前は開発中のものです。:02/04/24 13:35 ID:???
えー、俺はAllegroのほうがシンプルだと思うにょ。
100名前は開発中のものです。:02/04/24 21:51 ID:???
101名前は開発中のものです。:02/04/27 10:11 ID:???
SDLのどこがシンプルなんだよ・・・(w
102名前は開発中のものです。:02/05/01 14:49 ID:???
>>101
サウンドの再生。つーか、シンプルすぎてSDL_mixer使わんと、ちょっと...
103名前は開発中のものです。:02/05/02 03:43 ID:sX.bsevc
Allegroはグラフィックの描画では
スプライン曲線、ポリゴン、スプライト、テキスト描画といったもの、
サウンドではネイティヴでのMIDI再生だとか、
場合によっては余分な機能が含まれている。

SDLではグラフィックの描画はFillとBlitのみ。
サウンドはPCMを垂れ流すだけ、みたいな。
これはシンプルだと思うけどなー。

ま、なんでも自分でやりたい俺みたいのは SDL が好きだ、
という話。

ライブラリ内部の話となると、SDL もシンプルじゃないけどね。
104名前は開発中のものです。:02/05/02 03:45 ID:???
ま、結局SDL_mixerやSDL_imageは使ってるけどね。
こういうのが分離出来るようになっているほうが落ち着く。
105名前は開発中のものです。:02/05/02 09:20 ID:???
>>101
DirectXと比較して(w
初代Direct3Dの初期化書いてみな。ゲイツ殺したくなるから。
106名前は開発中のものです。:02/05/02 11:30 ID:???
>>105
書いたことあるけど、別に。
107名前は開発中のものです。:02/05/02 12:29 ID:???
微妙にほほえましいやり取りしてるな、キミら。
108名前は開発中のものです。:02/05/02 18:18 ID:???
>>106
俺は二度と書きたくない。
何をどう初期化したのか後から見ても理解できんし。
初期化ごときに時間かけるのもアホらしい。
109名前は開発中のものです。:02/05/02 18:47 ID:???
まあ、いまさら文句言うなや。マイクロソフトがCOMに狂ってた頃の遺産だからしょうがない。
110名前は開発中のものです。:02/05/02 23:06 ID:???
SDLの魅力って何ですか?
111名前は開発中のものです。:02/05/03 00:49 ID:???
>>103
別にAllegroでもFillとBlitのみ利用して、
スプラインとかポリゴンは自分でってのは可能だと思うが。
ライブラリに余分なバイナリが含まれているからって、
実行形式ファイルも太るわけではないし。

むしろSDLのように複数のライブラリを組合わせて使うという方式は、
無駄(コードの重複)が生じやすい。
112名前は開発中のものです。:02/05/03 11:52 ID:QXZFUo7o
気分の問題です。
113名前は開発中のものです。:02/05/03 18:22 ID:P7bmG2Tg
SDL初心者です.

mingwを使っています.

実行ファイルが
SDL.dllを必要としないように
コンパイルすることは可能ですか?
114名前は開発中のものです。:02/05/04 01:19 ID:???
ソースを公開せずにスタティックリンク?
それはライセンス違反ですにょ。>>113
SDLはLGPLなのでソースを公開する、しないにかかわらず
DLLリンクで十分なはずです。
115名前は開発中のものです。:02/05/04 02:46 ID:IDR1uRSY
>>114
LGPLの勉強します
116113:02/05/04 02:50 ID:IDR1uRSY
あともうひとつ質問したいのです

mingwでリソースもコンパイルして
exeにいれますよね?
SDLのAPIみたら
画像の読み込みは
fileポインタ渡してたみたいなんです

これはどういうことなんですか?

あとexeに画像ファイルを埋め込むプログラムは
Linuxに移植は容易にできるのでしょうか?
117名前は開発中のものです。:02/05/04 06:19 ID:???
おいらはソース出してもらわないとよくわからないけど
実行ファイルに絵のファイルを結合してるだけなら、その実行ファイルと
絵の開始位置さえわかれば fileポインタで十分読み込めるのではないかと。

fp = fopen( ... ); fseek( fp, ... ); // 実行ファイルを開いて開始位置までシーク

ReadPicture( FILE *fp, ... ) {
fread( ... ); // いきなり読み込みでも開始位置まで来てるので問題ない
}

そこんところの仕組みがわからないけど、(WINネイティブな何かを使っているのか)
仕組み的には難しくなさそうですが…。
俺は素人なので偉い人タノム…。
118名前は開発中のものです。:02/05/04 11:29 ID:wX/OJnJI
Windowsリソース用の SDL_RWops を書けは行けるんじゃない?
119113:02/05/04 11:47 ID:IDR1uRSY
>>116
まだソース書いてないです
疑問に思ったもんで。

初心者でよくわからないのですが
fopenの引数はファイル名
だったと

>>118
見てみます

「書けば行けるんじゃない」
ということは
こんな風に普通はしないのですか?

画像はexeに入れないのでしょうか?
120名前は開発中のものです。:02/05/04 12:39 ID:???
>>113
fileポインタって何の事を言っているのかちゃんと書けや、このボケが。
121113:02/05/04 12:52 ID:IDR1uRSY
>>120
char* filename

初心者でごめんなさい
122名前は開発中のものです。:02/05/04 17:58 ID:???
画像が少なければ、const char hoge[] = { 0x00, ... };みたいな感じで画像を埋め込んでもいいだろうけど
数やサイズが結構あるなら実行ファイルと他データをまとめた
データファイルに分けるほうがスマートだと思う。
SDLを使うとかに関わらず・・・。
123113:02/05/04 18:18 ID:???
>>122
レスありがとうございます
124名前は開発中のものです。:02/05/04 20:33 ID:???
商用向けソフトならBMPやWAVデータとか解析されないように、
小細工しながら固めるけど趣味でSDL使うんなら、
外部から生のファイルを読むようにオープンに作ってほしいね。
125名前は開発中のものです。:02/05/04 20:52 ID:???
ファイルを1つにパックする理由は解析防止が主な理由ではなく、無駄にディスク容量を消費しないようにする為の工夫ですよ。
126名前は開発中のものです。:02/05/04 21:06 ID:???
ゲームでbmpとか
wavが見えたら
冷めるから
一個に固めたいです
127名前は開発中のものです。:02/05/04 22:50 ID:???
>>126
俺は、wav見えても気にしないけど、そーゆー問題じゃないんだよね?

root権を使わせてもらってもいいなら、ext2フォーマットのファイル
システムイメージを配って、それをloopディバイスつかってmountして
読み込ませるってのも手だねぇ。もちろん、ローダの中で自動化して
しまえば、ユーザには(表立っては)見えない。
普通は、中身をtarファイルにしておいて、実行時に/tmpに展開ってのかな。
HDDの空き容量必要だけど。
128名前は開発中のものです。:02/05/04 23:12 ID:???
>>127
なかなか難しいですね
レスありがとうございました
研究してみます
129名前は開発中のものです。:02/05/04 23:23 ID:???
>>127
OSに依存しそうだな・・・せっかくのSDLやAllegroが・・・。
130名前は開発中のものです。:02/05/05 00:57 ID:???
まあなんつーか
がんばれやとしかいえんな。萎え。
131名前は開発中のものです。:02/05/05 05:20 ID:???
>>126
データが見えて萎える? つまんねー奴だな。
データを簡単に交換出来れば色々改造出来て楽しいだろーが。
132名前は開発中のものです。:02/05/05 06:49 ID:???
実行ファイルをトップディレクトリにおいて、データは別のディレクトリに入れておけば、
生でも気が付かないものだ。
というか、実際気が付かないことが多かった。
133名前は開発中のものです。:02/05/06 03:48 ID:1PpldsKY
bcc32でSDLを使おうと思ったのですが、
> bcc32 -tW -O2 -DWIN32 -c SDL_main.c
しようとすると Must use C++ for STDCOMP.H というエラーが出てしまい、
だったらと今度は -P をつけると今度は
$(bcc)\include\alloc.h 107: オーバーロード関数群の中の一つだけしか"C"にできない
などと怒られてしまいます。

どうしたらいいのでしょうか?
134偽ASIMO:02/05/06 08:00 ID:???
mp3やmidiをmixer使って鳴らしたいが鳴らん。
どうしたら良いんだろう。
135_:02/05/06 09:05 ID:???
ageとく
136名前は開発中のものです。:02/05/06 18:16 ID:U532U/fU
SDL_mixerがmp3とmidiが再生できるようになっていない
(無効にしてコンパイルされている)んじゃない?
137名前は開発中のものです。:02/05/07 09:25 ID:???
いちおう、貼っておこう。
http://www.gnu.org/licenses/gpl-faq.ja.html
SDLは、LGPL(FAQ訳では劣等GPL)だから、もっと緩いけど。
138宣言されていない名前:02/05/14 18:42 ID:???
SDLは糞コードでもカリカリ動くからおもろい。
サイキョーまんせー。
139名前は開発中のものです。:02/05/14 21:44 ID:x.mXxrcs
 
140名前は開発中のものです。:02/06/13 11:18 ID:???
そういえば、SDLSKKなんてものが出てるんだね。
日本語入力に関しても解決の兆しが…?
141名前は開発中のものです。:02/06/17 14:14 ID:???
バックバッファにアクセスするにはどうすれば…
142名前は開発中のものです。:02/06/28 01:18 ID:EdGR6DaM
age
143名前は開発中のものです。:02/09/09 02:42 ID:???

          , ‐ァ'⌒ヾヽ  ァ'⌒-‐-、
          {___{==O}}.}⌒ ⌒ー-::,,.}ユ、      ∧∧
         r「-‐ヾ、ァ'´,::'´/ハヾ::、、ヽ、ノ     < 2  
         ハ _,、_/:::/::::/ ノ  }ノ \i} ト、      < g
.        /:..l`ト⌒ヾ.、::/⌒`   ⌒`// .:ヽ.    < e
        {:::::|::iヽ、 、 ){ァ'T.ヽ  .ハヾ/ハ::::::::l     < t
        ヾ、::l ヽ 'ヾ:l {__ツ  {ツ.'{ノ .l:i::ツ.    < !
          ヾ ハ ,__ト, ''.'' (⌒ ツ::} レ'^     < !
            〉ニ,,_ノヽ` ー‐''´ヾシ'        < !  
            l、  ノl/iニ)、ヾ、         <!!
             `} '´  〈  〉^ツ         ∨∨
            / ==   `ー'  〉‐っ       
           /、_...._     ヾ〉┘         
          〈ー、 ,,..,, .``ヽ、... ,べヽ
           ̄ ~`´iー`ヽ、_,,..=-、ハノ
                l  | |  l
              {,、,、,i, l,、,、|
             [ ェュソ[ ,ェ}_
             F=ィ⌒ヽ =ィ'⌒ヽ
             [、_ノ⌒l_ノ⌒}
144フォント使いたい:02/09/09 19:58 ID:bRdadYVo
Cygwin + SDL-1.2.4 + SDL_ttf-2.0.5 + freetype-2.1.2でTruetype Fontを使いたいのですが、
freetypeをインストールしたあと、SDL_ttfでリンクに失敗してしまいます。
コンパイルオプション等を付け加えなければいけないのでしょうか。
情報お持ちの方、よろしくお願いします。
145名前は開発中のものです。:02/09/12 06:36 ID:???
ごく普通にコンパイルできたけどなあ。
エラーメッセージをコピペしてみてちょ。
146名前は開発中のものです。:02/09/24 20:22 ID:???
147超初心者:02/10/10 03:49 ID:TCFGsPft
VC6.0にSDLをインストールする方法がわかりません!!
落としたファイルは"SDL-devel-1.2.5a-VC6.zip"です。
解凍後出来たサブディレクトリ"Include"と"lib"はVC6.0のどこに入れたらいいんでしょうか?
また何か設定があるのでしたら是非教えてください!! お願いします!!
148名前は開発中のものです。:02/10/10 08:01 ID:???
>>147
ツール->オプション の ディレクトリ を
選択して、インクルードファイルとライブラリ
ファイルの場所をそれぞれ指定すれば良い
のではなかろうか。よく知らんけど。
149名前は開発中のものです。:02/10/13 01:14 ID:7Mz0/fi+
1.2.5に DreamCast 対応?っぽい奇術があるんだけど、どうやってGD-ROMに
するんでしょうか?

150名前は開発中のものです。:02/10/13 05:49 ID:???
個人で使う分ににはRで十分では?
151名前は開発中のものです。:02/10/14 16:08 ID:???
最新版出せや( ゚Д゚)ゴルァ!!
152名前は開発中のものです。:02/10/19 18:08 ID:???
http://cefiro.homelinux.org/SDL/sdl-devel-msys.html
↑のとおりにやったんだがmp3が鳴らねえです。
oggとかmodは鳴るんだがなあ。

なんか他に必要なもんとかあるのかしら。
153名前は開発中のものです。:02/10/19 18:55 ID:???
↑自己解決しました・・・

BCCで遊んでたときにWindowsフォルダにつっこんでたDLLが
呼ばれてたぽいでした。迂闊。
154問題提起:02/10/21 21:47 ID:???
SDLとその周辺ライブラリは、機能が絞り込んであって、
開発者としては好きなものを組み合わせて作れる、
という大きなメリットになんですが、遊ぶ側としてはどうでしょう?
個々に集めるのは面倒ですし、同梱は若干無駄(場合によってはGPL違反)です。
別々のアーカイブにまとめて一緒に配布、というのが理想だと思いますが、
旧Verのdllを持ってるユーザーが、本体のみ落としてエラーに悩む、
といったバージョン管理の問題や、dll配布元へのリンクのみ掲載していた
場合のリンク切れ、といった問題もあります。

この辺、一度考えるべきだと思ったのですがどうでしょう。
155名前は開発中のものです。:02/10/25 11:16 ID:???
>>154
スタティックライブラリにコンパイルすれば良いんでは?
156名前は開発中のものです。:02/10/25 12:22 ID:???
>>155

ソース非公開のゲームとかに SDL をスタティックにリンクして配布
したら LGPL 違反になったりしない??
157名前は開発中のものです。:02/10/25 22:30 ID:???
そんな貴方にAllegroを。>>154

本家
http://alleg.sourceforge.net/
ポータル
http://www.allegro.cc/
FontLiblary。日本語表示の際必須。
http://nekros.freeshell.org/delirium/alfont.php

機能が集約されている分、必要なdllの数が少なく済む上、
ライセンスが緩いから安心してstaticlinkできる。
周辺LibはGPLも混じってますが。
(上に挙げたALFontはBSDライク)
158名前は開発中のものです。:02/10/26 05:32 ID:???
>>154
インストール時か初回実行時に DLL を自動ダウンロード。
159名前は開発中のものです。:02/10/26 16:27 ID:???
んでリンク切れで騒ぐ厨房を生み出す、と。
160名前は開発中のものです。:02/10/26 17:25 ID:???
ダウンロード先のリストをゲームの配布元が提供して随時更新すればいい。
161名前は開発中のものです。:02/10/27 01:43 ID:???
>>154

Windows でバイナリを配布する場合の話だとして…

>同梱は若干無駄(場合によってはGPL違反)です。

同封してGPL違反ってのはどういう場合なんでしょうか??

俺は開発に使ったdllをゲームに同封するのが最善…っていうか
別配布は現実的じゃないと思ってるんだけど…

理由はバージョンよるAPIの非互換性だけじゃなくて各種dllをコンパイル
するときのオプションによっても使える機能(oggやmp3の再生は?とか)
が変るせいで,他サイトで配布しているdllが自分の作ったゲームに
使えるかわからない.
一元的な配布元のあるdllですら非互換性に苦しめられることを考えると
同封が一番確実っぽい気がします.

配布物の容量が増えるのは確かに無駄だけど最近のネットワーク速度
やHDD容量を考えたらたいしたことはないと思うし…
162名前は開発中のものです。:02/10/27 04:05 ID:???
ソースを公開しないと GPL 違反
163名前は開発中のものです。:02/10/27 10:29 ID:???
>>162

SDL は LGPL じゃねーの?
164名前は開発中のものです。:02/10/27 17:47 ID:???
LGPLでもソース未公開・dll同梱は違反。
165名前は開発中のものです。:02/10/30 10:13 ID:???
LGPLの場合ダイナミックリンクすれば別バイナリと再リンク可能に
なるからそれだけでOKかと思ってたよ…(鬱
#こうしてソース非公開な人はAllegroに流れるのだろうか…?

じゃあどこまでがdll同梱になるんだろうか?
1.プログラムとdllを同じzipアーカイブに含めて配布(×らすぃ)
2.プログラムとdllを別ディレクトリに置いた一枚のCD-ROMを配布
3.プログラムを入れたzipとdll入れたzipを同じCD-ROMに入れて配布
4.プログラムを入れたzipとdll入れたzipを同じサイトで配布
166名前は開発中のものです。:02/10/30 10:42 ID:???
Allegro調べてみた。
すげー、giftwareだってよ。贈り物だなんていえないねえ、なかなか。
Delphiからも使えるみたいだし、ちょっと試してみる。
167名前は開発中のものです。:02/10/31 22:28 ID:???
>>165
>>164 でのソース未公開とは、ライブラリのソースの事だと思ふ。

ライブラリのバイナリを配る時には、ライブラリのソースを同梱するか、
ソースを別のアーカイブなどにして、同じサイトで同時にダウンロードできるようにしておくと、
ライブラリのバイナリを得る時に、ソースを得るチャンスがあったっていうことで、
後腐れが無くて良いらしい。
168名前は開発中のものです。:02/11/01 12:12 ID:???
>LGPLでもソース未公開・dll同梱は違反。
「ソース未公開」と「LGPL」が矛盾してるから,ここで言ってるソースがLGPLなライブラリのソースだとは思いもしなかったよ…(鬱

公開,未公開の話しじゃなくてSDLのバイナリを配るときにそのバイナリの元になったソースを入手可能な状態にしておけって話ね…

そのための唯一確実な方法がSDLのDLLの入ったアーカイブにSDLのソースを同梱することであると…

でも実際GPLなソフトのバイナリを配布してるところでも同じアーカイブにソース入れて配布することってほとんどないよね…

ってことでプログラムのバイナリのアーカイブにSDLのDLLを同梱しても同じ場所(WebとかCD-ROMとか)にDLLの元になったSDLのソースを置いておけばほぼOKってこと?
169名前は開発中のものです。:02/11/01 18:57 ID:???
>>168

> 同じ場所(WebとかCD-ROMとか)にDLLの元になったSDLのソースを置いておけば
> ほぼOKってこと?

そう思わないと、やっていけないでつ。
170名前は開発中のものです。:02/11/01 21:47 ID:???
ソースを同じサイトorメディア上で提供するにしても、
本体とdllを単一アーカイブにまとめてしまうと、
LGPLを正しく理解してない厨房が騒ぐ元になるから、
本体とdllは別アーカイブにしとくのが吉かと。
171名前は開発中のものです。:02/11/02 21:22 ID:???
>>170
ドキュメント読まない厨房のことまで知らんよ…

と,言いたいところだけど過去なにかのソフトでそういう騒ぎが
あったんかな??
172名前は開発中のものです。:02/11/03 07:38 ID:???
GPL/LGPL等ライセンスとゲーム製作
ttp://game.2ch.net/test/read.cgi/gamedev/1005818191/l50
173名前は開発中のものです。:02/11/30 05:44 ID:ER3K77Ku
保守sage
174名前は開発中のものです。:02/12/06 07:48 ID:c2Ro9O0h
ほっしゅsage
175名前は開発中のものです。:02/12/15 22:25 ID:HUkl6Mhv
ほしゅーぬsage
176名前は開発中のものです。:02/12/20 18:54 ID:Af1U/qQx
SDLのおかげで小一時間程度でゲームをMacintoshに移植できますた。
SDLってほんと素晴らしいですね。
177名前は開発中のものです。:03/01/07 08:32 ID:Myj5i+Ih
ちょーほっしゅ
178名前は開発中のものです。:03/01/28 22:37 ID:65gdd7Ia
ふぉしゅ
179名前は開発中のものです。:03/01/29 17:53 ID:vjQjG8Ot
SDL+OpenGLでの開発が
現在のクロスプラットフォームゲーム開発のトレンドですか?
180名前は開発中のものです。:03/01/29 19:48 ID:QoTB+m21
クロスプラットフォーム開発かぁ。
Windowsだけで充分なんだがなぁ。ELですかやっぱり。
181名前は開発中のものです。:03/01/29 20:09 ID:2TLqok57
ソースさえ公開しておけば、誰かか勝手にディストリビュートしてくれるという
ささやかな甘い夢を見ていましたが、徒労も虚しく散りました。
182名前は開発中のものです。:03/02/03 15:01 ID:yc2uzOwX
>>181
誰かに勝手に再配布してほしかったんですか?

>distribute
>〈動)〈他〉1 を分配する,配給する;
183名前は開発中のものです。:03/02/03 15:16 ID:vVlJ+JQZ
>>82
。・゚・(ノД`)・゚・。

つっこんでくれてありがとう。
こういうのは、もっともらしい言葉ではなんて言うんだろう。

「誰かが勝手に、*改変、配布*してくれるという」
と言いたかっただけです。

184名前は開発中のものです。:03/02/03 15:16 ID:vVlJ+JQZ
linuxのディストリビューション的なイメージで使ったのがまずかったでつね。
バリアントとでも言えばいいのか・・・。
185名前は開発中のものです。:03/02/03 21:02 ID:uW4hr5IH
contribute
186名前は開発中のものです。:03/02/04 21:12 ID:DYzm7D9n
なるほど。thx
187デフォルトの名無しさん:03/03/07 04:08 ID:kGU2rVVw
LGPLなのでありがたくソースは公開しません。

ところでSDL.dllはアーカイブに同梱してもよいのでしょうか。
SDL本家HPへのリンクをドキュメントに書いておけば平気と
理解しているのですが

188名前は開発中のものです。:03/03/07 07:46 ID:GOIf6vhG
                                 ∧ ∧   ∧ ∧
   /⌒~~~⌒\                       (   ,,)   (,,・Д・)
 / ( ゚>t≡ )y─┛~~                〜(___ノ  〜(___ノ ,γ_
(_ ノγ U  ∩_∩)   THANK YOU 2ch     ┌───────┐   \
  α___J _J         and          (| ●        ● |      ヽ
  / ̄ ̄ ̄ ̄\  GOOD-BYE 2ch WORLD! /.| .┌▽▽▽▽┐ .|____|__||_| ))
 /     ●  ●、                   ( ┤ .|        | .|□━□ )
 |Y  Y       \ またどこかで会おうね  \.  .└△△△△┘ .|  J  |)
 |.|   |       .▼ |                 | \あ\      | ∀ ノ
 | \/        _人|∧∧∩゛冫、 .∧_∧      |    \り.\     . |  - ′
 |       _/)/)/( ゚Д゚)/ `  . (´∀` )..ヽ(´ー`)ノ  \が\ .   |  )
 \    / 〔/\〕 U  / ∩∩ (    ) (___)    \と.\ .|/
  | | | c(*・_・)  |  |ヽ(´ー`)ノ_|  |  | |   |〜 /\.\う\| (-_-)
  (__)_) UUUU /∪∪ (___)(_(__) ◎ ̄ ̄◎─┘ .└──┘.(∩∩)
189名前は開発中のものです。:03/03/07 09:41 ID:DwiBfiZf
>>187
それで良いと思うけど、SDLのソースくれっていう奴のために手元にソースを
おいといた方が良いと思う。
本家にも古いバージョンのソースはないみたいだし。
190名前は開発中のものです。:03/03/07 18:05 ID:LfCbi5mk
            o
            /  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ /
           /   このスレは無事に  /
           /  終了いたしました    /
          / ありがとうございました  /
          /                /
         /   モララーより      /
         / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄/
  ∧_∧  /                /∧_∧
 ( ・∀・) /                /(・∀・ )
 (    )つ               ⊂(    )
 | | |                   | | |
 (__)_)                  (_(__)
191名前は開発中のものです。:03/03/08 16:23 ID:H/Rnpk5k
>>189
187じゃないがいいことを聞いた。
ありがとう。
192名前は開発中のものです。:03/03/24 23:47 ID:m8VXMJDL
保守
193名前は開発中のものです。:03/04/02 23:30 ID:No5TJrgx
保守
194名前は開発中のものです。:03/04/19 15:18 ID:Thepg4nc
age
195動画直リン:03/04/19 15:39 ID:uRI4tDpp
196名前は開発中のものです。:03/04/19 15:48 ID:WqwViPZg
□□□□■□□□□□■□□□□□□□□□□□□□□□□□□□□□
□□□■■□□□□□■□□□□□□□■■■■■■■■■■■■□□
□□■■□□□□□■■■■■■□□□□□□□□□□□□□■■□□
□■■□□■□□□■□□□□■□□□□□□□□□□□□■■□□□
□□■□■■□□■■■□□■■□□□□□□□□□□□■■□□□□
□□□■■□□■■□■■■■□□□□□□□□□□□■■□□□□□
□□■■□□□□□□□■■□□□□□□□□□□□■■□□□□□□
□□■□□□■□□□■■■■□□□□□□□□□□■□□□□□□□
□■■■■■■□□■■□□■■□□□□□□□□□■□□□□□□□
□□□□■□□□■■□□□□■■□□□□□□□□■□□□□□□□
□□■□■□■□□□□■■□□□□□□□□□□□■□□□□□□□
□□■□■□■□□□□□■■□□□□□□□□□□■□□□□□□□
□■■□■□■□□□□□□□□□□□□□□□□□■□□□□□□□
□■□□■□□□□■■■□□□□□□□□□□□□■□□□□□□□
□□□□■□□□□□□■■■□□□□□□□□□□■□□□□□□□
□□□□■□□□□□□□□■■□□□□□□■■■■□□□□□□□
197うんこ:03/04/21 12:06 ID:bNIVCvJy
OpenGLやDirectXが3Dマンセーになった以上
ちょっとした2DゲームでAPI使うぐらいなら
SDL使った方がいいかなって思って使ってるんですが

盛り上がってないですね、このスレw


「みんなageれ、なだれこうげきだ!!」
198うんこ:03/04/21 12:21 ID:bNIVCvJy
とりあえず僕が参考にしたサイトまとめさせてもらいます

本家ライブラリ(落とすのはdevelがついたファイル名の方)
ttp://www.libsdl.org/

ドキュメントマニュアル日本語翻訳サイト
ttp://www.ya.sakura.ne.jp/~logion/SDLdoc-jp/html/

日本語で大体のライブラリの使用例など
ttp://www.wakhok.ac.jp/~momma/SDL/

VCで使う方法など
ttp://www.mediawars.ne.jp/~freemage/progs/sdl/build.html
ttp://user.ecc.u-tokyo.ac.jp/~rr26303/develop/sdl/intro.html
199うんこ:03/04/21 12:32 ID:bNIVCvJy
●VCネタ (VC6 で動作確認済み)

○VCでコンソールウィンドウを殺す
(OpenGL + GLUT と同じ方法です)
#pragma comment(linker, "/SUBSYSTEM:WINDOWS /ENTRY:\"mainCRTStartup\"")

○ライブラリのリンクとか
(マルチスレッド用ライブラリに切り替える方法を
ソースで設定する方法がわからなかったので
プロジェクトで指定してください。
ていうか誰か博識な方、ソースで設定する方法教えてください…)

#pragma comment(lib, "SDL.lib")
#pragma comment(lib, "SDLmain.lib")

#pragma comment(linker, "/NODEFAULTLIB:\"libcd\"")
#ifdef _DEBUG
#pragma comment(linker, "/NODEFAULTLIB:\"msvcrt.lib\"")
#endif
200うんこ:03/04/21 12:33 ID:bNIVCvJy
ここまですれば、少しは盛り上がるかなって甘い期待…
201動画直リン:03/04/21 12:39 ID:DDjPtBC+
202名前は開発中のものです。:03/04/21 13:41 ID:rzY1hX/0
□□□□■□□□□□■□□□□□□□□□□□□□□□□□□□□□
□□□■■□□□□□■□□□□□□□■■■■■■■■■■■■□□
□□■■□□□□□■■■■■■□□□□□□□□□□□□□■■□□
□■■□□■□□□■□□□□■□□□□□□□□□□□□■■□□□
□□■□■■□□■■■□□■■□□□□□□□□□□□■■□□□□
□□□■■□□■■□■■■■□□□□□□□□□□□■■□□□□□
□□■■□□□□□□□■■□□□□□□□□□□□■■□□□□□□
□□■□□□■□□□■■■■□□□□□□□□□□■□□□□□□□
□■■■■■■□□■■□□■■□□□□□□□□□■□□□□□□□
□□□□■□□□■■□□□□■■□□□□□□□□■□□□□□□□
□□■□■□■□□□□■■□□□□□□□□□□□■□□□□□□□
□□■□■□■□□□□□■■□□□□□□□□□□■□□□□□□□
□■■□■□■□□□□□□□□□□□□□□□□□■□□□□□□□
□■□□■□□□□■■■□□□□□□□□□□□□■□□□□□□□
□□□□■□□□□□□■■■□□□□□□□□□□■□□□□□□□
□□□□■□□□□□□□□■■□□□□□□■■■■□□□□□□□
203名前は開発中のものです。:03/04/22 23:45 ID:WSEhSK/d
ていうか、ネタがないんじゃ?
最近大きな動きあったっけか?

SDL-Watchの真似事デモする?

もしくは、SDLのC言語以外のバインディングの評価をしてみるとか。
・Perl/SDL(前使ったときは、まだ未完成だった)
・Pygame(よく出来てる。描画関係以外のクラスをどううまく使うかが高速化のカギ)
・Ruby/SDL(使ったこと無い)
・Lua/SDL(ってあったっけ?)
・C++Wrapper(いくつかあるけどよく知らない)

とか。
204名前は開発中のものです。:03/04/23 00:00 ID:hWrxwtjz
  ∧∧   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  (,,゚Д゚) < なんだ、このスレもう終りか
  / つつ∬ \___________
〜(,,_,,)旦                     【THE END】
205名前は開発中のものです。:03/05/02 03:44 ID:9f0uLKqK
だれかWin+Eclipse+SDLでHelloWorld+簡単なグラフィクス描写までを実現するプログラム
作成を順を追って説明してください
日本語情報少なくてcygwinとかmingwとか入れたけど訳わからん。なんでコンパイル
通らないんだー

趣味プログラマ苦戦一日目
206名前は開発中のものです。:03/05/02 04:01 ID:t/WTsdV7
http://www.tsg.ne.jp/text/sdl-opengl/

ここじゃ駄目?Eclipseじゃないけど。
207名前は開発中のものです。:03/05/05 09:57 ID:Glaet3IN
SJIS -> Unicode変換して日本語表示をする方法がわからん
だれか教えれ
208名前は開発中のものです。:03/05/05 13:55 ID:baR9vPTY
SJIS->Unicode変換は変換テーブル使って変換するだけ.
テーブルは探せばすぐ見つかる.
ftp://ftp.unicode.org/Public/MAPPINGS/OBSOLETE/EASTASIA/JIS とか

でも面倒だからソースコードやデータファイルを最初から
UTF-8で書くという手も…
209名前は開発中のものです。:03/05/06 15:01 ID:hsPppZCr
SDLって、スプライトは使えないんですか?
210bloom:03/05/06 15:11 ID:E5msO/hk
211名前は開発中のものです。:03/05/06 16:29 ID:EvzuZlvt
                               ,,,,,,iiiilll!l″
                            ,,,,,,iiiil!!!llllll!゙°
                        ,,,,,,iiill!!!゙゙゙`,,iill!l゙’
                    liill!!l゙゙゙’  .iiiiil!!゙゜
                    `     lllllll
            ,,iiil,,,,,,iiiillll゙′            lllllll
            ,illll!!l゙゙゙,ill!゙′          lllllll
   .,iilll",,,,,,,ill!!llliiiiilllll,,,,,,,,,,,       .,,,,,lllll!″
  ,,iill!゚,,ill!゙゙,,il!゙’.,,lill!!!!!!!!!!!!゙′      ゙!!゙゙゙″
..,,iillllliiiill!゙liliiii,,.,,iill!lll,iiiiiiiiilト
`゙”゙゙lllllliil!!゙゙゙゙lll!l゙’'゙゙゙゙゙,,,,,,,,,,,i、
.,iiill!!゙゙llllll.lllllli,、.,iiiillll!!!!!!!!!°
..゙',iiii"llllll ゙!!゙"  ̄
: ,lllll`.llllll
..l゙゙゙゜ .!!゙゙′
212名前は開発中のものです。:03/05/16 09:05 ID:8fxTipKa
>>209
スプライトが透過部分のある画像転送って意味なら標準でできるよ。
スプライト用のライブラリもあるみたいだけど、機能を要求しないなら
自分で作ってもそれほど手間はかからないと思う。
213名前は開発中のものです。:03/05/30 01:32 ID:NvOwcZ2N
ペン4 2.4GHz、GeForce4、DDR-RDRAM512MBでWIN XPな環境なんだが。

testsprite.exeで-fastオプションつけたらFPSが60以下だった。他の
オプションだと全部200超えてるのになんでだ??

-fastつけたとき、コンソールにはスクリーンもスプライトもビデオメモリに
とって、ダブルバッファ使ってるらしき表示が出てたけど、それがまずいの?
214サンプルです:03/05/30 01:53 ID:scAvCgte
★こっそり見せます★
http://endou.kir.jp/betu/linkvp2/linkvp.html
215名前は開発中のものです。:03/05/30 02:13 ID:jFjVeOlq

<   終   了ーーーーーーーーーーーーーーーー!!!!

  ∨∨∨∨∨∨∨∨∨∨∨\  /∨∨∨∨∨∨∨∨∨∨
          /:|.       | |     /:|
        /  .:::|       ∨    /  :::|
        |  ...:::::|           /   ::::|
       i       ̄ ̄⌒゙゙^――/    ::::::::|
      /_,,___       . _,,,,__,_     :::::::::::\
      /   ゙^\ヽ..  , /゙   ¨\,.-z   ::::::::::\
      「 ●    | 》  l|  ●    ゙》 ミ..   .::::::\
     /i,.      .,ノ .l|  《       ..|´_ilト    ::::::::::\
    / \___,,,,,_/ .'″  ^=u,,,,_ v/..       :::::::::::::l!
    |            ̄ ,,、         i し./::::::::.}
   |  /  ,,____ _,/ ̄ \ \      ノ (  ::::::::::|
    |  |.. | /└└└└\../\  \    '~ヽ ::::::::::::::}
    |   .∨.|llllllllllllllllllllllllllllllllllllllll|           ::::::::::{
    |    |.|llllllllllll;/⌒/⌒  〕          :::::::::::}
     |   |.|lllllllll;   ./ .   . |          ::::::::::[
     .|   |.|llllll|′  /    . |    .|      :::::::::::|
     .|   |.|llll|    |     .∧〔   /    :::::::::::::/
    / }.∧lll    |    ../ /  /   :::::::::::::::::\
   /   /| \┌┌┌┌┌/./ /:::      :::::::::::::::::\
      ( ゙゙^^¨^¨゙゙¨  ̄ ̄ ̄ /:::::::::::         ::::::::::\
       ヽー─¬ー〜ー――― :::::::::::::
216名前は開発中のものです。:03/05/30 03:37 ID:byC9n7r3
217名前は開発中のものです。:03/05/30 13:18 ID:micRbbrC
>213
>testsprite.exeで-fastオプションつけたらFPSが60以下だった。
60近辺なら、vsyncに同期取ってるってオチはないのかな?
218名前は開発中のものです。:03/05/30 21:34 ID:RjyFpLrW
>>217
あ、そっか!
謎が思いっきり解けますた。
219名前は開発中のものです。:03/05/31 02:44 ID:vXSdP3DW
現在、荒らしによってこの板の利用が困難になっているため、避難所を作成しています。
出来ればこちらに移動するのをお勧めします。

ゲ製作技術板(避難所)
http://bbs.gamdev.org/gamedev/


↓こんな感じにするのがお勧めです。
-----
9 名前:名無しさん@ゲムデヴ[] 投稿日:2003/05/28 21:33
とりあえずOpenJaneに登録した

板一覧の上で右クリック→新規追加→板名とアドレス入れるだけ
220名前は開発中のものです。:03/06/19 07:12 ID:wnNHJfqc
環境:Win2k+VC6.0
コンソールに文字を出力する方法を教えてください。

SDL_netのデモでは printf 関数でコンソールに出力されてますけど
どうすればいいのでしょうか?
プロジェクトの設定は↓のを見てやりました。
ttp://user.ecc.u-tokyo.ac.jp/~rr26303/develop/sdl/intro.html

SDL_netのデモは↓
ttp://jcatki.no-ip.org/SDL_net/SDL_net_demos.zip

よろしくおねがいします。
221名前は開発中のものです。:03/06/19 08:03 ID:+MtqR3wC
ここなっつにかもん!
http://homepage3.nifty.com/coco-nut/
222名前は開発中のものです。:03/06/19 09:33 ID:1pLGOhoe
おおageられている・・・

>>220
win98とXPだけど
「Win32 Application」
でなく
「Win32 Console Application」
にしても動いたよ
223名前は開発中のものです。:03/06/19 10:14 ID:sQJsiDlb
SDLで、日本語を使うには、どうすれば良いのか
SDLで、日本語を使うには、どうすれば良いのか
SDLで、日本語を使うには、どうすれば良いのか
SDLで、日本語を使うには、どうすれば良いのか
SDLで、日本語を使うには、どうすれば良いのか
SDLで、日本語を使うには、どうすれば良いのか
SDLで、日本語を使うには、どうすれば良いのか
SDLで、日本語を使うには、どうすれば良いのか
224名前は開発中のものです。:03/06/19 14:14 ID:wnNHJfqc
>>222
出来ました。

「Win32 Console Application」 で

>>同「オブジェクト/ライブラリモジュール」に、SDL.lib SDLmain.libを追加する。
>>この2つ以外は消去してもかまわない(結局SDLライブラリから使用されるが)。

↑の所の 「この2つ以外は消去してもかまわない」の 所を消さずに追加してやったら
コンソールに出力されるようになりました。


どうもありがとうございました。
(Win32 Console Applicationでも出来たんですね)
225名前は開発中のものです。:03/06/20 02:13 ID:1Kt71I93
>>223

一行でいいだろ・・・。やったことはないがC MAGAZINEの2002年2月号のp.40に書いているが
226名前は開発中のものです。:03/06/20 02:22 ID:1Kt71I93
>>223
追加:
UnicodeマッピングのTrueTypeフォントを使うんだってさ
227名前は開発中のものです。:03/06/20 08:50 ID:EJThDH7b
>>223
フリーのビットマップフォント持ってきてそれを表示するでもいいと思うよ。

SDL_Kanjiとか。
http://user.ecc.u-tokyo.ac.jp/~s31552/wp/sdlkanji/
228名前は開発中のものです。:03/06/20 09:24 ID:Z3ggKriT
>>227
これって、フォントファイルは自分で用意すんの?
229名前は開発中のものです。:03/06/20 12:01 ID:TSajcp/+
>>228
XFree86の配布物に含まれてる奴とかは、フリーで使ってもいいんじゃないかな。
あとは、ここ↓で配布されてる奴とか。
http://openlab.jp/efont/
230名前は開発中のものです。:03/06/20 12:09 ID:Z3ggKriT
>>229
おぉ、おりがとう、なんだか、みんな親切だな。

231名前は開発中のものです。:03/06/20 18:53 ID:0Xcg3ACJ
みんな情報の少なさには苦労しているんだろうなあ・・・
232名前は開発中のものです。:03/06/20 19:52 ID:7hDLB5/8
>>231
英語の読めなささに苦労させられる
233名前は開発中のものです。:03/06/21 00:23 ID:io2aWcyG
SDLは結構日本語情報あるんじゃない?日本語MLもあるし。
234名前は開発中のものです。:03/06/21 06:56 ID:FhIWF/bf
日本語MLかぁSDL-fan-jp
なんか、レベルの差を感じて質問するのに
気が引けますが?
235名前は開発中のものです。:03/06/21 11:06 ID:O6kSeEmg
もうちょっと初心者向けのドキュメントとかあってもいいかもなあ。漏れはホスィ
でも漏れはSDLそのもので苦労することはあまりないか
結局OpenGLと一緒に使ってるからGLの方で苦労することはあるが
236名前は開発中のものです。:03/06/21 12:56 ID:emyIgRH4
SDLの日本語ドキュメント
ttp://www.ya.sakura.ne.jp/~logion/SDLdoc-jp/html/
があったから入ってこれたけど最初から英語だけだったら
やってなかったと思う。
(英語の弱さを悔やむこの頃)
やってみればDirectXより簡単だし、ソース付きで公開されているから
低レベルな所もわかるし良いもんだと思う。

サブライブラリが英語なのはWeb翻訳とかしながらやってるから
なんとなる。めんどうなファイル読み込みをライブラリに任せて自分は
ネットの勉強が出来るからおもしろい。

OpenGLもそのうちやりたいけど。今はネットゲームを作りたいのですた。
237名前は開発中のものです。:03/06/21 17:22 ID:dwUdFpe5
発展途上のAPIみたいなものの情報を探すときにはアチコチ覗いて情報を脳内補完しないといかんから
英語力も結構高い英語力が要求されるのがいやーん。ネットで使われる口語英語なんか嫌いでつ
238名前は開発中のものです。:03/06/21 17:40 ID:n1Py3ccO
Microsoftされるのがいやーん。
239名前は開発中のものです。:03/06/21 18:31 ID:vLrCifNg
>>238
LinuxでもMacでもSDL使った開発はできるよ
240名前は開発中のものです。:03/06/22 12:47 ID:i61swhch

SDL_Kanjiに、付いてた testSDL_kanji.c の文字列部分が、
DEV-C++のエディターで、文字化けするんだけど、
どうすればいいですか?

きちんと書き換えると、こんどはプログラムのほうで、
文字化けするし。


241名前は開発中のものです。:03/06/22 12:57 ID:YvL0dB5P
>>240
文字コードの問題。
testSDL_kanji.cは、EUCで書いてあるね。

READMEより引用
------------------
void Kanji_SetCodingSystem(Kanji_Font* font, Kanji_CodingSystem sys);
文字コードを指定します。sys には、
KANJI_JIS, KANJI_SJIS, KANJI_EUC が指定できます。
デフォルトでは KANJI_JIS が入っています。
------------------
242名前は開発中のものです。:03/06/22 20:12 ID:OOlHJ2ZO
だれかSDLで作ったゲームやらせてぇ〜

このスレの人が作ったゲームがやりたいのぉ
243名前は開発中のものです。:03/06/22 23:47 ID:yqY4tb/I
煽りか
244名前は開発中のものです。:03/06/23 18:25 ID:tF2WCm4T
まじでぇ、ゲームやらしてぇ
245名前は開発中のものです。:03/06/23 18:29 ID:GrByEcFz
>>244
自分で作るかサイト探せ
246 :03/06/28 00:10 ID:BDO1zZrl
MSVCRTD.lib(cinitexe.obj) : warning LNK4098: defaultlib "msvcrt.lib" は他のライブラリの使用と競合しています;
/NODEFAULTLIB:library を使用してください

って警告でたんですけどさっぱりどうすればいいのかわかんないです・・・わかるひと教えてください。゚(ノД`)゚。
247名前は開発中のものです。:03/06/28 05:59 ID:PdiVeFTn
>>246
前に見たけどどうやったっけなあ・・・

ttp://user.ecc.u-tokyo.ac.jp/~rr26303/develop/sdl/intro.html

をよく読んでその通りにやってみるとか

プロジェクト->設定->一般->Microsoft Foundation Classを「共有DLLでMFCを使用」とかで直るのはこれだったっけ??
248名前は開発中のものです。:03/06/28 13:26 ID:Qu9eHBux
リンクオプションだかでマルチスレッド対応のライブラリを使用するとかそういうオプションを
選択すればOKだったようなきがする。禿げしくうろ覚えなままかいてるけど。
249名前は開発中のものです。:03/07/09 19:52 ID:G+nI3ASe
>248でおそらく正解。[プロジェクト]-[設定]-[c++]-[コード生成]で
ランタイムライブラリの種類を選べるので、これを正しく設定。
同じプロジェクトで違うライブラリをリンクしてるとそのメッセージが出ます。
その手のメッセージは、たとえばLNK4098とかmsvcrt.libとかでぐぐると、
いろいろ参考資料が見つかるよ。
250名前は開発中のものです。:03/07/09 20:39 ID:9uNK8Vnf
>>249
激しくオソレス藁タ
251名前は開発中のものです。:03/07/12 10:07 ID:I3wA914C
まあ情報が増えるのはよいことだろう
252名前は開発中のものです。:03/07/14 08:00 ID:CqF5pBWz
2DはSDL_gfx使ってますが
3Dでおすすめのライブラリ
ありますか?
253名前は開発中のものです。:03/07/15 15:48 ID:CmcjizOd
>>252
OpenGL
254名前は開発中のものです。:03/07/27 11:26 ID:STOtHZvX
sdl関係のページてばリンク切れが多い
移転多いのもわかるけどたまにはメンテして欲しいような
255名前は開発中のものです。:03/07/28 20:07 ID:aLiRrzo+
SDLでDirectXを有効にするためには、
何かファイルや設定が必要でしょうか?

>17-18を参照して、
テストプログラムがコンパイルできるかどうか、、、
調べようと思ったんですが、何処のテストプログラムか
判断付きません(鼻血

bcc55で環境構築しましたが、
ページが書かれた当時とバージョン違うようで、
bcc用のSDL.lib(SDL_image.libも!)も最初から
SDLのパッケージに入っていました。なんとお手軽な。

不足していたヘッダもコソーリ入ってるんじゃ
ないのかなと期待してるのですが、、、
アマちゃんですか?


256名前は開発中のものです。:03/07/29 01:04 ID:gu85yN8H
257名前は開発中のものです。:03/07/29 01:18 ID:gPIbAMiY
☆無修正画像&サンプルムービーをどうぞ!!☆
http://yahooo.s2.x-beat.com/linkv/linkv.html
258名前は開発中のものです。:03/07/29 16:17 ID:iTWy6PFy
>>255
17の
>>SDLはDirectXが入ってる環境では自動的に使ってくれるらしい。
>ヘッダとライブラリは必要。
ってのはgccとか使ってSDL自体を自前でコンパイルする場合だと思われ
bcc + SDLのバイナリ配布
でプログラミングするだけなら特にDirectX関連で別途用意する
ものはないと思う。
(バイナリ配布されているSDL.dll自体が使えるなら
DirectXを使う設定でコンパイルされているので)

あと今どのビデオドライバを使っているかどうかは
ttp://sdldoc.csn.ul.ie/sdlvideodrivername.php
でわかると思う。
259名前は開発中のものです。:03/07/29 18:30 ID://nB7mSB
SDLってゲーム用のライブラリなの?
通常のアプリにはQtとかwxWindowsとかの方が使われている気がする
260名前は開発中のものです。:03/07/29 19:13 ID:MKbOjP9O
>>258
ぉぉ、なるほど早速参考にしてみます。

で、やりました。
>directx
ありがとうありがとう(涙

>>256さんに紹介されたページ見て、
実はcygwinとかmingwで環境構築するのに挫折しますた。
なんて言えなかったんです。directxの初期化で挫折してSDLに流れたとも言えない。

お手軽なsdl+bcc++の環境は、
ものぐさプログラマには最適な環境だと思います。

ゲームのフレームワークを作っている段階ですので、
見せられるものはないですが、いずれ。
261256:03/07/30 01:17 ID:9leRKFRF
>>260
あぁ、bccでの話でしたか。
こっちこそ、よく見てなくてスマソ。

# 私自身は MinGW + MSYS で環境構築して利用してるんで、つい。
262名前は開発中のものです。:03/07/30 08:54 ID:emdlFuX2
>>260
>実はcygwinとかmingwで環境構築するのに挫折しますた。
>なんて言えなかったんです。
全部ソースからコンパイルすると大変だけどcygwinで
バイナリパッケージを使えば挫折しなかったかも…

ttp://cefiro.homelinux.org/topics/SDL/setup-win32-cygwin-bin.html
263260:03/07/30 14:41 ID:XcasW74I
ぐふ、いずれクロスコンパイル環境作るときに使ってみます。
cygwin自体はQt開発のお遊び用に入ってたりして(;´Д`)

bccで環境作った手順
1.bcc55インストール
2.sdl1.2.5,sdl_image etcを展開→c:\sdl\include c:\sdl\lib へ
3.sdl1.2.5のbcc用アーカイブからライブラリをc:\sdl\libへ移動
4.sdl_imageなどbccアーカイブに入っていないライブラリを
  dllからimplibで取り出しc:\sdl\libへ移動
5.ilink32.cfg bcc32.cfgを用意
6.makefileを用意

あとはテキストエディタとコマンドプロンプトでちまちまと。
264260:03/07/30 21:22 ID:etHIwd/w
帰宅中で暇なので駄レス
sdl触って2週間。c/c++のブランク4年です。

悪戦苦闘しながらようやくゲームループとタスクシステム、
登録型描画の仕組みとフレームスキップが実装出来ました。
あと、入力を最低限抽象化。(joystickは放置中)

C/S型のゲームを作りたいので、
オブジェクトは敵味方自分問わず、
IDとメッセージを受け取って処理を行う形。

まだコントロールする部分は作ってないので、
入力から直接オブジェクトにメッセージ送ってみたり。
マウスクリックしたところにキャラがアニメーションしながら
移動するようにはなってる。
8方向移動画像がないので歩くとは言えない罠。

先は長いぞ
265名前は開発中のものです。:03/07/30 21:45 ID:etHIwd/w
まだまだ着かない

入力部分組んだ時に文字列入力にも対応。
通常時Enterを押すと文字入力に移るような感じ。
連動してunicode_enable(だっけ)も制御。

入力文字列はバッファに保持しつつ、
ビットマップフォントで表示。
ログ管理を実装すればchatも可能かな。

ローマ字入力だけですが何か?
266名前は開発中のものです。:03/07/31 12:00 ID:6e6nzADa
やりたい事
背景描画として32x32の画像を640x480の画面に敷き詰める。

・手順A
毎周期screen(表示サーフェイス)にmapchipを直接描画

// 描画周期
for(x=0; x<20; x++){
    for(y=0; y<15; y++){
        dst_rect.x = x*32; dst_rect.y = y*32;
        SDL_BlitSurface(mapchip, &src_rect, screen, &dst_rect);
    }
}

・手順B
 あらかじめmapchipを敷き詰めたbg用サーフェイスを作成し、
 毎周期screenにbgを転送(一般的な手法ですね)

// bgサーフェイス生成
bg = SDL_CreateRGBSurface(SDL_SWSURFACE, SCR_W, SCR_H, SCR_BPP,rmask, gmask, bmask, amask)
// 続いてbgへmapchipを敷き詰める
for(x=0; x<20; x++){
    for(y=0; y<15; y++){
        dst_rect.x = x*32; dst_rect.y = y*32;
        SDL_BlitSurface(mapchip, &src_rect, bg, &dst_rect);
    }
}
// 描画周期 bgをscreenにBlit(各rectは640x480を設定)
SDL_BlitSurface(bg, &src_rect, screen, &dst_rect);
267名前は開発中のものです。:03/07/31 12:01 ID:6e6nzADa
30fpsでループを回している状態で、
手順Aは30fpsで描画されるのに対して、
手順Bは15fps程度しか出ないのです。普通逆だろうと。

bg作成時にSDL_CreateRGBSurfaceでSDL_HWSURFACEとか
|SDL_DOUBLEBUFとかやってみたのですが全く変化がありません。
ひょっとしてSDL_CreateRGBSurfaceを使う事自体が誤りなんでしょうか?
268名前は開発中のものです。:03/07/31 14:23 ID:6e6nzADa
自己レス
人のソースを眺め見ました。
で、見つけたもの

SDL_DisplayFormat -- サーフェスを表示フォーマットに変換します。

bg = SDL_DisplayFormat(tmpbg);
としてワンクッション置くと速度低下はなくなりました。
269名前は開発中のものです。:03/07/31 20:14 ID:9nUZEgou
>>266-268
これからも情報よろしく!
270260,266:03/08/03 06:31 ID:2INujupL
まだ、飽きずにsdl触ってます

こんな感じ
ttp://www.metalmax-online.com/up/source/mmo0111.gif

カーネル部分はちまちまと出来てはいるんですが、
やっぱ素材用意するのが大変ですよね。

ウィンドウ一つ出すためにも素材用意しなきゃならないし、
文字表示もTTF導入が面倒なので放置中。。。
271名前は開発中のものです。:03/08/03 06:49 ID:2INujupL
game no main

// デバッグ表示設定
rend_dbg=render_reg_text(REND_PRI_DBG,str);
// メインループ
while(input_main()==TRUE){
task_call();
if(!frame_skip){
fps++;
render_draw(); // 一括描画
}
maxfps++;
frame_skip=true;
while(true){
dw0 = SDL_GetTicks();
// 経過時間
dw1 = (dw0 - time_last) * 3 + time_mod;
if(dw1>100) break;
SDL_Delay(1);
frame_skip=false;
}
time_last = dw0;
time_mod = dw1 % 100;
if((time_last - time_start)>=1000){
sprintf(str,"fps:%d/%d",fps,maxfps);
fps=0;
maxfps=0;
time_start=time_last;
}
}
render_free_obj(rend_dbg);
272名前は開発中のものです。:03/08/03 06:53 ID:2INujupL
主にここを参考にしています。
ttp://giggle.cside6.com/hotate/index.html

SDLプログラマにも凄く参考になると思う。
シンプルなSDLにシンプルなゲームプログラミング。

メインループつーかフレームスキップは、
見ての通り殆どそのまんまです(;´Д`)
273名前は開発中のものです。:03/08/03 11:04 ID:tBp4Eh5I
>>270
楽しみ!!
できたらやらしてくだはい
274名前は開発中のものです。:03/08/03 11:32 ID:atTRjDcc
SDLの欠点は、実際にゲームを作ろうとすると、
フォントやGUIが面倒なこと。

日本語表示がデフォルトのライブラリーキボンヌ
275名前は開発中のものです。:03/08/03 20:41 ID:AJVBNou5
日本語の入力もね。
SKKじゃなー
276名前は開発中のものです。:03/08/03 21:32 ID:2INujupL
>>274
表示する分にはsdl_bdfとかsdl_kanjiが良さそう
ttp://user.ecc.u-tokyo.ac.jp/~s31552/wp/sdlkanji/

導入手順からライセンス気にしないでいいbdfデータとか
どこかに一通りまとめて載ってればなぁ

>>275
入力だけ環境依存てのもイヤンだけど
imeをサポートするのが良い気もするね
ttp://www.freeml.com/ctrl/html/MessageForm/[email protected]/582/

ここだけは他の環境に比べると敷居が高いかな
277名前は開発中のものです。:03/08/03 22:23 ID:wQr5xfPP
SDLでゲームを作ってるんですが、
画像のRGB値を変えて画像を赤っぽくしたり、
フェードさせたりしたいんですが、
どこかにサンプルでもないでしょうか?
278名前は開発中のものです。:03/08/04 09:14 ID:O+VX8o/I
誰かに SDL_ime を作ってほしいね…
279名前は開発中のものです。:03/08/04 11:08 ID:fZqC0/Lp
>>277
ピクセル単位で操作するだけなら、
SDLdocと一般的な色調補正アルゴリズムで可能かな
アルファチャンネルをいじる

って、遅くて使い物にならない予感なので、
SDL_gfxがその用途でしょうか

ttp://www.ferzkopp.net/Software/SDL_gfx-2.0/
>imageFilter functions

関数多すぎ。

てか、使ってないので具体的に書けなくてスマソ
280名前は開発中のものです。:03/08/04 11:19 ID:fZqC0/Lp
>279の補足
sdldoc
>ttp://zinnia.dyndns.org/~cvsweb/sdldoc-jp/guidevideo.html#GUIDEVIDEOINTRO
コレな→getpixel()とputpixel()

ピクセル単位だとフィルタの処理DIBと変わらない
適当にぐぐって参考になりそうなページ
ttp://www.sm.rim.or.jp/~shishido/graphics.html

実用速度に達しなかったら、
SDL_gfxの使い方を調べる、と
281279:03/08/04 11:44 ID:fZqC0/Lp
>アルファチャンネルをいじる
思いつきで書こうとしたゴミが残ってました
気にしないでください気にしないでください
282名無しさん@Linuxザウルス:03/08/04 21:09 ID:caYyIIpw
pngで真っ赤な画像を作成する。
アルファを50%ぐらいに設定で書き出し。

SDL_imageで読み込み
画像描画後のscreenにBlitしてやる。
一番簡単な簡単な赤色フィルタのできあがり。

速度的に問題なければこんなんでも
いいじゃんと思う
283名前は開発中のものです。:03/08/05 15:08 ID:zbiAQW5j
>>282
# 速度的な問題はおいておくとして

仮にその方法でやるにしてもpng画像はつくらずに,
* SDL_CreateRGBSurface() で Surface つくって
* SDL_FillRect() で赤く塗って
* SDL_SetAlpha() で半透明にして
半透明の赤画像作るんじゃない?
(これならSDL_Imageもいらないし…)
284282:03/08/05 21:48 ID:eW46RnuS
>>283

秘密だがな、
SDL_SetAlphaの説明で泡を噴いた

pngだと半透過もプログラム無しで自由自在だ!
285名前は開発中のものです。:03/08/06 09:51 ID:aF4kdC5r
フェードに使いたいと思うのですが、
>283さんみたいな方法で半透明のグラデーション(?)って、
どうやって作るんでしょうか

SDL_MapRGBAでピクセル単位で設定していくのかな
プログラムの流れが掴めないんです...
286名前は開発中のものです。:03/08/06 16:38 ID:qsYmH3Qw
>>285
すごく冗長に書くけど下のような処理でいいの?

screen = SDL_SetVideoMode(640, 480, 32, SDL_SWSURFACE);
tmp = SDL_LoadBMP("back.bmp");
back = SDL_DisplayFormat(tmp);
tmp = SDL_CreateRGBSurface(SDL_SWSURFACE, 640, 480, 32, 0xff000000, 0xff0000, 0xff00, 0xff);
for (i = 0;i < tmp->h;i++){
 SDL_Rect dstRect = {0, i, tmp->w, 1};
 SDL_FillRect(tmp, &dstRect, SDL_MapRGBA(tmp->format, 0xff, 0, 0, i * 0xff / tmp->h ));
}
redGradation = tmp;
SDL_BlitSurface(back, NULL, screen, NULL);
SDL_BlitSurface(redGradation, NULL, screen, NULL);

# 実際やるなら pixels を直接書き変えるかもだけど…
287285:03/08/07 01:12 ID:ecuGQ5wX
>286
ははぁそんな風に使うのですか
># 実際やるなら pixels を直接書き変えるかもだけど…

処理の速度もスマートもこっちの方が良さそうですね...

ともあれ、ありがとうございました!
288277:03/08/10 22:04 ID:3fyZnj/b
>>279-
色々とありがとうございます。
昔ながらの256色イメージだけで作りたいので
アルファは使わずにパレット操作で
なんとかできるようにがんばってみます。
289名前は開発中のものです。:03/08/14 19:27 ID:cMmbZR7Z
SDL自身はLGPLだからDynamic Linkすれば、
アプリケーション側はライセンスに縛られない。

ここまではいいとして、WindowsやMacの場合はlibSDLmainを
スタティックリンクせざるを得ない気がするんだが、
これのライセンスは大丈夫なのか?
290名前は開発中のものです。:03/08/14 21:54 ID:2h8LvvFv
>>289
SDL-1.2.5/src/main/win32/SDL_main.cを見ると
> SDL_main.c, placed in the public domain by Sam Lantinga 4/13/98
って書いてあるから win32 の場合は問題ない.

beos や macos, macosx の SDL_main のソースには LGPL
っぽいことが書いてあるので厳密に見ると libSDLmain を
スタティックリンクするとアプリケーションのソース公開の
必要が出てくるはず.

ただし SDL 作ってるところがそれを要求することはなさそうだし,
win32 バージョンがパブリックドメインになってるところを見ると,
スタティックリンクの問題は認識してるっぽい…

要望さえすれば win32 以外の libSDLmain のソースコードの
ライセンスも変更してくれる可能性は高いんじゃないかな??
Mac 版バイナリとか配布したくてどうしても気になるならメール
してみれば??
291名前は開発中のものです。:03/08/14 23:33 ID:cMmbZR7Z
>>290
ありがトン。
今回Win32とMacOSXを考えてたんですが、
OSXのほうは厳密に見たらアウトっぽいでつね。
ただ、先程本家SDL-mlの過去ログとかあさってみたんですが、
それで問題になってるケースは無いようなんで、
気にしすぎなければいいだけなのかも、と思えてきました。
# 今年の2月ごろにLicense変更の議論があったみたいですが、
# 変わるとしても次バージョン(SDL-1.2.6)からなのかな?

本当は、
> Mac 版バイナリとか配布したくてどうしても気になるならメール
> してみれば??
するのが正しい対処なんだろうけど英語読むのはともかく書くのが苦手で…。
292名前は開発中のものです。:03/08/15 06:52 ID:UWeiB8uB
>>291
ごめん.よく見たら SDL-1.2.5/src/main/macosx/SDLmain.m には
> Feel free to customize this file to suit your needs
って書いてあるだけで LGPL だとは書いてないね.
これがライセンスに相当するのかよくわからんけど,
問題ないのかも…
293名前は開発中のものです。:03/08/15 23:07 ID:PGk8s/Xy
SDLを簡単に使える統合開発環境無いですか?
294名前は開発中のものです。:03/08/15 23:58 ID:8cJqaZWw
>>293
VC++でもProject Builderでもお好きにどうぞ。

そもそもSDL自体がウィンドウにWidgetペタペタってタイプのライブラリじゃないんで、
統合環境使っても便利なデバッガぐらいの意味しかない。
295名前は開発中のものです。:03/08/16 06:04 ID:Pwn6a/b8
296名前は開発中のものです。:03/08/16 16:13 ID:UdbGIJgL
sdlで開発していてソースを公開していないとこ
ありますか?良いのかダメなのかという議論より
そっちを探した方が早いと思うんだけど

自分でも探してきまーす
297名前は開発中のものです。:03/08/18 09:32 ID:UOWMD29Z
>>296
あるかと言われればここにいっぱいあるかと
ttp://www.lokigames.com/products/

でも仕事で SDL を使いたいとかの場合,人がどう使ってるか
じゃなくてライセンス上(法律上)問題がないことが確認できないと
使えない(会社の許可がおりないとか),みたいなこともあるので
ライセンスについて話をしなくてすむということにはならないでしょう…
298名前は開発中のものです。:03/08/19 11:22 ID:WgDTgw+R
>>297
>ライセンス上(法律上)問題がないことが確認できないと使えない(会社の許可がおりないとか)
会社の許可があろうがあるまいが、ライセンス上の問題を抱えたまま使うわけにはいかないだろ。
299297じゃないが:03/08/19 22:51 ID:pK/wVDNB
>>298
まあまあ・・・
300_:03/08/19 23:39 ID:o8K5C254
301名前は開発中のものです。:03/08/20 01:58 ID:GLauqFru
■無料でオマンコが見れるのは独身貴族だけです■
■2000人限定ですのでお急ぎ下さい■
http://www.yahoo2003.com/akira/linkvp.html
302297:03/08/20 08:54 ID:jwy9xvpt
>>296
298 みたいのに叩かれないようにライセンスはちゃんと
チェックしましょうってことですね…
303名前は開発中のものです。:03/08/20 15:33 ID:2JkP3biW
SDLでゲームを作ってるんですが、
ウィンドウハンドルやインスタンスハンドル
の取得はできないのでしょうかね?
後、DLLをEXEと同じフォルダに置いていますが
違うフォルダにおけたらいいなと思ってるのですが
これもやっぱり無理なんでしょうか・・・
よろしければ教えてください。
304名前は開発中のものです。:03/08/20 15:58 ID:IAQ+2Jdj
>>303
あれ?SDL.dllの方はsystem32とかに置いても動くんじゃなかったっけ?
305名前は開発中のものです。:03/08/20 17:46 ID:zeCXkCoe
>>303
DLL一般に言えることだけどパスの通ったディレクトリ
ならどこに置いてもいいんでない?
306名前は開発中のものです。:03/08/30 17:14 ID:wTz8Yud2
保守っと。
307名前は開発中のものです。:03/08/31 10:00 ID:Jri/HO3q
ttp://www.ferzkopp.net/Software/SDL_rotozoom/index.html
上のrotozoomSurfaceを使ってるのですが、画像を回転させたあと
SDL_SetAlphaを使って半透明にしたいのですが、うまくいきません・・・
どうしたらいいのでしょうか?
308名前は開発中のものです。:03/09/01 14:29 ID:ND5cseGq
>>307

内部で作ったサーフェイスで回転させて
SDL_SetAlphaでAlpha設定した後
表示サーフェイスにBlitしてもダメ?
309307:03/09/02 11:03 ID:TJ4A1y2c
>>308
内部で作ったサーフェイス、っていうのがよくわかりません・・・(初心者ですみません)

どうもSDL_SetAlphaで設定したAlphaが無視(?)されてるような感じなんです。
310名前は開発中のものです。:03/09/02 14:48 ID:Nz0HHtiV
>>307
半透明にしようとしているSurfaceのフォーマットと
SDL_SetAlphaの引数あたりが怪しい…

ってか状況を再現できる最小限のソースコード
くらい出してくれないと。
311名前は開発中のものです。:03/09/21 13:28 ID:yIbPH+72
こっそり保守。
312名前は開発中のものです。:03/09/30 13:49 ID:UUy5SKlJ
なんかSDLで作ったソフトを起動してる間NumLockとかCapsLockとかの
切り替えができなくなるのは俺だけ?
押してもキーボードのNumLockとか光ってるところが反応しない。
俺だけだったら放っておいて下さい。
313名前は開発中のものです。:03/10/01 01:15 ID:BAewoLig
>>312
とりあえず試しにWin2K, MinGWな環境で
SDL1.2.5のtestglとか走らせてみたがそんなことにはならなかった。
314名前は開発中のものです。:03/10/02 07:10 ID:rM1nLuHp
>>313
レスどうもです。
うちは98SEの1.2.5なのだけど、サンプルのソースとか他の公開されてる
SDL使用のソフトとかを実行してもそうなります。
多分俺の脳がどこか腐ってるんだと思います。
315名前は開発中のものです。:03/10/02 11:19 ID:IlayBond
CTRL+左キーが利かないキーボードあるんだけど、
そんなのは関係ないのかな。
316名前は開発中のものです。:03/10/16 00:19 ID:4n/2vXoO
SDL for Delphi ってあるでしょうか??
Ver0.5というのはあったんだけど、、
317名前は開発中のものです。:03/10/19 01:43 ID:aHpL9q55
>>316
試しにググってみたけど何か違うものばかり引っかかりますな。
bc++5.5でSDLが動いてるようだから、技術的には可能そうだけど。
318名前は開発中のものです。:03/10/19 06:20 ID:KVBreJJq
オレも試しにググってみたけど
↓で配ってるJEDI-SDLっての使うしかないんじゃないの?
http://www.delphi-jedi.org/Jedi:TEAM_SDL_HOME

試しにダウンロードして中見たらRunTimeはSDL-1.2.4だったよ。
Ver0.5ってのはJEDI-SDLのバージョンでは?
319名前は開発中のものです。:03/11/05 16:30 ID:McixPKi6
プログラミング初心者でSDL弄ってるんだけどさ、実行中
常にCPU使用率が100%になるのを防ぐ手立てって無いものかな。
320名前は開発中のものです。:03/11/05 16:46 ID:A/imeFD/
>>319
適宜SDL_Delay()を使う。
SDL_gfxのFramerate controlモジュールを使う。
321名前は開発中のものです。:03/11/22 00:08 ID:Rkcr0fEN
Routine-Workさんのサイトを参考に、WinXPPro+MinGW3.1.0-1+MSYS1.0.9で
SDLをmakeしてみた。

SDL -> OK 問題なし
SDL_mix -> makeは問題ないが、出来たDLLをロードすると落ちる。
SDL_image -> 同上。

何か間違えたかと思い、
MinGWのバージョンを2.0.0-3に落としてみたところ、
全て問題なし。むー。ウチの環境だけの問題なんだろうか?
322名前は開発中のものです。:03/11/22 00:10 ID:Rkcr0fEN
>>321
あ。微妙にミス&書き忘れ。
使用したライブラリのバージョンはそれぞれ、
SDL-1.2.6.tar.gz
SDL_mixer-1.2.5.tar.gz(<-mixじゃなくてmixerですた)
SDL_image-1.2.3.tar.gz
です。
323名前は開発中のものです。:03/11/26 01:58 ID:oDpGQqNU
SDLでS3TC読み込み用の関数とかはありますか?
324名前は開発中のものです。:03/11/27 15:18 ID:aQuPeEyb
>>321
うちでも同じ状態です…

SDL_mixer というか SMPEG を MinGW 3.X でコンパイルしてできた
DLLを使うと落ちる感じ。

SMPEG サポートなしで SDL_mixer をコンパイルするか
MinGW 2.0でコンパイルしたものを使うかで回避してるけど
対処法あったらおれも教えてほしい。
325名前は開発中のものです。:03/11/27 22:15 ID:BoqYAr6p
うちは、DLL集めてエクスプローラから起動するとOK
cygwin shell上から実行するとDLL読み込みエラーで落ちる
326名前は開発中のものです。:03/11/29 00:19 ID:+Zau//Z5
>>324 >>325
ありがとう、ウチだけの問題じゃないと解かって一安心です。

ただ、
> SDL_mixer というか SMPEG を MinGW 3.X でコンパイルしてできた
> DLLを使うと落ちる感じ。
これはこちらとはちょっと現象が違う模様。

こちらで落ちたSDL_mixerは、libogg,libvorbis有り、SMPEG無しで
makeした物だったんで。

ちなみに、SDL_imageはjpeg,pngサポート有りでmakeしたものです。

しかし、困ったモンですな。MinGW、SDL_mixerどちらの問題なんだろう?
327321:03/11/29 00:19 ID:+Zau//Z5
>>326
あ、書き忘れましたが321です。
328名前は開発中のものです。:03/11/30 21:34 ID:8v/2nacI
関連する情報持ってる人キボンage
329名前は開発中のものです。:03/12/01 13:40 ID:JdYcmEbH
WinXP + MinGW 3.1 + MSYS 1.0.9 でちょっと試してみた。

SDL だけを使った場合落ちないけど以下ライブラリをコンパイルして
出来たDLLをロードすると落ちる。この環境でコンパイルしたDLLだと
shellから起動しようがexporlerから起動しようがダメでした。

* smpeg
* SDL_mix(vorbisあり,mp3あり)
* SDL_mix(vorbisあり)
* SDL_image
* SDL_net

DLLだけを他の環境でコンパイルしたもの(公式サイトで配布
されているやつとか)に置き換えたら動いたのでやっぱ生成された
DLLがマズそうな感じ…。やっぱMinGWの問題だろうか?
330名前は開発中のものです。:03/12/02 23:01 ID:KdpcWnCh
空いた時間をつぶす時はSDL_Waitで十分かな?
331名前は開発中のものです。:03/12/02 23:30 ID:KcbsioGe
D言語でもSDL使えるんだね。あげ
332名前は開発中のものです。:03/12/02 23:34 ID:hSDazT4V
SDL_Delay()だね。
SDL_gfxのフレームレートモジュールを使うのも手
333名前は開発中のものです。:03/12/19 02:07 ID:ECJ/47WV
たまには保守。
334名前は開発中のものです。:03/12/21 22:10 ID:zLwkl8zD
D言語スレをROMってたんだけど、C#でもつかえるんだってね。
335名前は開発中のものです。:03/12/21 23:41 ID:KhQmPO5+
Windows以外でも?
336名前は開発中のものです。:03/12/23 23:40 ID:BQv+dX+Y
>335
Windows以外(monoとか?)はどうかは知らんが…
http://cs-sdl.sourceforge.net/
337名前は開発中のものです。:03/12/24 19:13 ID:GxASKMN4
dreamcastでSDL開発してる香具師いらっしゃいますか?
338名前は開発中のものです。:03/12/27 12:32 ID:q7duODMu
>>337
> dreamcastでSDL開発してる香具師いらっしゃいますか?
SDL-fan-jp MLでたまに見かける人に一人いるみたい、って以外は知らないなぁ。
339名前は開発中のものです。:03/12/28 20:49 ID:qtY7Eg01
>336
それ、SDL.NET-1.5.1.zip落として解凍すると、
0kbなんだけど…なんか特殊なのかな?
どこから(ミラーサイト等)でも同じ現象。。。
340名前は開発中のものです。:03/12/29 19:28 ID:w1hTPfgh
書き込み頻度を見ると、ネラーのSDL使用って少ないのかな?
WinでDirectX使うより簡単だし始め易いと思うんだけど…
341名前は開発中のものです。:03/12/30 12:23 ID:2hrqggZr
>>340
>WinでDirectX使うより簡単
同意。このスレ見るとWindowsにしてもMinGWでMSYSみたいなUNIXよりの人のが多そう。

好意的に解釈すると、
SDLは判りやすすぎて誰かに質問する必要がない、とか。
ドキュメントが多少説明不足でもソースおっかけりゃすむこと多い気がするし。

たまにいるライブラリ使うとなんか負けたような気分になる不思議な人らとか、
後はDirectXのバッドノウハウってヤツもあるのかも。
ttp://www.namazu.org/~satoru/misc/bad-knowhow.html
342名前は開発中のものです。:03/12/31 09:21 ID:2dmaFMP8
>>341
同意。SDLはしきい低いと思う。
けど、描画で凝ったことしようとするとOpenGL使うか、
他の周辺ライブラリ使うかになることが多い気がするが、
ここで難しいという印象を与えてしまってる部分がある予感。
343ぁきまさ:03/12/31 10:27 ID:uPGIOmXx
DirectXforVB→SDL→DirectXに移ってみた者ですが、
感想としては、DirectXめんどくさすぎです…。
SDLなら一行でできることをDirectXでは長々と書かなければいけないのは苦痛です。
そのくせ、SDLならマルチプラットフォームを簡単に実現できることを考えるとDirectXでやることは考えられません。

2Dのゲームに限っては、ですが…。
以下個人的理由です:

SDLでOpenGLを使って複雑なシーンを構築する際、
DirectXにはXFileというとっても楽ちんなものがありますが、
OpenGLにはそれに相当する物はあるのでしょうか?
外部ファイルによる物体の表示だけならまだしも、
アニメーションまでやろうとするとそれだけでかなり労力を割かれて萎える気がするのですが…。
344名前は開発中のものです。:04/01/03 23:35 ID:ZUnJFgEf
>>343
なんかあった気がする。
無かったら作っちゃえよ。
345名前は開発中のものです。:04/01/05 23:14 ID:0FMgJlKl
>>343
海外のチュートリアルサイト見れば3dsファイルとかlwoファイルとか
Quakeとかのmd2, md3とかQuake BSPファイルとかを表示する
サンプルプログラムが腐るほど落ちてるよ(Xファイルのもある)。
中には自由に使えるものも結構ある。探してみるべし。
346名前は開発中のものです。:04/01/05 23:16 ID:0FMgJlKl
個人的には、D3DXSpriteで出来ることくらいは出来てほしい>GL以外のSDL
具体的に言うと回転が高速に出来てほしいわけだけど…。
実装されないのはPC Unix方面で何かネックとなるものがあるのかな…?
347ぁきまさ:04/01/06 08:58 ID:ZNIQCPQq
>>345
そうなんですか。
ありがとうございます。
やっぱり、海外の方が情報が多い。のでしょうか…。
348名前は開発中のものです。:04/01/06 13:15 ID:Q68qBWfA
>>321
試してないけど MinGW-users メーリングリストに
http://sourceforge.net/mailarchive/forum.php?thread_id=3700241&forum_id=5119
ってのがあったよ。

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

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

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

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

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

まぁ、glutやWGLみたいなOpenGLフレームワークの一つとして収まるつもりなら、
別にそれでもいいと思うけど。
354名前は開発中のものです。:04/01/10 22:25 ID:CxzW6WTE
>>353
「SDL Request For Implementation」、略して「SRFI」ってノリか。……Schemeと名前被るけど。
355名前は開発中のものです。:04/01/11 05:04 ID: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
356名前は開発中のものです。:04/01/12 00:17 ID:jHaBXaUC
>>355
確信はないけど、大丈夫なんじゃない?
そのぐらいで毎度問題出るんだったら、
公式で配ってるバイナリ配布版なんて誰も使えないことに。
357名前は開発中のものです。:04/01/12 10:30 ID:oW00NT9Y
【ゴールデンレス】
このレスを見た人はコピペでもいいので
10分以内に3つのスレへ貼り付けてください。
そうすれば14日後好きな人から告白されるわ宝くじは当たるわ
出世しまくるわ体の悪い所全部治るわでえらい事です
358355:04/01/12 16:22 ID:k60kLF8M
>>356
できたSDL.dllをmingwでコンパイルした
メインプログラムと組み合わせると動いたのですが
VCでコンパイルしたメインプログラムとあわせると落ちてしまいました。

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

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

機種固有の問題でしょうか? よろしくお願いします。
367名前は開発中のものです。:04/02/07 11:16 ID: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

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

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

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

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

375名前は開発中のものです。:04/03/13 09:27 ID: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);
}
みたいな感じにすればいいのかな?
376名前は開発中のものです。:04/03/13 11:02 ID: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);
    }
  }
}
377名前は開発中のものです。:04/03/13 12:58 ID:KWP+lz2i
× if (SDLNet_SocketReady(serversock)) {
○ if (SDLNet_SocketReady(sock[i])) {
だった。

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

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

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

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

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

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

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

387名前は開発中のものです。:04/04/13 01:35 ID: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, ...
388名前は開発中のものです。:04/04/13 23:06 ID:R3klDjkd
少な…
389名前は開発中のものです。:04/04/13 23:45 ID: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.
とある通り、メモリ(と演算速度もか?)の許す限りいくらでも取れるっぽ。
390 ◆pm4Rr1N8T6 :04/04/14 05:29 ID:/mSmA8Oy
かなり大量に指定したことあるんだけど、
増えすぎてちゃんと鳴ってんのかどうかわからなかった。

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

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

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

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

SDLのソース触ってIMEからなんとか動かしてるんですけど、
やっぱSDL_imeがほすぃ…。
399名前は開発中のものです。:04/05/13 21:41 ID: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 のものですら実践的じゃない部分も多いし、
実際やるとなると相当大変だな……
400 ◆pm4Rr1N8T6 :04/05/30 10:09 ID:3EbvfWJ2
SDL_ttf の不満点を解消するパッチを作ってみた。
http://qas.sourceforge.jp/patches/

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

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

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

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

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

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

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

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

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

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

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

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

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

神経質になりすぎだ
419名前は開発中のものです。:04/06/27 20:12 ID:TlIkOaxm
翻訳サイトが消えてたり、さがさないでくださいと出てたり・・・
SDLは日本人が使うとどうかなっちゃうの?w
420名前は開発中のものです。:04/06/28 01:10 ID:QaShh7Zh
お願い纏めて。そしたら頑張って何か作るから。
421名前は開発中のものです。:04/06/28 13:42 ID:7p8HGt/8
>>419
翻訳サイトは移転しただけ。
ttp://www.tacoworks.jp/software/SDLdoc-jp/
422名前は開発中のものです。:04/07/01 21:15 ID:nUzqGN14
資料が少ないな・・・
SDL推進してるWikiとかないの?
423名前は開発中のものです。:04/07/02 15:48 ID:z9cQVZSD
>>422
今のところ無いっぽいね。
とりあえずはバラバラに存在する国内情報の
まとめページだけでも欲しいかな。
424名前は開発中のものです。:04/07/03 23:04 ID:7rPVx/6/
>>422
SDLって大量の資料が必要なほど複雑なライブラリじゃないと思われ…
リファレンスマニュアルとチュートリアル以外でどんな資料が欲しいの?
425名前は開発中のものです。:04/07/03 23:14 ID:1w5sa/fH
あのマニュアルめちゃめちゃ丁寧だよなぁ。
それだけじゃ足りないってことなんだろうけど。
426名前は開発中のものです。:04/07/04 05:22 ID:dw9vgL9Y
SDL_imageとか拡張ライブラリはどこで仕様を見れるの?
427名前は開発中のものです。:04/07/04 08:41 ID: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 のドキュメントはもう少し欲しい気がするね。
428名前は開発中のものです。:04/07/04 14:50 ID:CEd3aHf1
ライブラリ名と "Documentation" を同時に検索すると出てくるよ。
http://jcatki.no-ip.org/SDL_ttf/
http://jcatki.no-ip.org/SDL_net/
でもわかりにくいんだよなー。
特に SDL_ttf の場合、色んな描画方法に関して、
どう描画されるかではなくて重いだの軽いだの、そういうことばっかり書かれてたと思う。
429名前は開発中のものです。:04/07/04 21:55 ID:dw9vgL9Y
解説してるわけじゃないけど、GameDevPukiWikiにSDLの項目はあるね
http://gamdev.org/w/?%5B%5BSDL%5D%5D
430名前は開発中のものです。:04/07/05 21:36 ID:nSK/GKky
431名前は開発中のものです。:04/07/07 01:04 ID:n/Oy7Dm9
ところで、Linuxでバイナリ配布ってやりづらいような気がするのですが。
ディストリビューション毎に、glibcやらlibstdc++やらのバージョンがバラバラだったり、
ディストリビューション標準パッケージSDL_mixerが対応フォーマットさっぱりだったりとか。
どうにかならんもんかな。
432名前は開発中のものです。:04/07/07 01:08 ID:W6JVsWwD
Redhatだけ対応しとけばいいよ
433名前は開発中のものです。:04/07/07 01:16 ID:n/Oy7Dm9
>>432
やっぱそんな感じで割切るしかないですか。
とすると、RH系だと、今ならFedora2に対応しておけば良いのかな。
434名前は開発中のものです。:04/07/07 01:25 ID:ixnokw2/
全部スタティックリンクしちゃえば
435名前は開発中のものです。:04/07/07 01:34 ID:n/Oy7Dm9
>>434
う〜ん、確かに。
けど、LGPLのをスタティックリンクするってことは、
アプリ側の.oを配布する必要があるのかな。

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

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

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

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

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

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

ちょっと聞きたいんだけど…
オブジェクトファイルだけあったら差し替え可能として認められるのかな?
この時オブジェクトファイルのフォーマットとかは問題にならんのかしら?
あ… 配布したスタティックリンクされた実行可能ファイルの元に
なった.oさえあればOKってことかな?
442名前は開発中のものです。:04/07/08 14:48 ID:1+ItRMvE
>>441
オブジェクトファイルのフォーマットは、gcc の吐くような極一般的なものなら全然問題無いと思うよ。
>>440 の言う通り、君が作ったソフトウェアのオブジェクトファイルさえ入ってれば大丈夫だから、それで合ってるね。
443名前は開発中のものです。:04/07/10 20:51 ID: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);
}
}
444名前は開発中のものです。:04/07/10 22:02 ID:JmED2rrl
ax,ayがオーバーフローすんちゃうの?
445名前は開発中のものです。:04/07/10 22:45 ID:MW3XWIRh
>>443
dx, dy を初期化してないのはC的にいいとして、mouse を初期化してねーじゃねーか。
ググったらこことか引っかかったから見てみれ。
http://www.pl-berichte.de/work/sdl/sdl-teil2.html
446445:04/07/10 22:47 ID:MW3XWIRh
「3. Input-Handling in der Praxis: Maus」
ってとこね。ってよく見たらドイツ語だ。すまん。でもソースは分かるよね。
447名前は開発中のものです。:04/07/10 22:53 ID:DRUUao5j
終了する前にはSDL_Quitしてほしいと思います。
448名前は開発中のものです。:04/07/10 23:10 ID:MW3XWIRh
あと SDL_Delay() が一回も呼ばれない気がするのは気のせいか?
449名無しさん@そうだ選挙に行こう:04/07/11 07:05 ID:VqfcMOHH
>>455
ありがとうございます。
>>447
>>448
作りかけのソースを削ったのでおかしくなってしまいました。
450名無しさん@そうだ選挙に行こう:04/07/11 09:59 ID:E7W22GHh
>455がどんな解決方法を示してくれるのか。気になって夜も眠れない。
451N速に書き込めません。:04/07/11 10:18 ID:wvsVVX1k
N速に書き込めません。

何とかしてください
452名無しさん@そうだ選挙に行こう:04/07/11 12:11 ID:/yFc1fy2
>>452
そんなときはあれだよ。 あれ。
453名前は開発中のものです。:04/07/12 00:37 ID:A2nXW2No
SDL_Surfaceをクラス化してるんですが、例えば SDL_kanji の Kanji_PutText()
みたいに SDL_Surface* を引数に取る関数を呼ぶときに楽しようと思って、
    class CSDLSurface {
        ...
        operator SDL_Surface*() { return surface; }  // surface は SDL_Surface*
などとクラス内に書いたんです。でも
    Kanji_PutText( ... , screen, ... );  // screen は CSDLSurface
とやっても、VC.NETに
    引数を 'CSDLSurface *' から 'SDL_Surface *' に変換できません
と怒られるし、(SDL_Surface*)screen とやってキャストして渡しても、クラスのアドレスが
そのまんま渡ってるみたいでうまくいきません。そもそもなんで operator をオーバーロード
してるのに型変換してくれないんでしゅか。
454453:04/07/12 00:39 ID:A2nXW2No
s/しゅか/しょうか/; # ○| ̄|_
455名前は開発中のものです。:04/07/12 01:05 ID:1R+yHQE6
>>453
>     Kanji_PutText( ... , screen, ... );  // screen は CSDLSurface
Kanji_PutText( ... , screen(), ... );
じゃないかい?
456453:04/07/12 01:29 ID:A2nXW2No
>>455
screen()とやると、"関数には評価されません" と言われてしまいます、、
それと453に間違いがもう一つ
>    Kanji_PutText( ... , screen, ... );  // screen は CSDLSurface
screenは CSDLSurface* です
457名前は開発中のものです。:04/07/12 09:21 ID:d4JCqMcp
>>456
> screenは CSDLSurface* です
じゃ、
Kanji_PutText( ... , (*screen)(), ... );
Kanji_PutText( ... , screen->operator(), ... );
のどっちかじゃない?
458453:04/07/12 23:23 ID:A2nXW2No
>>457
どうもお手数かけてしまってすみませんでした。
    Kanji_PutText(..., screen->operator SDL_Surface*(), ...);
でコンパイルは通ったんですが、よく考えてみるとどうやらscreenがポインタ
であることが原因だったようで、
    CSDLSurface screen; // ポインタにするのをやめた
    ...
    Kanji_PutText(..., screen, ...);
みたいに、普通にクラスを渡せばちゃんと SDL_Surface* に変換してくれるんですね。
これってC++の基本ですか? 恥ずかしいかも。

でもなんか、クラスをポインタでなく保持するのはよろしくない、みたいな文章をどこかで
読んだ気がして、それが引っかかってなんか気が進まないです、、
459名前は開発中のものです。:04/07/13 00:35 ID:yFmAkR9z
gcc version 3.2 (mingw special 20020817-1)で実験してみた。
大体予想通りの結果?長文スマソ。

#include <iostream>
using namespace std;

class Foo {};
class Bar {
Foo foo;
public:
operator Foo*() {return &(this->foo);}
};

void hoge(Foo* p_foo_)
{
cout << p_foo_ << endl;
}
int main(int argc,char* argv[])
{
Bar bar;
Bar* p_bar = &bar;

hoge(bar);
// hoge(bar()); // no match for call to `(Bar) ()'
// hoge(p_bar); // cannot convert `Bar*' to `Foo*' for argument `1' to `void hoge(Foo*)'
hoge(*p_bar);
// hoge((*p_bar)()); // no match for call to `(Bar) ()'
// hoge(p_bar->operator()); // `class Bar' has no member named `operator()'

return 0;
}
460名前は開発中のものです。:04/07/13 03:32 ID:P6ImUkzN
foo* operator() と operator foo*() は違う
461名前は開発中のものです。:04/07/13 03:58 ID:szTJAEHM
>453
ポインタなら単純に参照を外すだけでいい
Kanji_PutText( ... , *screen, ... );

ただ、暗黙のキャストは怖いから、
楽しようと考えている程度なら、素直にGetterを作った方が良いと思う。
462453:04/07/13 23:44 ID:KSTvEm7j
ポインタの参照先を渡したらうまくキャストしてくれました。でも、仰るとおり
暗黙の型変換を故意に狙うのはよくないですね。それに、*screen で返って
くるのがポインタってのも直感的でないですし。結局
    SDL_Surface* GetSurface() const { return surface; }
を加えました。
463名前は開発中のものです。:04/07/21 22:14 ID:yROlyeHQ
概念の質問になって申し訳無いんだが

surfaceって、オブジェクト毎に作って良いんだろうか?
今まで俗に言うスプライトみたいな扱い方してたんだが。

背景なら背景で、画像合成させて1つのsurfaceにするのが普通なんだろうか?
464名前は開発中のものです。:04/07/22 01:54 ID:OPZjuMp0
>>463

とりあえず質問の意味がさっぱりわからん…
465名前は開発中のものです。:04/07/22 12:31 ID:sx+OGorQ
分からないなら黙っててください。
466名前は開発中のものです。:04/07/22 14:51 ID:xASuzJAT
煽りキター
467名前は開発中のものです。:04/07/22 17:39 ID:mpU5Xpvs
普通かどうかはベンチマークで決めればいい
468名前は開発中のものです。:04/07/22 20:26 ID:jpCxn5GA
>>463
漏れも何を聞いとるのかよう判らんのだが取り敢えず、
喪前さんの考える「Surface を一つにまとめることの長所」を教えてくれんかいの。

察するに割とどっちでもいいような気がするんだが……。
469名前は開発中のものです。:04/07/22 21:25 ID:NOi9FMd0
>>463ではないが、複数の領域をバラバラに確保/解放することによる
オーバーヘッドやメモリの断片化による効率低下などがあるのか?
ってところじゃないんですかね。
470名前は開発中のものです。:04/07/22 21:27 ID:mpU5Xpvs
Photoshopでレイヤーを統合するかしないかくらいの意味合いだろ
471463:04/07/22 22:21 ID:mBKaU+OV
試してみますた。

スクロールする背景部品3つを自分で合成したのと
そのままほっといて普通に処理させた方で試してみた。

結果、そのままほっといて普通に処理させたほうが早かった…
つまり、俺の書い処理の方がヘッポコでした。

メモリ使用量・動作速度でのメリットは全く無し、またsurfaceの数が
多すぎて判らなくなるなら、管理体制そのものを見直す方が良いっぽいです。
472名前は開発中のものです。:04/07/22 22:42 ID:xASuzJAT
>スクロールする背景部品3つを自分で合成したのと
人間ダブルバッファをしたってこと?
473名前は開発中のものです。:04/07/23 01:31 ID:k28imbO0
サーフェイス毎にヘッダとか余計な情報が入るだろうから
なるべく種類ごとぐらいにまとめておいた方がいんでないの
とSDL使ったこと無いやつが言ってみるテスト。
474名前は開発中のものです。:04/07/26 13:45 ID:cbiqvpsK
SDLの入門のHPない?
475名前は開発中のものです。:04/07/26 15:46 ID:Z8i+sT7Z
サンプルを物凄い勢いで弄るのがいいらしいよ。
476名前は開発中のものです。:04/07/29 02:24 ID:kbrPCy1U
結局SDLは元々使うのがそんなに難しいライブラリじゃないし、
標準で付いてくるサンプルも充実してて解かりやすいから、
入門ページをわざわざ作る人があまりいないのかな、とオモタ。
477名前は開発中のものです。:04/08/02 11:44 ID:uIIM7zIN
みなさんはキーリピートってどう実装してますか?
落ちものゲーとか作るときって結構これがUIに関わってきますよね。
キーが押された時刻を覚えておいて、押されっぱなしのままX_秒経ったら
キーがまた押されたことにする、とかするんでしょうか。
SDL_EnableKeyRepeat()みたいなのもあったんですがうまく動いてくれないんですよね・・
478名前は開発中のものです。:04/08/02 21:19 ID:1kimllXS
>>477
> キーが押された時刻を覚えておいて、押されっぱなしのままX_秒経ったら
> キーがまた押されたことにする、とかするんでしょうか。
うん。
479名前は開発中のものです。:04/08/02 23:13 ID:5gOr47iA
>>477
自前で処理、に一票。
どっちみちキーボードとジョイスティックの両方で操作可能にしたいから、
自分で適当にラッパー書くのが楽だと思う。
480名前は開発中のものです。:04/08/06 12:10 ID:fX1V4XLW
SDL_mixerのMix_OpenAudioのバッファ値少なくすると
環境によっては激しく音質悪化するね…
だからといってバッファ多くすると遅延が・゚・(ノД`)・゚・。
481名前は開発中のものです。:04/08/07 17:44 ID:wc7qHVar
SDL_mixerが性能面でイマイチなのは、わりと周知の事実なのかも。

そんなわけで、いっそSDL_sound + OpenALとかでシステム組んで
公開してくれたりすると嬉しいです(と、人まかせ)。
482名前は開発中のものです。:04/08/07 18:00 ID:sO/xVe9h
SDL_sound 2.0 の草案が出たらしいね。
http://zinnia.dyndns.org/~zinnia/sdl/watch2/?date=20040730#p02
草案の本体がどこにあるのかちょっとわからなかったんだけど、
やるとしたら2.0の様子を見た方がいいんじゃないかな。
483名前は開発中のものです。:04/08/08 12:36 ID:n15LlEy5
>>482
まだ草案段階なんだったら、待つ必要ないんじゃない?
これから、

細部の詰め -> α -> β -> リリース

と行くと何年後になるやら。
484名前は開発中のものです。:04/08/09 19:20 ID:lqi/7vlX
Ruby/SDLでメモリ上にある任意のフォーマットの画像データ表示するにはどうしたらいい?
Rubyで生成した画像データをGUIに表示したいんだけどdraw〜なメソッドで描いていたらやたら時間がかかりそうだし
Surface.loadはファイルしかロードできないし…
485名前は開発中のものです。:04/08/09 22:02 ID:suCCLB3h
>>484
Ruby/SDL はよくしらないけど、
SDL_CreateRGBSurfaceFrom に相当するメソッドは存在しないの?
SDL_CreateRGBSurface は SDL::Surface.new に置き換わっているようだけど。
486484:04/08/09 23:55 ID:lqi/7vlX
>>485
>SDL_CreateRGBSurfaceFrom に相当するメソッドは存在しないの?
う〜ん…displayFormatあたりだろうか…
実験してみます。
487484:04/08/10 16:19 ID:ojobLfTU
>displayFormat
チュートリアルにサンプルがありました。どうやらサーフィス→サーフィスなメソッドのようです。
う〜ん…1ピクセルずつ書いていくしかないのか…_| ̄|○
488名前は開発中のものです。:04/08/10 19:03 ID:og4arkOY
RubyだとBlitSurface が使えないってこと?
489名前は開発中のものです。:04/08/11 17:50 ID:DHS7JU0v
>>488
使えるよ。
490名前は開発中のものです。:04/08/11 18:10 ID:fjnBF2CC
>>484
Ruby/SDL のソースをざっと見てみたが、SDL_CreateRGBSurfaceFrom は無いようだな。
処理時間云々を気にするなら Ruby 以外も検討してみるといいかも知れん。

>>488
SDL_BlitSurface はあるが、引数に Surface をとるからな。
>>484 の場合手元にあるのはメモリ上のデータだから、それを Surface にする手段が欲しいんじゃないか?
491名前は開発中のものです。:04/08/11 23:45 ID:uIr8FGgs
基礎的な質問なんですが、SDL使って作ったアプリってSDL.DLLとか必要になると思うんだけど、同梱配布していいものなの?
同人とかで売っても大丈夫なのですか?
492名前は開発中のものです。:04/08/12 01:11 ID:1Ox6RoRS
>>491
動的リンクをして使うんだよね?
それなら、SDL.DLLのソースの入手方法さえ用意すればOK。
具体的には、そのソースを同梱するとか、本家のサイトのアドレスを説明書に入れとくとか。

LGPLライセンスについて、調べてみるべし。
493名前は開発中のものです。:04/08/12 03:39 ID:GXLAlDtL
>>491
俺は実際同人で売ってる。
で、CDの中にSDL.dllのバイナリの他に
SDL-1.2.7.tar.gz
LGPL
を入れてある。
494名前は開発中のものです。:04/08/12 21:36 ID:U24wpCkA
ほっしゅ
495491:04/08/12 23:53 ID:wAr6hdR2
SDL.DLLってファイルのまま使うことを動的リンクって言うんですよね。
動的リンクで使う予定です。

入手方法もしくはソースを同梱すればOKなんですね。勉強になりました。
LGPLがいまいち理解できなくて、いつまでも踏み出せずにいました。
ありがとうございました。

実際やろうとしていた事をズバリやっている493氏のような人物も居て励みになります。
496名前は開発中のものです。:04/08/17 01:08 ID:2NQFsJZQ
AllegroをMingw(+MSYS)上でビルドしてサンプルを眺めている所なんだけど、
これ日本語入力はどうすればよいのだろう?
まだalfontは導入していないがデフォルトで日本語の表示は可能だし、
guiクラスに入力用のtextboxが用意されているようだが日本語は無理だ。
SDLは一応sdlskkなぞあるようだが。

Gtk+やTkからテキストウィジェットだけ拝借してくるしかないのかな。
497名前は開発中のものです。:04/08/17 02:39 ID:NkMI/CJf
>>496
つーか何故SDLのスレでAllegroの質問をしますか。
498名前は開発中のものです。:04/08/17 21:22 ID:Mr02eSkK
Ruby/SDLのSDL.transformってバグ持ちか?
拡大したときに下と右が削れる。
俺だけ?
499名前は開発中のものです。:04/08/18 00:14 ID:O0wT/ab0
各種ライブラリ紹介スレ
http://pc5.2ch.net/test/read.cgi/gamedev/1008220559/
500名前は開発中のものです。:04/08/19 06:31 ID:88YaKIPR
現在の画面解像度を取得する関数ありますか?
501名前は開発中のものです。:04/08/19 06:40 ID:O1yTQBZf
502名前は開発中のものです。:04/08/19 23:51 ID:6l6QpGXx
>>500
無いんじゃないかなぁ。
SDL_SetVideoMode()時に覚えておくぐらいしか。

あと、>>501のよりも>>421のが良いかも。
503500:04/08/20 10:57 ID:csZBm7g+
無いようですね。
サイズ変更させたくなかったんですけど妥協しときます。
ありがとうございました。
504名前は開発中のものです。:04/08/20 12:05 ID:LiSmyfUa
505名前は開発中のものです。:04/08/20 16:46 ID:esCldzWy
>>500-504
……なんか間違えてないか?
SDL_GetVideoSurface() だけで事足りると思うんだが。

SDL_Surface* screen = SDL_GetVideoSurface();
printf("width, height: %d, %d\n", screen->w, screen->h);

みたいな。おれがなんか間違えてんだろうか……。
506名前は開発中のものです。:04/08/20 22:03 ID:JqCl1DGv
画像の拡大とか縮小って出来ないの?
SDL_BlitSurfaceのSDL_Rect *dstrectってw,hが無視されてしまうし。
困った困った。
507498:04/08/21 00:43 ID:ELGMlgii
自己解決
ソースとなるサーフィスのサイズはぴったりではいけないようだ。
余裕を持たせたら削れなくなった
508名前は開発中のものです。:04/08/21 01:17 ID:wDjE80nx
>>506
SGEを使う手がある(sge_transform)。
http://www.etek.chalmers.se/~e8cal1/sge/index.html

正直、俺もネイティブSDLで使える方法があったら知りたいです
509500:04/08/21 01:20 ID:diBViIiV
サーフェイスじゃなくてディスプレイのサイズ知りたいんですよ。
winAPIのGetSystemMetrics(SM_CXSCREEN)みたいな。
510名前は開発中のものです。:04/08/21 10:32 ID:FvC1IsvO
>>506
SDL_SoftStretch は?あまし勧められた API でも無いみたいだけど。
>>509
SDL_ListModes は?一番大きいのを取れば多分良いかな…
511名前は開発中のものです。 :04/08/21 22:11 ID:H0unQWjV
gl_kanjiを使おうとしているのですが
これはいったいどこの部分にSDLを使っているのでしょうか??
ソースを見た限りではウインドウ表示ぐらいしかしていないような…。
ご存知の方いませんか??
というか、SDLがどういうライブラリなのかいまいち分かっていないです…ごみんなさい。

因みにSDL関係の関数(?)をウマーくOpenGLの関数などに置き換えたら、
SDL抜きの日本語表示ができました…!?何故だ〜〜?
512505:04/08/21 22:19 ID:qlUWPwIq
>>509
ああ、そういうことか。すまん、SDL_FULLSCREEN を前提にしちまった。
しかしそうなると >>502-503 の発言が判らないんだが。
「サイズ変更」ってのは SDL_SetVideoMode かと思ったんだが、
それでディスプレイのサイズがとれるのか……?

SDL の Windows 部分のソースを適当に眺めたんだが、GetSystemMetrics(SM_CXSCREEN) は
DX5_SetVideoMode と DIB_SetVideoMode (どっちも SDL_SetVideoMode の下請け) でしか使ってないな……。
両方ウィンドウを画面中央に表示するために使ってるだけだし。
SDL_ListModes は EnumDisplaySettings か IDirectDraw2_EnumDisplayModes の結果を使ってるから、
これもやっぱり「現在の」画面解像度はとれそうにない。

……やたら長文なだけで全然解決案にならんなorz

>>510
SDL_ListModes の一番大きいの、おれは使ってないな……。
1600x1200 で使うと字が小さすぎて目が痛くなるorz

>>511
……お前さん SDL_kanji と gl_kanji を間違えてないか?
513名前は開発中のものです。:04/08/21 22:34 ID:H0unQWjV
511です。
>>512さん
間違えてないですよ。gl_kanjiも
#include <SDL.h>
#include <SDL_opengl.h>
ってなっています。
ウインドウ表示もSDL_SetVideoModeでやっていますし。
ひょっとしたらこれだけにSDLを用いているのかなーと思いまして。
514505:04/08/21 23:18 ID:qlUWPwIq
>>513
いや、おれは gl_kanji, SDL_kanji はおろか OpenGL も弄ったことのない軟弱者なんだが、でもやっぱりなんか違うと思うぞ。

今 gl_kanji を落として軽く見てみたが、
SDL 関係のヘッダを include してるのは、変換ツールとかサンプルとかのソースだろう?
gl_kanji の本体(?)は gl_kanji.cc と gl_kanji.h だけで、その二つは SDL とは関係ないんじゃないか。
つーか gl_kanji の readme.txt 読んでくれ。断言はできんがお前さん相当とっけんはっけんな質問してるような気がする。

SDL 判ってないっていうから念の為書いておくと、SDL と OpenGL の組み合わせには、
1. SDL 単体で使う、2. OpenGL 単体で使う、3. SDL から OpenGL を使う、って三種類あるぞ。
で OpenGL を使う気なら、gl_kanji つーのも選択肢に入ってくるだろうが、
OpenGL 抜きの SDL だけで日本語表示がしたいなら、
SDL_kanji か SDL_ttf を使うことになると思う。

どうでもいいがお前さん、2ch じゃメール欄に sage って書く癖つけておいた方がいいぞ。

……また無駄に偉そうな長文になってしまったorz
515名前は開発中のものです。:04/08/21 23:52 ID:H0unQWjV
>>2ch じゃメール欄に sage って書く癖つけておいた方がいいぞ。
失礼しました…m(_ _)m

gl_kanji.ccのヘッダに
#include <SDL.h>
#include <SDL_opengl.h>
と記述してあるのはI-Saintさんのgl_kanjiです。
多分、オリジナルのとはちょっと違うのかもしれません。

...あ、しかもgl_kanji.ccのヘッダではなくtestgl_kanji.cppのヘッダ
でした…申し訳ないです、お騒がせいたしました…orz
もう二度とプログラミングには手をつけませんから許してください。
516名前は開発中のものです。:04/08/22 00:00 ID:HGFZMTgG
>>515
冗談だと思うけど…
がんがれ!
んな事(゚ε゚)キニシナイ!!でプログラム書きまくれ!
517508:04/08/22 00:02 ID:pseiC9zk
>>510
おお、そんな隠しAPIがあるとは知らなかったですよ。thanks
とりあえずソースからコピればGPLとしては使えるわけか。

ぐぐってみたら、メーリングリストに506氏と同じ疑問が書いてあって
面白かった。
ttp://www.libsdl.org/pipermail/sdl/2001-March/034394.html
518506:04/08/22 01:04 ID:WvVrOjz5
>>508
サンクス。sge_transform_surfaceってやつですかね。

今のところ拡大・縮小だけ必要なのでsgl入れるのは気が進まないです。
自作した方が良いのかなあ…

>>510
SDL_SoftStretch、検索してみたけどうまく見つかりません。
もうちと捜索してみます。

519名前は開発中のものです。:04/08/22 23:02 ID:WvVrOjz5
fpsをカウント表示するようにしたんですが、
フルスクリーンではfpsがリフレッシュレートと同じになったんですが、ウィンドウモードではとんでもなく多くなります。

アニメーションはSDL_GetTicksの値を利用しているので、早くなったりすることは無いですが、CPU時間は猛烈に食っていますよね。
ウィンドウ時になにか対策したほうがいいですか?

520名前は開発中のものです。:04/08/23 01:09 ID:JruymYaP
>>519
次のフレームまでの間に時間が余ってる間はSDL_Delay(0)でループさせるとか。
521名前は開発中のものです。:04/08/23 02:20 ID:4IY4L0bN
日本語の表示にSDL_kanji_f1bを使おうと思っているんだけど、
付属のサンプルがうまく動いてくれない・・・。

kanji_PutTextは問題なく動いてるっぽいのだが、
kanji_CreateSurfaceで作ったサーフェイスを
SDL_BlitSurfaceで転送しようするとアクセスバイオレーションとか言われてしまう。

環境は
Win2000
VC6.0
SDL-1.2.7(本家から落としてきたVC6用のバイナリ)
です。

何故わかる人アドバイスprz

522名前は開発中のものです。:04/08/23 23:37 ID:vOt8qlrp
>>521
全く同じ環境だったから SDL_kanji_f1b 落としてきて試してみたんだが、普通に動くな……。
デバッガで追っかけて、具体的に何がバイオレーションを起こしてるのか探ってみるといいかも。

screen は kanji_PutText とかでも使ってるし text は kanji_CreateSurface 内でエラーチェックがあるから、
少なくともポインタが NULL になることはなさそうなんだがなあ。
523名前は開発中のものです。:04/08/25 21:13 ID:EcBBkrxH
BCCでライブラリをmakeしようとしたのですが、
エラー E2342 ..\..\src\video\windib\sdl_dibevents.c
189: パラメータ 'lpPrevWndFunc' は int (__stdcall *)() 型として定義されているので
long (__stdcall *)(void *,unsigned int,unsigned int,long) は渡せない
(関数 DIB_HandleMessage )とかいうエラーメッセージを吐いて出来ませんでした。
とりあえず該当箇所のソースを見て自分で直そうとしたのですが、見てみても
それらしき記述が発見できず…。

誰かどこを直せばいいかアドバイスお願いします。

一応環境は
Win98
BCC5.5.1
SDLのバージョンは安定版の1.2.7です。
524521:04/08/26 00:18 ID:bQrcHUhr
>>522
わざわざ試してくれてサンクス。
デバッガで追ってみたけどkanji_CreateSurfaceも成功してて、
SDL_BlitSurfaceの中まで行ったけどアセンブラばっかりで
よく分からなかったよ・・・。

日本語表示には別の方法考えるか・・・。

>>523
BCCは使ってないのでワカランのだが、
VC6用のバイナリ一式をimplibでBCC用に書き換える
っていうのじゃダメなん?
525名前は開発中のものです。:04/08/26 01:04 ID:c70JkN3E
>>523
適当に環境構築して試してみた。おれの環境は Win2k なんだが、
それ以外は一緒だから多分参考になると思う。Win2k + BCC5.5.1 + SDL-1.2.7 。

お前さんの言うエラーの lpPrevWndFunc は、CallWindowProc の第一引数の仮引数名だ。
そのエラーは winuser.h 内の Call〜 の定義のせいで出てる。で STRICT つーマクロを定義しとけば大丈夫。
つまり、Borland\freebcc\SDL.mak の 66 行目(辺り)の、
USERDEFINES = WIN32;BUILD_SDL;__FREEBCC__; ...
ってなってるその行の最後に「STRICT;」って書き足せばオッケーだ。

本当はその次の行にある SYSTDEFINES から NO_STRICT を消す必要があると思うんだが、
なんでか残したままでも問題なかったな。

で実はこれをクリアしても他にも問題が出てきた。それも適当に対処できたから次に続く。
526525 の続き:04/08/26 01:23 ID:c70JkN3E
そのままビルドするとコンパイルは通るんだがリンクの段になって
「Error: 外部シンボル '_SDL_HasMMX' が未解決(.\SDL-1.2.7\SRC\VIDEO\SDL_BLITN.OBJ が参照)」
みたいなエラーが来る。これは SDL_cpuinfo.c に定義されてるんだが、
SDL_cpuinfo.c のコンパイルが makefile にまるで書いてないのが原因。

なので、Borland\freebcc\SDL.mak の 70 行目(辺り)の
PATHCPP = .;..\..\src; ...(以下略)
ってなってる行の最後に「;..\..\src\cpuinfo」を追加して、
後 50 行目(辺り)の
  ..\..\src\video\SDL_blit.obj
に書き足して、
  ..\..\src\video\SDL_blit.obj ..\..\src\cpuinfo\SDL_cpuinfo.obj
にすればビルドできる。SDL-1.2.7\test\ に SDL.dll と SDL.lib が出来てるはず。

本当は SDLmain.mak にも間違いがあってビルドできんのだけど、
>>523 の implib で解決するんならそっちでやってくれい。

……ああ、やっぱり長文になってもうた。
527名前は開発中のものです。:04/08/26 14:19 ID:JtN6FZlL
>>525
ありがとうございます。何故かmakeはILinkで止まってしまいましたが…。
SDLのソースをちょっと弄って使いたい場合はimplibだと無理ですよね?
色々ぐぐってみたところ
ttp://www.mediawars.ne.jp/~freemage/progs/sdl/sdl4bcc.html
にSDLmain.libの修正方法が書いてありましたがSDL_dibevents.c
辺りを弄って使いたい場合にはどうすればいいのでしょうか…
そういえばmakeはobjファイルを参照しているということは一度ソースから
objファイルを生成してからmakeしないと変更が反映されないんですかね?
makeの仕組みが未だによく分かってません…。
528525:04/08/26 19:11 ID:c70JkN3E
>>527
うん? ILink で止まるから >>526 を書いたんだが……。
SDL_dibevents.c を弄っても SDL_main.lib にゃ関係ないと思うぞ?
影響が出るのは SDL.lib の方だけだと思うから、
SDLmain.lib は Borland\lib\ にある奴でいいんじゃないか。
SDL_dibevents.c を弄りたいんなら好きに弄って make -f SDL.mak でいいと思う。

SDL_dibevents を弄りたいっていうと、DIB_CreateWindow とか書き換えて、
フルスクリーンで解像度変えた時の他ウィンドウのサイズ保持とかやりたいのかしらん。

>そういえばmakeはobjファイルを参照しているということは

……その辺勝手にやってくれるから便利なんだと思うぞ。
529名前は開発中のものです。:04/08/26 22:50 ID:JtN6FZlL
あ、よく見たらビルドできてました。
いや、SDLからIMEの文字列を取得しようと思ったんですが、そのままだと
メッセージが取得できないらしくて、少しソースを書き換える必要が出てきたんですよ。
何にせよとりあえずはこれでうまく出来そうです。ありがとうございました。
530sgi rocks:04/08/27 00:50 ID:fcNUInF8
最近、SDLとOpenGLでゲームを作っているのですが、
日本語入力のあたりでどうしようか考えてしまっています。
SDLは素晴らしいのですが、日本語入力が絡んで来ると、
せっかくマルチプラットフォームなのが有効に利用できないので、
皆で、SDLで動く日本語入力機構を作りませんか?

各々のOSの入力機構を使うか、それそのものを作るかもなにも決まってませんが、
今のところ、WindowsではIME、LinuxではXIMかIIIMFを使うといいかな、
と思っていたりします。
531名前は開発中のものです。:04/08/27 10:41 ID:hR9vryWf
http://pc5.2ch.net/test/read.cgi/gamedev/1005469181/398-399n
前にもそういう話はあったみたいだけど、
SDL でそういうことをやるのは結構難しいみたいだね。

俺も前ちょっと調べて同じことやろうとしたんだけど、
IME 関連のプログラミングの経験浅いからいまいちよくわかんないんだよね。
入力内容を勝手に描画してくれるのも悪くないとは思うけど、
もうちょっとプリミティブに現在の変換状況を取得できるような作りは厳しいかな。
532529:04/08/27 17:05 ID:pn3VuAxV
とりあえずビルドも成功して、プログラムを書き始めたのですが、
C++でSDL使ったプログラムを書くときに何か注意するところはあるでしょうか?
というのも、書いたプログラムをメイクしてみると
Error: 外部シンボル '_main' が未解決(E:\BCC55\LIB\C0X32.OBJ が参照)
という何だか?なエラーが発生して少し困っているところなのです。
ちなみに、コンパイル時には-WC、-DDEBUG;WIN32をつけてコンパイルしました。
(他にも色々あったのですがとりあえず関係ありそうなものだけあげました)
533名前は開発中のものです。:04/08/27 17:09 ID:ED0DtQy8
int main(int argc, char* argv[]) にする
534名前は開発中のものです。:04/08/27 17:57 ID:cER7lJgy
sdl-config --libs
535531 ◆pm4Rr1N8T6 :04/08/27 18:27 ID:hR9vryWf
トリップつけた。

うーん、すっげー適当な調査しかしてないんだけど、処理の流れとしては
1.SDL_GetWMInfo() でウィンドウシステム固有の情報を受け取る
2.IME が処理してる情報をコールバックで拝借する
3.共有 API によってウィンドウシステムに依存しない情報を得られるようにする
って感じが良さそうな気がする。

共有 API で取得できるべき情報はこんなとこだろうか。
・現在の漢字入力の ON/OFF
・現在入力中の文字列
・変換確定を行ったかどうかの情報
・確定後の文字列

わー、よくわからない!
結局変換中の小さいウィンドウを出す座標も設定出来ないと駄目だよなー。
Qt のソースでも読もうかな。

↓続く
536531 ◆pm4Rr1N8T6 :04/08/27 18:28 ID:hR9vryWf
SDL で対応してるウィンドウシステムはよくわからないんだけど、
SDL_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 の操作@猫でもわかるプログラミング
537sgi_rocks:04/08/28 00:26 ID:IBxR98vc
せっかくマルチプラットフォームな環境で走るSDLなので、
共通のAPIを提供しておいて、そのAPIが各々のOSの
ネイティブな入力機構を使うのに賛成です。

Mac OS Xに関しては、X11を使っている場合に限っては、
Linuxなどと同じX11経由の入力機構が使えると思います。

私はLinuxでSDLを動かしているので、X11(XIM経由)を少しやってみます。
538sgi_rocks:04/08/28 02:14 ID:IBxR98vc
ふと思ったのですが、日本語入力機構だけ提供するのが良いのか、
それらを含めたSDLを使ったGUIを提供した方が良いのでしょうか?

入力している時の、変換候補などの表示や、入力欄の事を考えると、
そこだけ他のGUIと違ってしまうのも変な感じがしなくもないのです。
簡単なGUIも一緒に提供するのも良いかもしれない、と思うのですがどうでしょう。
539529:04/08/28 13:34 ID:D9fRqR5k
>>533
とりあえずmainはSDL_mainに置換されるという話なのでもちろんint main(int argc, char* argv[])
は書いているのですが、それでもError: 外部シンボル '_main' が未解決(E:\BCC55\LIB\C0W32.OBJ が参照)
が表示されるというのは謎ですね…。このエラーメッセージが何を言っているかがいまいちよく分からないのですが、
多分システムからコールバックされるべき_main、が無いってことなんですかね?
SDLmain.libでそっちの方が定義されてるはずなのに…orz
>>538
私は完璧に素人なのでこんなことにコメントするのもちとあれなのですが、
GUIごと提供してくれるとかなり便利そうな気もしますね。
540名前は開発中のものです。:04/08/28 15:30 ID:YZXmLvih
>>538
とりえあず日本語入力機構だけを提供した方がいいと思います.

GUIは結局アプリケーション作る人次第な気がするので…
541名前は開発中のものです。:04/08/28 15:58 ID:QqhNTGOx
7以降ってどんだけの人材と時間が費やされてるんだろうな?
よくあのペースで発表・発売できるもんだよ。
俺も将来はあのくらいの会社をもちたい。
542名前は開発中のものです。:04/08/28 16:01 ID:QqhNTGOx
うはwwww 




誤爆です。
543531 ◆pm4Rr1N8T6 :04/08/28 16:23 ID:doDxlGS3
>>538
GUI 部分はあとからでも付け足せるから先に入力機構だけでいいんじゃないかな。
と思いながら Win32 部分を作ってたんだけどさ、
まさか編集可能なウィンドウ(テキストボックスなど)が付いてないと
IME を入力可能状態にできないウィンドウシステムってある?
どうも上手くいかないんだけど、Win32 とかはそうなってるのかな。
うーん、ちょっと怖いなあ。GUI セットじゃないと厳しいかな。

とりあえず共通 API は、
・ネイティブな C で書く
・初期化関数で構造体を生成してポインタを返し、終了関数で開放
・ポリモーフィズムは構造体内に関数へのポインタを保持することで実装
・各処理系ごとにプリプロセッサで分岐し、初期化関数内の処理を切り分ける
って感じでいいかな。
SDL 本体内部の SDL_rwops や、多くの SDL 系ライブラリで使用されてる方法だから、
ソースを読めばもっと具体的な実現方法は把握できると思う。
ある程度各処理系の情報、実装の方向性がまとまってきたら、
共通 API を作るためのフレームワークを実装するよ。

一応 smpeg みたいな例もあるし、C++ で書いても問題は無いと思うけど、どっちがいいかな。
544529:04/08/29 10:00 ID:o5xfi0oD
相変わらずうまく行きませんな…。
公式ページからSDL.dllをダウンロードしてきてimplibでSDL.libを生成して、
SDL_win32_main.cをコンパイルしてSDL_main.libを作っても駄目でした。
最近のソースにはBorland用のライブラリ一式があるんですがあれは使っていいのでしょうかね?
Error: 外部シンボル '_main' が未解決(E:\BCC55\LIB\C0X32.OBJ が参照)
もう見飽きた…orz
545名前は開発中のものです。:04/08/29 12:50 ID:dvcQQr7Q
>>544
一応、念のため聞いておくが、
SDL.libはリンクしているけどSDL_main.libをリンクし忘れているなんてことは無いよな?
546名前は開発中のものです。:04/08/29 14:02 ID:iNpWlI3a
$ sdl-config --libs
-L/usr/local/lib -lmingw32 -lSDLmain -lSDL -mwindows
547名前は開発中のものです。:04/08/29 14:57 ID:dvcQQr7Q
>>546
それ、cygwinの場合でしょ?>>529の場合はbccらしいから同じとは限らないし。
548名前は開発中のものです。:04/08/29 15:00 ID:dvcQQr7Q
あ。>>546のはMinGW+MSYSのほうかもしれないすね。
549名前は開発中のものです。:04/08/29 17:36 ID:Vt1Safbs
>>544
オプションを-Wにしてみろ。
550529:04/08/29 19:35 ID:o5xfi0oD
>>545
SDL.libとSDL_main.libは同じフォルダにおいてフォルダにリンクをしてるので
多分し忘れということは無いと思うんですが…。
>>549
-Wを入れると今度は
Error: 外部シンボル 'WinMain' が未解決(E:\BCC55\LIB\C0W32.OBJ が参照)
となるんでどうしたものか…。

一応構造的にはSDL_main.libの_mainやらWinMainがコールバックされてそこから
mainが置換されたSDLmainの方に制御が移されるんですよね?
それともそれをやるにはコンパイルするときにコマンドラインオプションが必要とか?
もうわけわかんないです…。
551名前は開発中のものです。:04/08/29 20:24 ID:iNpWlI3a
まずはtdumpとかでSDL_main.libにWinMainや_mainが存在することを確認した方がよいのでは。
552名前は開発中のものです。:04/08/29 23:02 ID:hlhX5yl6
>>550
> 一応構造的には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 ファイル' の両方をきちんとリンクする」
というプロセスが必要だよ。
常にどれかが抜けてるんだと思う。
553531 ◆pm4Rr1N8T6 :04/08/29 23:55 ID:hlhX5yl6
うーん、Win32 では編集可能なウィンドウが無くても IME を ON の状態にはできるんだけど、
このまんまじゃ入力状態を取得できないなー。
表示すらしてないわけだから入力事態が行われてなさそう。
やっぱり GUI をセットにしないと駄目っぽい。
とりあえず、枠線付けただけのテキストボックスを CreateWindow() して
その GUI 内で IME による入力をできるようにしてみるよ。
こういうアプローチを取ると IME による入力部分だけ
OS 依存のフォント表示になってしまうけど、
その辺はもっと煮詰めてから考えることにする。
554529:04/08/31 00:00 ID:QiRAdHy6
自己解決した。
555529:04/08/31 00:27 ID:mI6iYA96
>>529
??まだ解決してませんが。
まぁもうちと粘ってみます。何か進展(&壁が)あったらまた来るかもしんないです。
556529:04/08/31 00:29 ID:mI6iYA96
うお、失礼。
誤:>>529
正:>>554
変な書き込みするから混乱しましたよ(笑
557sgi_rocks:04/08/31 04:06 ID:hQvLtj9A
SDL_SysWMinfoではなくて、各々のOSからのメッセージが入ってる構造体の方を、
SDL_PeekEventかなんかで定期的にチェックするのが良いのかも、と思っています。

最初はSDL_SysWMinfoのwindowのIDを使って、イベント自体を自分でマップしようとしていたのですが、
どうもSDL自体がマップしようとしてるイベント等と衝突する可能性もありそうなので、
イベント自体はすべてSDLに任せといて、SDL_Event構造体にある、SDL_WMMsg(やったっけ?)のwindow
に対するメッセージをチェックしつつ、もしそれがIM関連だった場合のみIM関連のものを実行するのが良いかもしれません。

実際にテストでやってみて、できたらまた書きます。
OpenGL使ってる場合は、別にコンテキストが用意されてるみたいなのですが、
WindowsでのOpenGLの扱いがどうなってるかは良くわからないので時間かかるかもしれませんが・・・。
558531 ◆pm4Rr1N8T6 :04/09/01 04:52 ID:Iu2ojuI1
GUI を使うってのは、ウィンドウシステム(この場合 Windows)標準のテキストボックスを使うって意味で、
子ウィンドウ(この場合テキストボックス)を作るために SDL_SysWMinfo を使ってるって意味で言ってたんだけど、
アプローチが違うから伝わってなかったみたいでごめん。

で、Windows 側でテキストボックス(エディットコントロール)を置いてみたんだけど、
どーしてもキーボードからの文字入力ができない。
まあよく考えると DirectX や OpenGL を使ってプライマリに描画されると
子ウィンドウは消えてしまうから元々この方法じゃ駄目かも知れないけど、
貼り付けや切り取りなんかはできるのに
一切の文字の入力ができないのはやっぱりおかしい。

と思ってソース読んでみたら、SDL め、
メッセージループでキーボードイベントを SDL の中に取り込んだあと
Windows 標準のウィンドウプロシージャーに渡さず破棄してる。
当然ウィンドウにキーボードイベントは通達されず、文字入力は不可能。
ALT+F4 での終了や ALT+SPACE でのメニュー出現が動かないのもこのせい。

そこで SDL_WMmsg を使ってみようとしたんだけど、
SDL で拾えなかったものだけを扱ってるもんだから
Windows 固有のキーボードイベントは破棄されててどうやっても取得できない。
もう一段ウィンドウプロシージャを噛ませるしか無いかな。
こりゃ大変だ……
559531 ◆pm4Rr1N8T6 :04/09/01 04:56 ID:Iu2ojuI1
な、長すぎる。なんかスレ違いになってきてごめん。どっか別の場所に移動するよ。
560名前は開発中のものです。:04/09/01 10:29 ID:Ph6g14fm
なんとなく。
Anthyのライブラリを使って自前で漢字変換するようにすればよいのではないかと思った。
sdlskkも同じような方式だっけ?なら同じようなのを増やしても意味無いな・・・。
561名前は開発中のものです。:04/09/01 22:55 ID:M+Pa7IBI
>>560
意味あると思うよ。
skkは操作系がかなり独特だから対象ユーザが限られるけど、
Anthyなら普段は別のIMEを使用している人もそれほど違和感なく使えると思うし。
562sgi_rocks:04/09/02 04:11 ID:fDohgGN6
>>558
ゲームのWindowと別のWindowを作ってそこで入力するのであれば、
それは既にやった事があります。(gtk+-2.xを使いました)
ゲームのWindow内に直接入力したいな、と思ってます。
恐らく、SDL_ttfを使うことになると思います。

>>560
自分で変換エンジンを作ってしまうのもよいのですが、
なるべく、ユーザーが使っているIMをそのまま使えるようにしようと思っていたので、
cannaやanthyではなく、XIMやIIIMFを操作する方法を探っています。

ただ、anthyなどを使って変換してしまうのも一つの手段ですし、
比較的簡単にできるかもしれませんね。

今少し時間がなかったりするので何もできてないのですが、
とりあえず私はXIMを操作する方向でやってみる予定です。
563531 ◆pm4Rr1N8T6 :04/09/05 01:18 ID:O4WY3ynx
うごご、やっとなんとか動くもんができたよーん。
http://gamdev.org/up/img/1165.zip
中身の test.zip の中にサンプル入れてある。
現在 Win32 用の処理のみ。
自分で IME 処理を実装することもできるから、
フリーな IME があったら自分で機能を追加できるよ。
まだテストが不十分だからあちこちにバグがありそう。注意!

>>562
いや、Windows 標準の入力機構を使おうとしたってこと。
Windows では、テキスト入力部分もウィンドウの一種として扱われてるんだよ。

あと、SDL_ttf は仕様レベルでのバグもあるし、
文字描画エンジンをユーザーが選ぶことができなくなるからできれば使いたくないなあ。
一応、上のライブラリでは単純な変換状況取得しかできないようになってる。
ライブラリの使い方サンプルプログラムでは SDL_ttf を使って描画した。
564名前は開発中のものです。:04/09/05 21:21 ID:gDPcDraA
562ではないですが、SDL_EventからXEventへ変換して、
それをXFilterEventしてやればXIMでも大丈夫なような気がしてきたのでちょいやってみます。
565531 ◆pm4Rr1N8T6 :04/09/05 22:36 ID:Po72KKsf
http://gamdev.org/up/img/1175.zip
ソースがぐちゃぐちゃだったのであちこち修正。
ついでにバグを潰して間に合わせだった仕様も結構変えてしまった。
昨日のを落としてた人ごめんなさい。

>>564
がんばれー
566564:04/09/07 02:23 ID:aIh9QYNB
それっぽく動いたけど、キー取りこぼすし、終了できないし。
プロトコルとかまで調べないといかんかなぁ。。。
だれかXIMの挙動に詳しい人っている?
567531 ◆pm4Rr1N8T6 :04/09/07 03:52 ID:s0fkyrDg
うーん、VMware に FreeBSD 入れてみようと頑張ったけど
インストール途中でこけるなあ。

とりあえず、MacOS 9 と MacOS X の入ったマシンを一台ずつ持ってるから、
そっちで Mac 版を作ってみるよ。
Mac の IME のインターフェイスは Text Service Manager ってんだっけ。
568531 ◆pm4Rr1N8T6 :04/09/07 03:58 ID:s0fkyrDg
http://gamdev.org/up/img/1183.zip
昨日バグ潰したんだった。
あと、README のメッセージに関する説明を細かくしておいた。
仕様を確定させたつもりは無いから、
ウィンドウシステム固有の問題とかあったら連絡お願い。
569sgi_rocks:04/09/08 00:55 ID:hVzmkiI8
>>568
基本的な仕様は現在ので良いと思います。
ひとつ提案があるとすれば、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に詳しい方がいらっしゃれば、その辺り教えて頂けると嬉しいです。
570sgi_rocks:04/09/08 01:07 ID:hVzmkiI8
長くてすいません(汗。
なんかサイトとか立ち上げた方が良い気がしてきたりしますがどうでしょう?
571564:04/09/08 03:05 ID:/gyCnV3K
あ、かぶってしまった >>569
http://gamdev.org/up/img/1198.zip
kinput2 + canna で一応動いた。test/main.cは書換え無しでほぼ同じ挙動をするはず。
skkinputでは動かなかった。
on-the-spot とかいうスタイルを使えば描画も全部アプリケーション側でいけるはず。

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

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

一応サイトを作ってみました。
もし良かったら使って下さい。
ttp://p56.aaacafe.ne.jp/~sdlim/
573sgi_rocks:04/09/08 10:35 ID:Z7GwucVh
>>571
すごいです。Fedora Core 2(XIM + canna)で試しましたが、Windowsと同じように動作しました。
on-the-spotだとコールバック関数設定できたんですか(汗。思いつかなかったです。

一応サイトを作ってみました。
もし良かったら使って下さい。
ttp://p56.aaacafe.ne.jp/~sdlim/
574名前は開発中のものです。:04/09/08 12:44 ID:4F4ga2pg
>>569
> どうやってイベントをSDLより先に取得するかで悩んでます。
一応こんなもんがあるよ。
http://www.tacoworks.jp/software/SDLdoc-jp/html/sdlseteventfilter.html
ただ、これを使っても、SDL 自体の処理がタコで
ユーザーにイベントを回してこないことがある。
win32.c では SDL が一部のイベントを握り潰していたから
自分で Win32API 側のイベントを奪い取るしか無かった。
あと、アプリケーション開発側のユーザーが
SDL_inputmethod と同時に自前で SDL_SetEventFilter() を使った場合、
きちんと古い SDL_EventFilter を呼んでくれない危険性もあるね。
575名前は開発中のものです。:04/09/08 13:09 ID:4F4ga2pg
>>571
おお、やった!
っていうか SDL_EventFilter 使ってたんだね。

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

>>572
あらら、SourceForge.jp にでもプロジェクト立てればいいやと思ってたんだけど、
それは大体出来てからでいいかな。
っていうか LGPL で問題無い?

>573
おちけつ

ちょっと家に帰ったらテストプログラム修正する。
576531,575 ◆pm4Rr1N8T6 :04/09/08 13:11 ID:4F4ga2pg
トリップ忘れ。上司が後ろを通って焦ってしまった。
577sgi_rocks:04/09/08 13:58 ID:Z7GwucVh
>>576
確かにSDL_inputmethod自体は描写に関するものは一切含まないようにしておいて、
もしそれが必要でありそうなら、SDL_inputmethodに対するラッパーを書く方が良いかもしれませんね。

sourceforge.jpはまったく頭に無かったです。
もしそっちでできるのであればそっちの方が良さそうですね。

SDLでIMを使いたいな、と思ったのもゲームを作ってたのが原因なので、
今作ってるものにSDL_inputmethodを使ってみます。
578564:04/09/08 16:06 ID:5bciN7sZ
あー、ネイティブっていうのは、OSネイティブのIMっていう意味。
WindowsだったらMS-IMEの変換ウィンドウっていう意味で。

それだったらどう?
579531 ◆pm4Rr1N8T6 :04/09/08 18:28 ID:4F4ga2pg
うーん、調べた限りだと、Windows の仕様では DirectX なんかで
プライマリバッファに描画するようにした時、
どうしても OS ネイティブなウィンドウがプライマリバッファで上書きされてしまうみたい。
Windows の場合は変換中の文字列も一つのウィンドウの中の表示という扱いで、
プライマリバッファに上書きされてしまうから、そういう条件下ではどうしても自前描画になるっぽい。

基本的な知識が足りてないから曖昧な言い方になってしまった。
わかりづらい説明ですまん。
結局 OS 自体に入力部分を描画させるのは難しいみたい。

俺の知識不足である可能性も充分に有り得るから、
誰か解決方法知ってる人がいたら情報お願い。
580('A`):04/09/08 21:41 ID: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
581564:04/09/09 03:39 ID:b9WTMygk
>>579
なるほど。じゃあ、やっぱ
プリミティブな部分ライブラリ + それのラッパみたいなライブラリ
っていう構成がいいのか。
582名前は開発中のものです。:04/09/12 22:47:27 ID:Y32NRKdw
CVS版のsmpegなんですが、
smpeg/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しないと思うのですが…。
583582:04/09/12 22:51:21 ID:Y32NRKdw
> 303 ----
> 305 ----
の----は無視してください。
584名前は開発中のものです。:04/09/13 17:03:47 ID:F/MIp811
SDL_inputmethodの話題、SDL Watch::TNGに取り上げられたね。期待!

SDL_inputmethod
http://p56.aaacafe.ne.jp/~sdlim/
585名前は開発中のものです。:04/09/13 17:16:32 ID:055hpd5o
音沙汰がないと思ったらそっちでやってたのか。
586名前は開発中のものです。:04/09/13 18:53:29 ID:F/MIp811
すいません。休刊になったLinux japan最終号の付録CD-ROMについてた"SDLバカ一代"のpdfは公開されているものでしょうか?
Linux japan最終号は出版元にも既にバックナンバーがない状態でして、SDLの貴重なドキュメントを逃したことが非常に残念です。。
Linux japanのいくつかの連載記事は出版元の協力を得てpdfで公開されているので、"SDLバカ一代"についても期待をしているのですが...
587名前は開発中のものです。:04/09/14 16:53:11 ID:F75T3zlI
>>586
著者にメールで相談してみては?
588名前は開発中のものです。:04/09/14 19:23:51 ID:BUAbryMc
GtkSDLをWindows上で動作させることは可能だろうか?
589名前は開発中のものです。:04/09/14 20:10:50 ID:BUAbryMc
尋ねる前に自分でやってみるべきだた。
どうも無理ぽい。
gdkx.hをgdkwin32.hに、GDK_WINDOW_XWINDOWをGDK_WINDOW_HWNDに書き換えて
-mms-bitfields付けてgcc3.2.3でコンパイルしたところ、
SDLのウィンドウとGTK+のウィンドウの二つが。
590名前は開発中のものです。:04/09/16 14:37:11 ID:HQ3ex6FR
おちる。。
591名前は開発中のものです。:04/09/16 17:49:16 ID:2OLCusIL
SDL_inputmethod が sourceforge.net に引越ししたみたい

http://sdlinputmethod.sourceforge.net/
592名前は開発中のものです。:04/09/16 23:34:47 ID:Bx2LEHan
ゲームの効果音って、Mix_LoadWAVあたりで全部pre-loadするのが一般的なのかな?
593名前は開発中のものです。:04/09/17 00:11:19 ID:jqWr+HpC
>>592
一般的かどうかは知らんが、オレはそうしてる。
594名前は開発中のものです。:04/09/17 08:53:16 ID:YTjwD9Cr
俺もそうすることが多いけど、会話シーン中の効果音程度ならその場で読み込んでる。
RPGやSLGなんかもその場で読んで充分じゃないかと思う。
リアルタイム要素の強さ次第かな。
595592:04/09/20 00:02:29 ID:qEnIINch
>>593-594
えらく遅くなりましたがありがとです。
596名前は開発中のものです。:04/09/23 07:48:29 ID:MAQ37xzD
SDL_Init(SDL_INIT_VIDEO|SDL_INIT_TIMER)が失敗するのは具体的にどんな時なのだろう……
597名前は開発中のものです。:04/09/23 09:56:35 ID:PYDXgeMB
ソースを読むのが確実なんじゃないですか
598名前は開発中のものです。:04/09/24 00:07:23 ID:WNRqvYHH
>>596
とりあえずSDL_GetError()。
で、そのエラーを出してる部分のソースを読むしかないんじゃないかな。
599名前は開発中のものです。:04/10/12 16:04:41 ID:JVe9TSlC
>>591
web pageからproject page(http://sourceforge.net/projects/sdlinputmethod)
へのリンクを張ってもらえるとうれしいです。
600名前は開発中のものです。:04/10/15 13:38:24 ID:0e1E0ggZ
>>599の対応ありがとうございます。
601名前は開発中のものです。:04/10/21 11:52:02 ID:6v+I1mnz
ちょいとみなさんに聞きたいのだが、
画像の回転表示ってどうやってますか?
OpenGL使うという方法もあるのかも知れませんが、一応それ以外で。
602名前は開発中のものです。:04/10/21 13:55:22 ID:B5V9eGhn
>>601
どうやってといわれれば、回転させるプログラム組んで。
603名前は開発中のものです。:04/10/21 20:05:17 ID:JI3rp/xx
SDL_gfx
SGE
604名前は開発中のものです。:04/10/22 16:04:05 ID:jWZrFodZ
SDLでサーフィスを拡大・縮小するにはどうしたらいい?
Ruby/SDLのSDL#transformみたいなことをRUDLでやりたいんだが…
605名前は開発中のものです。:04/10/24 21:43:30 ID:f3AiXIG4
SDL_ttfでアンチエイリアスを効かせるには、どうすればいいんでしょうか?
606名前は開発中のものです。:04/10/25 07:22:46 ID:VVYWZ8/E
>>603
SDL_gfx SGE のどっちかを使え。
それぞれどういうものかは自分で使って確かめろ。

>>605
TTF_Render*_Shaded() TTF_Render*_Blended() のどっちかを使え。
どういう差があるのかは自分で使って確かめろ。

ドキュメントが少ないのは事実だが、
いくらなんでももうちょっと自分で調べないと何もできないぞ。
このぐらいの情報はすぐ見付かる。
607名前は開発中のものです。:04/10/25 15:36:34 ID:+kRZkPnx
フォントをbmpにレンダリングするツールと、そのbmpを使って日本語を表示するものを作ってみた
しかし4MByte近いbmpになってしまった
でけーなぁ
透過pngにすると使い勝手はいいんだが、内部ではどれくらいに展開されてるんだろ
608605:04/10/25 22:33:39 ID:snYpUN8B
>>606
駄目ですた。
SHADEDは背景色が透過されずに表示されて、BLENDEDは何も表示され
ませんでした。
OpenGLのテクスチャに使うために、一度2の累乗サイズのサーフェイスに
Blitしてるのが原因なのかもしれないです。
SOLIDの場合はちゃんと透過されてるのに、何故なんだろう・・・。
609605:04/10/25 23:43:05 ID:snYpUN8B
すみません、出来ました。
SDL_ttfから取得したサーフェイスを、2の累乗サイズのサーフェイスに
Blitした後に、ttfのサーフェイスにアルファフラグを書き戻してやらないと
いけないみたいです。

何故こうなってるのか、未だにさっぱりですが、ともかくこういう物の
ようです。
どうもありがとうございました。
610606:04/10/26 00:44:33 ID:zFRaLOBe
>>609
「アルファフラグを書き戻す」ってのがどういう行為を指してるのかちょっとよくわからなかったんだが、
SDL_ttf の Blended 系では、
・フォントを描画した Surface を返す
・階調的なアルファブレンドも行う
という二つの条件を満たすために
返した Surface の中にアルファチャンネルを含めてある。

で、新しいサーフェスに Blit したりして
サーフェスをいくつもまたぐ時に問題になってくるのがこれ。
http://zinnia.dyndns.org/~cvsweb/sdldoc-jp/sdlblitsurface.html
> blit 操作の結果は SDL_SRCAPLHA がセットされているか否かによって大きく変化します。
> これがどのように結果に影響するかについては、 SDL_SetAlpha を見て下さい。

ここら辺をちゃんと設定してなかったんでないかい?
ちょっと情報が少ないから推測でもの言ってるが。

ところで、最初に提供してもらった情報が少なかったとはいえ、
この条件下なら確かに混乱して質問してもおかしくないわな。
キツい言い方して悪かった。
611名前は開発中のものです。:04/10/26 17:28:03 ID:UwgETfqy
外出かも知れないが
SDL_imageを使って読み込んでOpenGL のテクスチャデータに変換
ttp://alb.hp.infoseek.co.jp/opengl/texture.shtml
透過png使えて幸せになれる
612603:04/10/26 20:49:27 ID:8Om0IHEs
???
613605:04/10/26 23:10:01 ID:tqT7U+dq
>>610
どうもです。
「アルファフラグを書き戻す」というか、Blitする前に
文字を書いたサーフェイスのSDL_PixelFormatのcolorkeyと、
alphaを保存しておいて、Blitした後に同じサーフェイスに
再度セットしなおすとうまく行くんです。
そのサーフェイスは後は解放するだけで、全く使わないんですが
そんなものなんでしょうか。

SDL_SRCALPHAとかSDL_SRCCOLORKEYとかは色々やってみたんですが、
全く駄目駄目でした。

スレ汚しでしたが、どうもありがとうございました。
614名前は開発中のものです。:04/10/28 05:06:14 ID:mhNHIfQh
ところで、SDLの書籍ってないの?
探しても見付からない。できれば日本語が良いけど最悪英語でも良いかな。
615名前は開発中のものです。:04/10/28 07:07:22 ID:qwRYnaqu
>>614
http://www.libsdl.org/books.php
日本語はなかったと思う。IntroductionとTutorialとかが結構充実していて
読みやすい英語で書かれているから(日本語訳もあるし)、それで十分間に合うと思うけど…。
でも、新しいAPIのmanは整備して欲しいかなぁ…。manが使えないときはソース読め。
616名前は開発中のものです。:04/10/28 07:09:55 ID:LDePkSKW
翻訳すっか。
誰か英語に強い人いない?
617名前は開発中のものです。:04/10/28 10:03:12 ID:tuc1m51K
>92
SDLってLGPLだよね?
LGPLはソースコード公開の義務はなかったはず
ソースコード公開の義務があるのはGPL
LGPLはリンクし直せなければいけなかったはず
でもWindows版はDLLになっているから大丈夫なのかな?
その他のプラットフォームならリンク前の物も入手できるようにしないといけないのか?
「欲しい人はメールください」ってREADMEにメアドといっしょに書いておけば、
常時アップしておく必要はない気がする
詳しいエロい人教えて
あとSDLを使ってること、SDLがLGPLであることはきちんとREADMEに載せないといけないよね?
618名前は開発中のものです。:04/10/28 23:15:32 ID:rppov/8Q
いかなるオープンソース/フリーソフトウェアを使うに際しても
ライセンスを理解して同意するプロセスは必要不可欠.
つまり >>617 にSDLを使う資格はない.てか DirectX で十分だろ.
619名前は開発中のものです。:04/10/29 16:03:43 ID:VQCXStAA
>614
日本語リファレンスは見た?
620名前は開発中のものです。:04/11/03 11:35:47 ID:oDGcAACs
D言語でSDLを使っていて、
画像の回転や拡大のライブラリSDL_gfxがあると知りました。
早速使ってみようと思って落としてみました。
ですが、ビルドしてもインポートライブラリが無効であるとエラーがでます。
SDLgfxを使ってる方はどのようにしてLIBファイルを入手したのでしょうか。
それともD言語用には別な方法があるのでしょうか。

ttp://www.ferzkopp.net/~aschiffler/Software/SDL_gfx-2.0/SDL_gfx-2.0.12.tar.gz
621名前は開発中のものです。:04/11/03 12:21:56 ID:YwbSD6qV
http://www.digitalmars.com/ctg/implib.html
これ使って作るんじゃね?
622620:04/11/03 15:03:02 ID:oDGcAACs
なるほど、Dでも使えるように変換しなければいけなかったのですね。
先ほど試しましたところ、ビルド自体は成功しました。(テストはまだですが

大感謝です。
623名前は開発中のものです。:04/11/04 16:16:01 ID:WBic7bqM
3Dオブジェクトを動かし、結果を2Dプレーン(テレビやモニタの画面など)に投影、
ユーザーがパースペクティブの変更やズームイン・アウトを行えるシステムに関する特許。
http://www.itmedia.co.jp/news/articles/0411/04/news023.html
624名前は開発中のものです。:04/11/12 22:52:56 ID:/3BmI4D1
625名前は開発中のものです。:04/11/12 23:16:01 ID:lGdyiPKM
SDLで作られた面白ゲームの紹介ってのはどうだろう?
ABAゲームなんていいよなぁー。
626名前は開発中のものです。:04/11/13 00:01:36 ID:98R+onSK
>625
言いだしっぺはリンクはるべ
で、ABAゲームってなに?
627名前は開発中のものです。:04/11/13 03:37:05 ID:gttWCWSd
ABAさんとこだね
http://www.asahi-net.or.jp/~cs8k-cyu/
これをフリーで出してるのはかなり反則級というか、なんというか・・・
628名前は開発中のものです。:04/11/13 14:12:49 ID:UOJJqomH
積み木シューティングとかトンネルシューティングとか凄いね。
センス良くてかっこいい
629名前は開発中のものです。:04/11/13 16:29:11 ID:GrYxDtPw
うお!新作出てたのか!覗く機会をサンクスコ
630名前は開発中のものです。:04/11/15 00:04:26 ID:iEfH5u7g
うわ、またスレが止まってる
631名前は開発中のものです。:04/11/19 22:06:31 ID:qqm541c3
最近立ち上がった初心者向けのサイト
ttp://tokyo.cool.ne.jp/sdl/
632名前は開発中のものです。:04/11/20 07:00:15 ID:AUnD/RqU
最近すぎw
633名前は開発中のものです。:04/11/20 16:11:50 ID:PDaYb1sL
77人目だったよw
634名前は開発中のものです。:04/11/20 16:16:58 ID:JtgNvmeY
78人目
635名前は開発中のものです。:04/11/20 16:22:35 ID:FeIPE62+
80人目だったよ
ってキリ番ゲットか?w
636名前は開発中のものです。:04/11/20 20:37:11 ID:0RSKFqz3
100人目ゲッツ
637名前は開発中のものです。:04/11/20 20:52:51 ID:FeIPE62+
いいな、サイトの主に内緒でキリ番ゲットっていうのもw
漏れは残念ながら102番
638名前は開発中のものです。:04/11/20 21:00:35 ID:nz2luzg3
>>631
なかなかいいホームページじゃないか。
と言いつつ、104ゲット
639名前は開発中のものです。:04/11/20 22:46:06 ID:wmOMwduz
111ゲット!やった!

画像がJPEGだとか、ちょっと日本語がおかしいだとかを除けば結構いいサイトだね。
こういう一連の流れを追って説明する日本語サイトはあんまり無かったから。
640名前は開発中のものです。:04/11/20 23:18:09 ID:MBcXOI5c
なにやったんの前らw
641名前は開発中のものです。:04/11/21 15:20:19 ID:U8+4f0mL
ttp://tokyo.cool.ne.jp/sdl/
初心者の(rのメモでLittle3DとG3Dの紹介がちょっとだけあったけど
他にもだれか3Dエンジン使って人いますか?
よかったら使用感とかお勧め度とか教えてください
OpenGL触ったことないんでエンジンに頼ろうかと思ってます
642名前は開発中のものです。:04/11/22 20:23:39 ID:tA6Om7KW
ネタがない…
643名前は開発中のものです。:04/11/22 23:35:54 ID:6NCszWA+
夜の町を歩こう!
644名前は開発中のものです。:04/11/23 07:14:06 ID:l/5rBHwm
で、職質を受けると('A`)
645名前は開発中のものです。:04/11/23 09:35:34 ID:BlAzMHZX
あっなたのおっなまえなんて〜の?
646名前は開発中のものです。:04/11/23 10:02:31 ID:QthUCkrr
名前は開発中のものです。
647名前は開発中のものです。:04/11/23 15:37:35 ID:jc/rhL4C
>645
>646
ハゲワラタ
648名前は開発中のものです。:04/11/23 19:16:57 ID:cNmDu3OL
オレもワロタ
649名前は開発中のものです。:04/11/25 03:28:00 ID:cWeSzuR7
650名前は開発中のものです。:04/11/27 22:55:24 ID:JASdTwIV
浮上します

SDL公式で紹介されてるゲームをいくつか落としてやってみたけど
結構しょっぱいの多いのな
651名前は開発中のものです。:04/11/29 02:43:03 ID:t3nZ8kpo
■ PSY-NO
http://shinh.skr.jp/psyno/
http://d.hatena.ne.jp/shinichiro_h/

とっつき悪いけど、はまると面白い。
ネットランキングとリプレイがうれしい。
652名前は開発中のものです。:04/11/29 04:08:54 ID:sQI5GyHU
>>650
まあ、しょっぱいのが多いってのはSDLに限らんな
653名前は開発中のものです。:04/12/04 23:29:02 ID:xbb3uNtl
SDL2.0ってどれくらい進んでるの?
654653:04/12/04 23:29:31 ID:xbb3uNtl
ひさしぶりにのぞいたのでageておこう
655名前は開発中のものです。:04/12/05 19:53:49 ID:rZanT1eH
http://www.libsdl.org/cgi/cvsweb.cgi/SDL20/
CVS 上では一年半以上前から全く手を付けてないね。
656名前は開発中のものです。:04/12/05 20:47:20 ID:cMZceKrQ
開発終了か
657名前は開発中のものです。:04/12/06 23:21:32 ID:tzWTN0yZ
SDLの開発者に関する記事とか、プロフィールとか載ってるサイトしりませんか?
658名前は開発中のものです。:04/12/07 03:29:12 ID:rKYpM/4I
>>656
2.0 に対する意欲は薄れてるのかもね。
もしくはローカルで作業してて CVS にアップしてないだけとか。
最近は 1.2 系への修正ばっかりだよ。

>>657
Sam 氏のサイト
http://www.devolution.com/~slouken/

SDL のクレジットページ
http://www.libsdl.org/credits.php

まあ、あとはクレジットページの名前から検索するといいんじゃないかな。
659名前は開発中のものです。:04/12/07 04:24:02 ID:WXuC6Mfh
クレジット以外にも
http://www.libsdl.org/cvs.php
でpatchとかportに貢献した人の名前がある。こっちの方が新しいのかな。
日本人らしい名前も(なんか飛行機が落ちたみたいで縁起悪いな)ちらほらある。
660名前は開発中のものです。:04/12/07 06:18:30 ID:IoiJT6G7
現状で必要最低限あるからな
機能的に増やす必要があるんだろうか
2.0はどんな機能があるの?
661名前は開発中のものです。:04/12/07 14:42:11 ID:zJp3gdV7
SDLアプリで一番使うのは、ONScripter
662名前は開発中のものです。:04/12/07 16:54:27 ID:rU7nZmmh
クレジットの中にC Magazineってあった
そういえば前に特集でやってたな
663名前は開発中のものです。:04/12/08 02:09:23 ID:WW1dHwS0
>631
ヤター1000ゲット!
664名前は開発中のものです。:04/12/08 14:40:00 ID:6ys+AMtG
>>663
まだ切り番ネタひっぱるかいw
665名前は開発中のものです。:04/12/12 23:04:35 ID:9PWUm/vk
kyraってどうですか? 日本語使えます?
666名前は開発中のものです。:04/12/13 00:13:40 ID:Yp5fFNZw
>665
これだよね?
ttp://www.grinninglizard.com/kyra/
Kyra - A simple and powerful Sprite engine written in C++.

日本語使えるっていうのは日本語表示ができるかってことでいいの?

コンパイルするの面倒くさかったから落としてざっとソース見てみたけど
そのままでは表示できないっぽい

とりあえず使ってみたら?
667名前は開発中のものです。:04/12/13 17:59:28 ID:xU9HqyFK
SWF(Flash)再生ライブラリって無いもんかね…
668名前は開発中のものです。:04/12/14 01:19:16 ID:xXMquf8f
OpenSWF
669名前は開発中のものです。:04/12/16 05:52:56 ID:gfzztnrc
SDL version 1.2.8 release!
670名前は開発中のものです。:04/12/16 15:51:35 ID:2yv4uz3U
Sam氏慌てすぎ。
671名前は開発中のものです。:04/12/17 01:17:36 ID:fR88sufx
>>670
ん?何があったの?

それよりも個人的には、SDL_imageとSDL_mixerの新バージョンが出て、

* Updated libtool support for new mingw32 DLL build process

と書いてあるのが嬉しい。
これで、いちいちローカルでパッチ当てたりする必要が無くなった。
672名前は開発中のものです。:04/12/17 04:08:26 ID:ZhP17Bn3
MLにSDLとSDL_image、SDL_mixer、SDL_ttfのAnnouncingが流れたが、
空のメールを送ったりしてtake2が流れた。
673名前は開発中のものです。:04/12/18 00:21:44 ID:hgLc83K7
>>672
なるほど。おちゃめさんだな > Sam氏
パッケージミスとかかと心配したんだけどそうじゃなかったようで良かった。
674名前は開発中のものです。:04/12/18 13:07:34 ID:tTWYdvmp
バグフィックスで特に変更点はなしってことでいいのかな?
MacOS Xの名前が見られるけどよくわかんね

>671
>1.2.7: Updated libtool support so Mingw32 builds work.
公式のところには1.2.7のところに書いてあるけど、どうなの?
675名前は開発中のものです。:04/12/19 20:43:56 ID:pOhGxows
>>674
1.2.7 のアナウンスでは DLL じゃなくて so って書いてるから、
その頃はまだ .so ファイルしか出力してなかったんだと思う。
今回から添付してあるファイルで DLL を作れるようになってる。
676671:04/12/19 22:51:20 ID:JJa4+n8j
>>674
SDL本体は直ってたのに、
SDL_imageとかmixerとかは修正後一度もリリースが無かったので直ってなかった、
ってことだよ。
677名前は開発中のものです。:04/12/20 03:01:45 ID:lAq5Jb7W
OpenGLを使いたいときってどうすればいいですか?
SDL_OPENGLを使うという所まで調べましたがそれだけだと例外がでて終了してしまいます。
初期化が全然わからないので解説やコードがあるサイトがあれば教えてください。
678名前は開発中のものです。:04/12/20 07:39:21 ID:cqrg6fzo
679名前は開発中のものです。:04/12/20 07:54:55 ID:S5drrZek
SDL_GL_SetAttribute( SDL_GL_DOUBLEBUFFER, 1 )でバブルバッファ有効
SDL_SetVideoModeのオプションにSDL_OPENGLを追加

画面の更新はSDL_GL_SwapBuffers

多分>678のサンプルの
SDL_GL_SetAttribute( SDL_GL_RED_SIZE, 5 );
SDL_GL_SetAttribute( SDL_GL_GREEN_SIZE, 5 );
SDL_GL_SetAttribute( SDL_GL_BLUE_SIZE, 5 );
SDL_GL_SetAttribute( SDL_GL_DEPTH_SIZE, 16 );
はなくても大丈夫だったと思う
680名前は開発中のものです。:04/12/20 09:22:16 ID:YhejNCYY
まずはソースアーカイブ(SDL-1.2.8.tar.gz)に入ってる、
testgl.c, testdygl.cを読んでみるのがいいんじゃないかな。
681名前は開発中のものです。:04/12/22 14:36:39 ID:CGEi7xRn
SDLでマルチウインドウって…

できませんね?
682名前は開発中のものです。:04/12/22 17:23:40 ID:Jj/U5P+K
>681
2つ以上のアプリケーションを作ってアプリケーション同士でプロセス間通信とか?
683名前は開発中のものです。:04/12/22 22:45:23 ID:l4mvVylp
>>681
FOX だったか FLTK だったかを使ったサンプルプログラムを本家 ML で見かけたぞ
684名前は開発中のものです。:04/12/22 22:57:29 ID:+5iFGnK3
ビデオ関係のソースを見るとわかるが、
SDL で利用するウィンドウは一つだけだと開き直ってるために
環境ごとのビデオ情報(ウィンドウハンドルとか)を
ほとんどの場合グローバル変数で持ってる。
ウィンドウが二つ以上生成されるようなことを実現するのは、
SDL 単体じゃ無理だろうな。
>>683みたいなごり押しが必要。
685名前は開発中のものです。:04/12/24 01:04:03 ID:D6kFgiLi
Ruby/SDL で、スクリプトを UTF-8 で書くと、文字化けを起こしてしまいます。
たとえば、SDL::WM.set_caption の引数、つまり窓のタイトルが文字化けします。
$KCODE の設定を確認したのですが、文字化けの原因にはなってませんでした。
SDL 側に正しい文字コードを認識させる方法はないのでしょうか。
686685:04/12/24 03:50:56 ID:D6kFgiLi
Uconv使って無理やり解決させました(引数の部分だけSJISに変換)が、なんかすっきりしません。
687名前は開発中のものです。:04/12/25 15:48:19 ID:jmQKZrGb
>685
書いてないけど日本語でってことかな、多分
Rubyはさっぱりだけど、タイトルの文字化けはOS(というかWindowシステム?)の問題では?
多分SDLはもらった文字列をそのままOS(というかWindowシステム?)のキャプション表示に渡してるだけだろうから
SDLが文字コードを認識できたとしても何も解決できないと思われ
キャプションに日本語を表示させるのをあきらめるしかないのでは?
あとは表示させる文字列をSJISのファイルにして、それをロードしてそのままわたせば
変換の必要はなくなると思うけど
688名前は開発中のものです。:04/12/25 23:37:26 ID:A/zeU39x
>685
SDL 本体自体は、そもそも多言語化を意識してないもんなあ。

http://www.libsdl.org/cgi/cvsweb.cgi/SDL12/src/video/wincommon/SDL_syswm.c?rev=1.7&content-type=text/x-cvsweb-markup
Windows
http://www.libsdl.org/cgi/cvsweb.cgi/SDL12/src/video/x11/SDL_x11wm.c?rev=1.9.2.2&content-type=text/x-cvsweb-markup
X11

ちょっとよく見てないんだけど、X11 版は内部で UTF-8 を使ってるように見える。勘違いかな。
ただ Windows は確実にほったらかしだね。これじゃマルチバイト文字は通らない。

Ruby/SDL のことはわからないけど、すっきりした解決策は無いと思うよ。
本家にパッチ送るって手もあるけどね。
689名前は開発中のものです。:04/12/25 23:52:50 ID:A/zeU39x
> ただ Windows は確実にほったらかしだね。これじゃマルチバイト文字は通らない。

ごめん、これ間違い。
マルチバイト文字が通らないんじゃなくて、UTF-8 が通らない。

アプリケーション本体のソースで Unicode 統一とかやってんだったら、
プリプロセッサで分けて Windows の場合は WideCharToMultiByte 使うとか、
X11 で通らなかった場合は iconv で nl_langinfo(CODESET) に変換するとか、
そういう対処する以外無いと思う。なんか SDL 使ってる気が薄れるけど。
もしくはタイトル部分は ASCII で開き直るとか。
690685:04/12/26 00:25:42 ID:7MVm4DuB
ご返答ありがとうございます。

>>687

> 書いてないけど日本語でってことかな、多分
そうです。書き忘れました。すみません。
マルチバイト文字の部分だけ文字化けしました。ASCII文字は大丈夫でした。

> 多分SDLはもらった文字列をそのままOS(というかWindowシステム?)のキャプション表示に渡してるだけだろうから
> SDLが文字コードを認識できたとしても何も解決できないと思われ
そうなのですか。残念です。
SDLが、OSを意識することなくアプリケーションを組めるライブラリであるなら、
OSのデフォルトの文字コードも意識する必要はないのかな、と思っていました。

>>688=>>689

> ちょっとよく見てないんだけど、X11 版は内部で UTF-8 を使ってるように見える。勘違いかな。
> ただ Windows は確実にほったらかしだね。これじゃマルチバイト文字は通らない。
URLありがとうございます。
ソースを見てもさっぱりですが、マルチバイト文字関連は手薄である、と解釈してよいのですね。

> プリプロセッサで分けて Windows の場合は WideCharToMultiByte 使うとか、
> X11 で通らなかった場合は iconv で nl_langinfo(CODESET) に変換するとか、
まだ僕の技術が未熟なもんで、何がなにやらさっぱりわかりませんが…
OS毎になにかいろいろ変える必要があるのですね。

> もしくはタイトル部分は ASCII で開き直るとか。
一番簡単な解決策ですね。
691名前は開発中のものです。:04/12/26 01:54:22 ID:PcH7Hb9Y
そういえば漏れゲームの時はタイトル部は必ず英語か
それっぽいアルファベット数文字
692名前は開発中のものです。:04/12/27 12:57:06 ID:kl2IaoBJ
lkj
693名前は開発中のものです。:04/12/28 15:51:44 ID:N7uXumos
66 :デフォルトの名無しさん :04/12/27 18:00:11
  まじでRubygame作っている香具師がいたのか。
  http://rubygame.seul.org/
694名前は開発中のものです。:04/12/28 20:02:35 ID:qJ+0ZIyb
>>693
リファレンスをぱっと見て、 Ruby/SDL と何が違うのかわからんとおもた
695名前は開発中のものです。:04/12/28 23:53:10 ID:T/yIjxhS
>>693
Ruby + SDL ってこれで3つ目だっけ
696名前は開発中のものです。:04/12/29 01:07:47 ID:9zkeURY6
SDL使ってる人って少ないのかな?
697名前は開発中のものです。:04/12/29 22:11:54 ID:QcwKrDG0
ちゃんとしたGUIがあれば使ってもいいんだが・・・。
いったいどうすりゃいいのって状態なもんで。
698名前は開発中のものです。:04/12/29 22:21:36 ID:enz/1/yx
2Dでゲーム作るのなら、SDLはスゲエ楽だし、金もかからないし、そのくせ自由度はあると思うので、もう少し流行してもいいと思うんだけどなあ。
みんな最初はDirectXから入るだろうけど、そこから別の環境に移行するのが面倒になって、止まってるんじゃないかな?と思う。
楽をする為の努力をするのも、悪くは無いと思うんだけどな。

とまあ、友達にオススメしたら環境構築すら出来なかったようなので、素人には敷居が高いことは、確からしい。
素晴らしいものなのに、残念。
699名前は開発中のものです。:04/12/30 00:23:35 ID:4YT/UF4y
allegroはAPIの名前がアレだった。
700700ゲト:04/12/30 13:31:40 ID:F+nUJbkY
cubeもSDL使ってるよね。
701名前は開発中のものです。:04/12/31 14:52:58 ID:YiI4iQlZ
VCあたりでSDLの環境構築できないのは能力的に問題あると思う
情報も豊富なのに
702名前は開発中のものです。:04/12/31 16:50:22 ID:SOfdUrI9
C なり C++ なり D なりの触り始めじゃないのかな。
ヘッダファイルとかライブラリファイルとかがどういう用途で
コンパイラがどこに読みに行ってどこに置けばいいのか、
ってとこを把握しないといけないから、
「プログラミング初めてで、SDL 使います」という場合はまあ環境構築できなさそう。
結局は能力が低いってことなんだけど。
703名前は開発中のものです。:04/12/31 17:06:36 ID:tVjZ5Y/d
まあそう責めてやるな。
704名前は開発中のものです。:05/01/03 00:21:36 ID:VVWAXKVf
>>698
OpenGLでなんか作るときにも、最近はもう必須。

俺は、MinGWを入れて、SDL-1.2.8.tar.gzを展開して
configure
make
make install
で、環境構築してる。
でも、printf()が出力されない。。。
705名前は開発中のものです。:05/01/03 04:05:53 ID:XjwGZAam
>>704
標準では、stdout.txt(標準エラー出力はstderr.txt)に出力されるようになってる。

freopen("hoge.txt","w",stdout);
freopen("err.txt","w",stderr);

とかすれば、任意のファイルに変更可能。
706名前は開発中のものです。:05/01/03 16:32:46 ID:ZXvyJ+mP
もしくは、SDL 本体の SDL_win32_main.c の中の WinMain() にある
freopen() の呼び出しをコメントアウトして DLL 作り直すとかね。
コマンドプロンプト以外から実行した時におかしくなるかもしれないけど。
707名前は開発中のものです。:05/01/03 17:10:56 ID:AuOfObHU
本家 ML に流れてたのを転載

> SDL is compiled with stdout redirection to stdout.txt by default.
> if you want to use stdout, and not write to a file:
> recompile SDL with --disable-stdio-redirect

--disable-stdio-redirect でコンパイルすればよいらしい
708名前は開発中のものです。:05/01/03 21:21:46 ID:eVd45ytG
cygwin だと tail -f 効かなくて困っていた所だったので、参考になりました
709704:05/01/04 00:21:35 ID:mAqS2ZUA
>>707
情報ありがと。

なんか明示的に fflush(stdout); しないと、すぐに出力されないっぽいけど
出ないよりは全然ましなんで大助かりです。ヽ(´▽`)ノ
710名前は開発中のものです。:05/01/05 21:06:07 ID:Fu+0McaA
711名前は開発中のものです。:05/01/07 00:34:20 ID:CLwECnQA
 
712!omikuji!dama:05/01/07 05:38:32 ID:0S/nEBb8
test
713名前は開発中のものです。:05/01/07 12:45:53 ID:yQVHr456
おみくじとお年玉は元日だけですよ
714名前は開発中のものです。:05/01/08 08:31:08 ID:fQ+RSRIG
ようやく、LinuxでSDLライブラリを使った簡単な日本語の文字表示がで
きた。なんかすげーうれしかった。次は音の再生に挑戦だー。
715名前は開発中のものです。:05/01/18 17:37:22 ID:ryRr+/i4
公式が落ちてますな
716名前は開発中のものです。:05/01/19 23:39:08 ID:a+5Y5g4L
公式、復活してるぽ
717名前は開発中のものです。:05/01/25 23:29:35 ID:07kZ0jkr
SDL1.2だうんろーどできない。。。
718名前は開発中のものです。:05/01/26 00:57:22 ID:Egrx4uTH
CVS使え。
719名前は開発中のものです。:05/01/26 23:53:59 ID:RsxoOfEk
復活してた
720名前は開発中のものです。:05/01/28 01:34:50 ID:wBBSI5ZQ
>SDL_archive
。・゚・(ノД`)・゚・。
721名前は開発中のものです。:05/01/28 11:25:41 ID:n0TYWdiV
>>720
PhysicsFS(http://icculus.org/physfs/)てのもある。
722名前は開発中のものです。:05/01/28 12:06:15 ID:c7hSiyKL
>>721
わらた。すばらしいセンスだな
723名前は開発中のものです。:05/01/28 21:51:32 ID:Kx/lmu1/
724名前は開発中のものです。:05/01/30 02:54:35 ID:ZqJ4QIJa
paraguiは痒いところに手が届かないというかまあそこまで求めるのも酷かも知れないけど。
725名前は開発中のものです。:05/01/30 18:01:17 ID:CoRN48KR
Dev-C++使っていて、SDLを導入しようと思ったんだが、どうやっても上手くいかない・・・。
誰か、教えてください・・・・。
726名前は開発中のものです。:05/01/30 19:05:11 ID:ZqJ4QIJa
何が上手くいかないのかを書かないと誰も何とも言えない。
727名前は開発中のものです。:05/01/31 15:55:29 ID:+zMMv/Vu
>720
何を泣くことがあろうかっ。

アーカイブ内のファイルを開いて SDL_RWops が直に取得でき、
そのまま SDL_image や SDL_mixer に突っ込めて便利っす。

728名前は開発中のものです。:05/02/01 12:53:08 ID:AedVJiz/
SDL含めこういうライブラリで疑問。だいたいクロスプラットフォームにしてあるんだけど、Linux
使いでハードコアなゲーマーっているの?
729名前は開発中のものです。:05/02/01 13:27:33 ID:RQLopvSf
SDLに見捨てられたらLinux動画も再生出来ません。
730名前は開発中のものです。:05/02/01 13:49:34 ID:9oXWEfX6
そうだよな。
ゲーム用途が多いけど、(SシンプルDダイレクト)メディアLレイヤーなんだよな。本当は。
他のフレームワークはよく知らないけど、SDLの存在意義はあると思うよ。
実際そっちの実益は大きいと思う。
731名前は開発中のものです。:05/02/01 14:37:11 ID:SiZP0Iuf
>>728
そもそもSDLはLinuxのライブラリとして作られたんじゃないのか?
と思いつつちょっと気になったんで簡単にググってみた。
ここら辺り見てると居るんじゃないかな、って気はする
http://www.linux-gamers.net/
本当のハードコアゲーマーはCedega使ってWindowsのゲームしてそうだけど

>>729
できるよ
732名前は開発中のものです。:05/02/01 22:44:27 ID:9oXWEfX6
>>731
最初の開発動機に関しては、確かインタビューか何かで
「色んなマシンにアプリケーションを移植してたらアホ臭くなったのでライブラリを作った」
みたいなこと言ってたと思うよ。
ページは失念、検索したけど見付からなかった。すまん。
733名前は開発中のものです。:05/02/02 01:04:00 ID:9d2HU8RL
734731:05/02/02 09:12:16 ID:WOl4so1f
>>732-733
ごめん、Lokiのゲームが由来だとばかり思ってた orz
735名前は開発中のものです。:05/02/06 19:38:19 ID:GSZ53bwF
>>727
SDL_mixerでは、RWopを使ってストリーム再生するMix_LoadMUS_RWはオプションだから、直接RWopが全てに突っ込めるわけではないです。
USE_RWOPSを定義しておいてやれば使えるけど、SMPEGを利用したmp3再生には対応していない模様。
どうも、Mix_LoadMUSでしかmp3は使えないよう。
ってことは、mp3でなく、oggを推奨していますってことなのかな?
736名前は開発中のものです。:05/02/11 22:56:34 ID:dXQ7K1nl
SDL_ttfでM+フォントが開けない。・゚・(ノД`)・゚・。
TTF_OpenFont("fonts/bdfmplus.ttf", fontSize);
TTF_OpenFont("fonts/bdfUMplus.ttf", fontSize);
サイズ1〜100まで試したけどだめぽ。
環境はWindows
SDL_ttf-2.0.6
freetype-2.1.8
フォントは香り屋で落としてきたやつ。
737名前は開発中のものです。:05/02/11 23:14:02 ID:3rQbAxiH
>>736
フォントのパスを絶対パスにしてみてはいかが
738名前は開発中のものです。:05/02/11 23:17:14 ID:XuEZhlNi
>736
詳しくは知らないが、bdfUMplus.ttfはBITMAPフォントらしいのでダメポ
M+のトップからOUTLINEに飛んで、落としたやつは中に18コくらいttfが入ってて
全部は試してないがいくつかはTTF_OpenFontで開けた

M+
ttp://mplus-fonts.sourceforge.jp/
739736:05/02/11 23:43:02 ID:dXQ7K1nl
>>737
絶対パスでもだめでした。
>>738
ビットマップ埋め込みのやつでは駄目なんですね。
公式サイトから落としたやつは出来ました。
ありがとうございます。
740名前は開発中のものです。:05/02/13 00:50:02 ID:phhxXInx
>>735
御意。うちは USE_RWOPS を定義して ogg を読み込んでます。

SDL_mixer の music.c を見てると、Mix_LoadMUS_RW() は
ogg, mikmod 以外は実装されてないですね…。
ということは mp3 に限らず cmd, wav, midi もダメっぽい。

ところで cmd て何?って調べてみたら
外部プログラムを実行して曲を再生するんですね…。

music_cmd.c を読んでみたら

冒頭に /* This is a UNIX-specific hack */

再生時に music->pid = fork();

一時停止時に kill(music->pid, SIGSTOP);
再開時に kill(music->pid, SIGCONT);
停止時に kill(music->pid, SIGTERM);

とかやってて、ビビリました。
741378:05/02/13 10:02:12 ID:msvBWsr3
>>735
> ってことは、mp3でなく、oggを推奨していますってことなのかな?

ogg の実装が一番楽だったってだけだよ。
libogg の方に登録する読み込み関数のポインタを
FILE 系から RWops 系にするだけだったから。

SDL_mixer は、USE_RWOPS の場合は RWops 版と FILE 版をコンパイルして、
そうでない場合は FILE 版だけをコンパイルする、というスタンスを取ってるせいで、
mp3, wav, midi は実装なんて読み込む部分以外全部同じなのに
両方のバージョンが必要になってる。

以前、全ソースを RWops 版で統一して、
Mix_LoadMUS は内部で単に Mix_LoadMUS_RW か cmd を呼ぶだけ、
という実装でパッチ投げたんだけど返答は無かった。
Mix_LoadMUS(_RW) レベルじゃなくて、
mp3, wav, midi それぞれの実装に FILE 版と RWops 版のインターフェイスを作らないと
受け入れてもらえそうにない。
めんどいなあ。ほとんど関数名置き換えるだけだから簡単なんだけど。
742名前は開発中のものです。:05/02/14 18:46:49 ID:pz8RlDej
初歩的な質問で申し訳ないのですが、
SetColorKeyを使って透明色を持たせたテクスチャを表示するのは
SDL_BlitSurfaceでできますが、このテクスチャを拡大、回転をさせたい場合はどうすればよいの
でしょうか?
SGE_Transeformを使うとどうも透明色の効果が発揮しません。
743名前は開発中のものです。:05/02/14 19:59:14 ID:ea+EL2qX
SDL_Surface は思ったより込み入った作りをしてる上に
適当に扱ってもそこそこ動いてしまうことが多いから、
仕様を厳密に守ってるライブラリは少ないよ。

http://www.ferzkopp.net/~aschiffler/Software/SDL_gfx-2.0/
こっち使ってみたらどうかな。
ちょっと前にソースを覗いたときはまだ不完全な実装してたから、
透明色周りの処理全部がちゃんとしてるかどうかはわからないけど。
744名前は開発中のものです。:05/02/14 21:00:13 ID:pz8RlDej
>>743
さっそくのご回答ありがとうございます。
警告がばしばし出たうえに、多少手を加えないとコンパイルが通らない
ほどいまだ不完全な実装でしたが、透明色まわりは解決されていたようです。
745名前は開発中のものです。:05/02/15 19:44:14 ID:YKXR9FxL
ぐあーBCCで1.2.8肝心のSDL.dllやらがコンパイルできねえ
\Borland\freebcc>make -f SDL.mak

..\..\src\video\windib\SDL_dibevents.c:
Error E2342 ..\..\src\video\windib\SDL_dibevents.c 189: Type mismatch in paramet
er 'lpPrevWndFunc' (wanted 'int (__stdcall *)()', got 'long (__stdcall *)(void *
,unsigned int,unsigned int,long)') in function DIB_HandleMessage
*** 1 errors in Compile ***
とかいうエラーが出て止まる……
makeall.bat動かしたらtestディレクトリに色々とデモらしきものが出来てるけど。

フリーBCC使ってる皆さんちゃんと動いてます?
746名前は開発中のものです。:05/02/15 19:48:01 ID:TwJPXr3V
SDL.dllってコンパイルして作成しないといけなかったのん?
747745:05/02/15 19:56:12 ID:YKXR9FxL
>>746
SDL-1.2.8-win32.zipのSDL.dllをtestディレクトリに入れたらサンプル群がちゃんと動きました。
コンパイルできなくてもなんとかなる、というよりコンパイルする必要が無いからその辺テキトーなのかな…。
ソースに付いてるインストールガイド(Borland.html)ではSDL.dllもコンパイルされるみたいに書かれてるのに。
748名前は開発中のものです。:05/02/15 20:31:16 ID:+9+lxg8U
>>745
>Error E2342 ..\..\src\video\windib\SDL_dibevents.c 189: Type mismatch in paramet
とりあえずキャストしてみたら?
intとlongの違いなら害は無さそうだし。
749名前は開発中のものです。:05/02/15 20:48:20 ID:6CIQh+IC
前から BCC で使ってるけど、1.2.7 からコンパイルできなくなったと記憶してる。
DirectX と WinDIB の両方でエラーになるから、片方潰して回避することもできない。
結構粘ってみたんだけど、問題解決できなかった。
単に一つ定義が足りないっつってるだけかと思ったら、
手動で定義しても次々別のエラーが出てくるだけ。終わらない。
他に根本的な原因があるんだろうけど、解明できなかった。

ちなみに VC も DirectX のソースでエラー吐く。
こっちも問題を解決できなかったので、
プロジェクトの設定 -> 左の'SDL'を選択 -> C/C++ -> プリプロセッサ -> 定義から ENABLE_DIRECTX を消す
とやって、これでもまだ足りないから、
ファイルビューから名前に dx5 を含むファイルを全部削除した。
これで DirectX 無しでだがコンパイルできるようになる。
ちなみに、初期状態だと afxres.h が無いとか言い出すけど、
#include <windows.h>
とだけ書いた afxres.h を SDL-1.2.8\VisualC\SDL に置けば回避できる。
まさかちゃんとした afxres.h を持ってこないと
DirectX 付きでコンパイルできないってんじゃないだろうな……。

1.2.7 の時の話だから、今はまた少し事情が違うかもしれないけど、
手元で確認した限りだと 1.2.8 も BCC VC 共にそのままではコンパイル不可。
もう Cygwin でしかテストしてないのかね。
750名前は開発中のものです。:05/02/15 20:57:08 ID:YKXR9FxL
中身見てみると
return CallWindowProc(userWindowProc, hwnd, msg, wParam, lParam);

てとこのおそらく第一の引数なんだが、関数の型キャストのしかたわからんです (´・ω・`)
でもここをなんとかしても駄目なのか……

>>749
情報ありがと。BCC使ってる人自体がもう少数なのか?
まあdll作れなくても動くみたいだからいいや。他のSDL_image なんかが使えるか心配だが。
751名前は開発中のものです。:05/02/15 22:58:42 ID:+KOUJpD5
>>750
SDL_dibevents.cの189行
SDL_dx5events.cの547行
return CallWindowProc((FARPROC)userWindowProc, hwnd, msg, wParam, lParam);
SDL.makeの
OBJFILES=に..\..\src\cpuinfo\SDL_cpuinfo.objを追加
PATHCPP=に..\..\src\cpuinfoを追加
これで、make出来ると思う。(動くかどうかは(゚听)シラネ)
VC++だとerrorじゃなくてwarningだから、コンパイル通るみたいだね。

>>749
1.2.7も1.2.8もVC++6.0、VC.NET2003両方とも普通にコンパイルできるけど?
752名前は開発中のものです。:05/02/15 23:00:06 ID:V7EcU05u
>750
BCC使ってるけどDLLをコンパイルし直すということはしないなぁ
753749:05/02/16 05:37:50 ID:ASwNW9Kw
>>751
ありゃ。俺んちだと次のエラーが出る。
SDL-1.2.8\src\Video\Windx5\SDL_dx5events.c(171) : warning C4013: 関数 'GetAncestor' は定義されていません。int 型の値を返す外部関数と見なします。
SDL-1.2.8\src\Video\Windx5\SDL_dx5events.c(171) : error C2065: 'GA_ROOT' : 定義されていない識別子です。
SDL-1.2.8\src\Video\Windx5\SDL_dx5events.c(171) : warning C4047: '=' : 間接参照のレベルが 'struct HWND__ *' と 'int ' で異なっています。
SDL-1.2.8\src\Video\Windx5\SDL_dx5events.c(655) : warning C4047: '=' : 間接参照のレベルが 'struct HWND__ *' と 'int ' で異なっています。
俺の環境がおかしくなってるだけかも。VC 入れ直してみる。

>>751
やべー、ほんとだ通った。ありがとう!

>>752
stdout.txt が鬱陶しいから直接コンソールに出力して欲しいとか、
パッチ書いたから BCC でもコンパイルできるか試すとか、
大抵そんなんじゃないかな。
754名前は開発中のものです。:05/02/19 00:06:37 ID:G5VXh4sK
フリーのbcc使ってるから、ちょっとためになった。
imageとmixerしか使ってないけど…。
755名前は開発中のものです。:05/02/19 17:54:05 ID:vHiopGBS
どうしてもわからないので教えてください。
SDL_CreateRGBSurfaceFrom ないしは、 SDL_CreateRGBSurface を
使用しようと、してるのですがなぜか
Fatal signal: Segmentation Fault (SDL Parachute Deployed)
といわれてしまいます。
少々ながいのですが、sample 乗せますので、どこがわるいのか
識者のかた、見ていただけないでしょうか?
------- cut here ----------------------------------------
#include <SDL.h>
#include <stdlib.h>
#include <string.h>
#define XXX (60)
int main( void )
{
int j;
Uint16 **data;
Uint32 rmask = 0x0000001f;
Uint32 gmask = 0x000007E0;
Uint32 bmask = 0x0000F800;
Uint32 amask = 0x00000000;
SDL_Surface * screen;

if ( 0 < SDL_Init( SDL_INIT_VIDEO|SDL_INIT_TIMER ) ) {
fprintf( stderr, "Colud not initialize: %s\n", SDL_GetError() );
exit(3);
}
atexit( SDL_Quit );
if ( NULL == SDL_SetVideoMode( 800, 600, 16, SDL_ANYFORMAT ) ) {
fprintf( stderr, "Could not set video mode... :%s\n", SDL_GetError() );
exit(4);
}
data = (Uint16 **)malloc(sizeof(Uint16) * XXX);
756名前は開発中のものです。:05/02/19 17:56:23 ID:vHiopGBS
if ( NULL == data )
exit(10);
for (j = 0; j < XXX; ++j) {
data[ j ] = (Uint16 *)malloc(sizeof(Uint16) * 80 * 80 );
if ( NULL == data[ j ] )
exit(10);
memset( data[ j ], 0xff, sizeof(Uint16) * 80 * 80 );
}
screen = SDL_GetVideoSurface();
for ( j = 0; j < XXX; ++j ) {
int z;
SDL_Rect r = { 0, 0, 0, 0 };
printf("sprite index[%d] ...\n", j );
// SDL_Surface * surface = SDL_CreateRGBSurfaceFrom(data[ j ], 80, 80, 16, 80 * sizeof(Uint16),
// rmask, gmask, bmask, amask);
SDL_Surface * surface = SDL_CreateRGBSurface(SDL_SWSURFACE,
80, 80, 16, rmask, gmask, bmask, amask);

if ( SDL_MUSTLOCK( surface ) ) {
if ( 0 < SDL_LockSurface( surface ) ) {
fprintf( stderr, "Could not lock surface.: %s\n", SDL_GetError() );
return 0 ;
}
}
for ( z = 0; z < 80 * 80; ++z)
((Uint16*)(surface->pixels))[ z ] = data[ j ][ z ];
if ( SDL_MUSTLOCK( surface ) ) {
SDL_UnlockSurface( surface );
}
757名前は開発中のものです。:05/02/19 17:56:54 ID:vHiopGBS
SDL_FillRect( screen, NULL, SDL_MapRGB( surface->format, 0x00, 0x00, 0x00) );
if ( NULL == surface ) {
fprintf( stderr, "Could not make surface...:%s\n", SDL_GetError() );
exit(1);
}
if ( j >= 10 ) {
int xx = j % 10;
int yy = j / 10;
r.x = xx * 80;
r.y = yy * 80;
} else {
r.x = j * 80;
r.y = 0;
}
SDL_BlitSurface( surface, NULL, screen, &r );
SDL_UpdateRect(screen, 0, 0, screen->w, screen->h);
SDL_Delay( 100 );
SDL_FreeSurface( surface );
}
return 0;
}
758名前は開発中のものです。:05/02/19 18:07:41 ID:vHiopGBS
XXX の値は小さければ 10 以下であれば、問題ないようでした。
環境は、FreeBSD 5.3 STABLE です。
SDL は ports からインストールしました。
バックトレースは以下のようなものでした。

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 1 (LWP 100099)]
0x08048b93 in main () at test.c:50
50 ((Uint16*)(surface->pixels))[ z ] = data[ j ][ z ];
上の SDL_CreateRGBSurfaceFrom を使用すると、
今度は、blit 中に落ちてしまいます。
回避方法がわからないので、メモリ中のイメージを 60 個程度q
surface にするにはどうすればいいのでしょうか?
759名前は開発中のものです。:05/02/19 18:17:41 ID:La4+fv3Q
>>758
とりあえず
- data = (Uint16 **)malloc(sizeof(Uint16) * XXX);
+ data = (Uint16 **)malloc(sizeof(Uint16*) * XXX);
他にも何かあるかもしらんが、調べてない。

どうでもいいが、何でループ変数がいきなりjとかzなのか理解に苦しむな。
760名前は開発中のものです。:05/02/19 18:27:19 ID:vHiopGBS
>>759
ビンゴです。ほんとにありがとうございました。
SDL スレ汚してごめんなさい。

>>どうでもいいが、何でループ変数がいきなりjとかzなのか理解に苦しむな。
精進します。。。
761名前は開発中のものです。:05/02/19 21:48:27 ID:SeeIdQIF
次からはアップローダーにファイル置こうな……
762名前は開発中のものです。:05/02/21 23:59:34 ID:kaKGM1be
sdl-fan-jpにspam投げてるヤツ、ウゼー!ヽ(`Д´)ノ
763名前は開発中のものです。:05/02/22 22:38:49 ID:LwQOxQ0C
SDL-IM: IM(Input Method) support in SDL
http://sdl-im.csie.net/
764名前は開発中のものです。:05/02/23 23:34:20 ID:w0AHRgcd
sakiwokosaretanokana?
765名前は開発中のものです。:05/02/24 12:36:00 ID:cj7i1pZk
>>764
SDL-IMは昨年末にできたばかりみたい。
766名前は開発中のものです。:05/03/10 18:14:33 ID:B6C7//HW
まともな動作実績もないのによくそんな適当なこと載せるよな(プゲラ
767名前は開発中のものです。:05/03/11 23:52:57 ID:YMDZazr7
>>740
>>741
返答ありがとう。なるほど、やっぱり自分と同じようなこと試して知識得てる人って
いるんだな…流石だ。
741さんは更に上を行っているようですね。確かに、FILEポインタを使っているのであれば
SDL_RWopsを使うように変更するだけでいいから、確かに移植は楽だ。
768名前は開発中のものです。:05/03/13 18:25:40 ID:YSxIy0RP
visual stdioNETでのこれの使い方おしえてください、

「初心者によるの」やり方ではコンパイラが通らないんですよ
なぜなんですか?
769名前は開発中のものです。:05/03/13 19:02:27 ID:XjtKo/QE
なぜでしょうね。
770名前は開発中のものです。:05/03/13 20:04:03 ID:TyhT8D4W
Visual Studio.NETで/MDオプションでビルドするとmsvcr71.dllと依存関係になっちゃうのはなんとかならんもんかね。
/MDじゃなくて/MTにするとリンクエラーが出るし。

このために.NET Frameworkインストールしてくださいって言うのもなんだし。
771名前は開発中のものです。:05/03/13 22:40:23 ID:idmmnJMg
>768
コード生成のランタイムライブラリがマルチスレッドデバッグDLLになってなかったらコロヌ
ライブラリへのパスが通ってなかったらなおコロヌ
772名前は開発中のものです。:05/03/14 01:42:53 ID:wCuLvh4G
>768
その原因は、SDLに付属のマニュアルに書いてあるよ。
君は.NETでDLLをコンパイルしたのかな?SDL for Beginersの掲示板ではそのことについてもきちんと書かれている。
よく読んでみるといいだろう。

>770

CランタイムのDLLをはずしたいなら、依存する全てのライブラリを/MTでコンパイルしなおさなきゃいけない。
それと、リンクエラーの意味は読めばわかる。
何が足りないのかは見当が付くけど、それの意味がわからない場合はそもそも力量が足りてない。

それと、MSVCRT*.DLLを入れればいいだけなのに、.NET Frameworkインストールしてくれというのは見当違いだよ。

773名前は開発中のものです。:05/03/14 01:44:48 ID:wCuLvh4G
依存する->CランタイムライブラリDLLに依存するという意味ね。
774名前は開発中のものです。:05/03/14 02:19:56 ID:VEcyrTnK
カリングとかどうなの?Java3Dより貧弱ってことはない?
775名前は開発中のものです。:05/03/15 19:37:17 ID:Z609w/mR
mingwでsdl_ttf,sdl_net,sdl_image,sdl_mixer使うときはいちいち自分でコンパイルするより
vc用のインポートライブラリをreimpする方が楽だと今更気がついたのだった。
ははは
776名前は開発中のものです。:2005/04/02(土) 07:51:18 ID:mMTwmK/8
なんか、VC++6.0でビルドしたやつ起動すると、
コマンドプロンプトも一緒に起動しちゃうんだけど、
これって仕様じゃないよね?

環境は
Windows2000
VC++6.0
SDL1.2.8

http://tokyo.cool.ne.jp/sdl/

2.導入から最初のプログラムまで SDLTutorial
に置いてある
SDLTutorialというソースなんだけど
777名前は開発中のものです。:2005/04/02(土) 08:41:42 ID:6EJmuvmn
>>776
新規作成のウィザードでコンソールアプリケーションじゃなくて
windowsアプリケーションを選べ
778名前は開発中のものです。:2005/04/02(土) 16:44:19 ID:mMTwmK/8
>>777
まじ感謝
779名前は開発中のものです。:2005/04/22(金) 00:07:43 ID:Ae0Aozsn
SDL.NET って、SDL_imageFilter* 系は使えないのか…(´・ω・`)
780779:2005/04/22(金) 00:09:58 ID:Ae0Aozsn
嘘、Tao.Sdl から呼び出せた。なんでもない。
781名前は開発中のものです。:2005/05/07(土) 13:39:48 ID:HNMZWJUh
はじめまして。早速ですが質問させてください。
現在がSDL_Surfaceに画像を読み込もうと次のようなコードを書いています。
FILE *fp = fopen( "pic/pic.bmp", "rb" );
if ( fp ) {
SDL_RWops *rwops = SDL_RWFromFP( fp, 0 );
SDL_Surface *surface = IMG_Load_RW( rwops, 1 );
}
ですがIMG_LoadRW()の部分でエラーが出てしまいます(ハンドルされていない
例外はsdltest.exe(NTDLL.DLL)にあります 0xC0000005Access Violation)。一方、
SDL_Surface *surface = IMG_Load_RW( SDL_RWFromFile( "pic/pic.bmp", "rb" ), 1 );
とした場合には正常に読み込めてその後画像を表示することも出来ました。
出来ればファイルポインタから読み込んで表示させたいのですがエラーの原因が
分かる方がいらしたら解決法を教えていただけないでしょうか?
開発環境はWindowsXP Pro、VC++6.0SP5、SDLのバージョンは1.2.8でSDL_imageの
バージョンは1.2.4です。よろしくお願いします。
782名前は開発中のものです。:2005/05/07(土) 16:26:55 ID:tQ5vRoic
>>781

/src/file/SDL_rwops.cの230行あたりを見てるみと

#ifdef WIN32
 if ( ! in_sdl ) {
  SDL_SetError("You can't pass a FILE pointer to a DLL (?)");
  /*return(NULL);*/
 }
#endif

となっていてDLLではSDL_RWFromFPは使えないようです。
たぶんSDL_GetErrorでエラーが拾えると思います。
Static Linkすれば使えるのかもしれませんが、試したことはありません。
783781:2005/05/07(土) 18:01:27 ID:HNMZWJUh
>>782

うまく行かない時はSDL_GetError()を確認するべきだったのですね。
複数の画像ファイル等を一つのファイルにパックして、そこから
画像ファイルを読み込んで...ということをしようと思ってSDL_RWFromFP
を使ってみました。この方法がダメとなると何か他に良い方法があるでしょうか。
取りあえずSDL_RWFromMem()でできるかを試してみようと思います。
どうもありがとうございました。
784782:2005/05/08(日) 19:51:26 ID:ARUo6ShU
>>783

>この方法がダメとなると何か他に良い方法があるでしょうか。
>取りあえずSDL_RWFromMem()でできるかを試してみようと思います。

SDL_RWFromFileは内部でSDL_RWFromFPを呼び出しているだけなので、
SDL_RWFromFPで可能ならば、SDL_RWseekなどを使って同じような操作が
できると思います。もちろんSDL_RWFromMemでもかまいませんが。

ちなみにSDL_archiveというものもあります。
>>370
785781:2005/05/08(日) 20:33:06 ID:GW0v55yy
取りあえずSDL_RWFromMemを使って期待通りに動作させることが出来ました。
助言ありがとうございました。

質問ばかりで申し訳ないのですが今度はフォントの表示で行き詰ってしまい
ました。現在SDL+OpenGLでゲームを作ろうとしています。SDL_ttfでWindowsの
フォント(MSGothic.ttc)を読み込んで利用しているのですが、TTF_RenderUTF8_Solid()
で作ったSDL_Surfaceをどうやって描画してやればいいのかが分かりません。
glDrawPixelsでSDL_Surfaceのpixelsを描画すると文字は表示できたのですが、
背景が透明に出来なかったのでTTF_RenderUTF8_Solid()から作ったSDL_Surface
からテクスチャを作ろうとしたのですが幅と高さが2の累乗でないのでうまく行かず...
という状態です。もしうまいやり方をご存知の方がいらしたら是非ご教授ください。

...この質問はOpenGLスレでしたほうが良かったしょうか・・?
786名前は開発中のものです。:2005/05/09(月) 12:31:19 ID:X842fXoJ
OpenGL使ってるなら、WGLにアウトラインフォントを描画する関数があったはず。それだとWin専用になってしまうけど。
ビットマップフォントでも良いならgl_kanjiがよろしいかと。
787782:2005/05/09(月) 19:59:22 ID:2WAlRLk2
>TTF_RenderUTF8_Solid() で作ったSDL_Surfaceを
>どうやって描画してやればいいのかが分かりません。
>幅と高さが2の累乗でないのでうまく行かず...

とりあえず、SDL_ttfのサンプルであるglfont.cが
SDL_ttfのソースと一緒にあるので、それを見ていただければ、
大体のことは分かると思います。

見てもよう分からんというときには、また聞いてください。
788781:2005/05/09(月) 22:12:34 ID:kc7J0Eit
>>787
そんなところにサンプルがあったのですね。全く気がつきませんでした。
早速サンプルを元にして試してみたら無事ttfからテクスチャを作って
描画することが出来ました(日本語は文字化けしてしまいますが)。

助言してくださった皆様、どうもありがとうございました。
789名前は開発中のものです。:2005/05/10(火) 03:45:21 ID:iTBS7Jyy
>>788
OpenGL で TrueTypeフォント使って文字列描画したいなら SDL_ttf なんて使わずに
FTGL ( http://homepages.paradise.net.nz/henryj/code/index.html#FTGL )
を使うと幸せになれると思う.
outilne,texture,bitmap,pixmap とかの好きな方法でレンダリングできるよ

あと SDL_ttf で日本語が化けるのは使ってるフォントが bitmap フォントが
埋め込まれた TrueType フォントだとダメとかなかったっけ?
文字列がUTF8じゃないってことはさすがにないよなぁ...
790781:2005/05/10(火) 11:15:14 ID:/sZ8aOiM
>>789
そのまさかで文字列がUTFじゃないようです(Shift-JISなのかな?)。
TTF_RenderText_Solid()を使っているのですが他のを使えば良いのでしょうか。
それとも文字コードをUTF8に変換するプログラムを書けば良いのでしょうか。
791名前は開発中のものです。:2005/05/10(火) 19:58:16 ID:iTBS7Jyy
>>790
なんてゆーか文字コード以前の問題だろ…
TTF_RenderText_Solid() はLATIN1なテキストしか通らんよ.
できたらマニュアルくらい読んでくれ.
http://jcatki.no-ip.org/SDL_ttf/SDL_ttf_35.html
792782:2005/05/10(火) 20:14:19 ID:c/mddx9W
>あと SDL_ttf で日本語が化けるのは使ってるフォントが bitmap フォントが
>埋め込まれた TrueType フォントだとダメとかなかったっけ?

msgothic.ttcの場合はSolidなら大丈夫、
ShadedやBlendedだと22pt以下はダメですね。
この問題だと化けるのは日本語だけではありませんが。

>それとも文字コードをUTF8に変換するプログラムを書けば良いのでしょうか。

UTF8かUnicodeに変換する必要があります。
フリーのフォントや文字コードについての話が
http://tokyo.cool.ne.jp/sdl/index.html
でも行われているので、お悩みなら参考になるでしょう。
793名前は開発中のものです。:2005/05/11(水) 01:00:39 ID:irIlrbEI
msgothicでもTT_CONFIG_OPTION_EMBEDDED_BITMAPSをundefしてfreetype再コンパイルすれば22pt以下も表示できた気が
794名前は開発中のものです。:2005/05/11(水) 17:06:15 ID:ChV6SFiM
SDL_ttf は埋め込みビットマップフォントのある TrueTypeFont を読むと、
埋め込みビットマップの存在するサイズを指定するだけで
アウトラインフォントを無視して強制的に埋め込みビットマップフォントの方を使うんだよ。
でもそのための処理は入ってない。だから化けてる。
>>793 は SDL_ttf が内部で使ってる freetype の埋め込みビットマップ処理そのものを潰して対処してる。
なんだかなー。俺も他のライブラリ使った方がいいと思う。
795781:2005/05/12(木) 15:13:44 ID:gBvQuFFy
皆様アドバイスありがとうございます。

mbstowcs()を使ってUNICODEに変換してTTL_RenderUNICODE_Blended()
を使うことで無事日本語を表示することが出来ました。
取りあえず22pt以下の場合はTTL_RenderUNICODE_Solid()を使って表示
することにしています。他にもライブラリがあるようなのでぼちぼち
調べてみようかと思います。どうもありがとうございました。
796名前は開発中のものです。:2005/06/25(土) 16:10:39 ID:kpes39YP
軽めのGUIライブラリーってどれ?
多くてわかんない
797名前は開発中のものです。:2005/06/26(日) 17:35:22 ID:zg82OFD2
今日(1時間前)からSDLを使い始めたものですが、
>>771の発言のおかげでttp://tokyo.cool.ne.jp/sdl/の一番雛形が通りました
Thx!!
798名前は開発中のものです。:2005/06/26(日) 23:25:16 ID:Expiz02r
>797
久しぶりにそこのぞいたけど、新しい記事とか解説はなかったな
カウンタが1000越えてるな
たしか>633が77ゲッツしてたんだよな、懐かしい
799名前は開発中のものです。:2005/06/27(月) 08:01:33 ID:3Ab5ewvX
質問です。
2つあるんですが、
1個目、SDLの標準機能で2枚目のウインドウを作ることってできるんでしょうか?
2個目、SDLの標準機能でC言語標準のscanfやらfgets(from stdin)やらのように、ユーザーに要求を求めるようなことって可能でしょうか?

2個目は1個目ができればハードコードで作ることも可能そうですが、ちょっと面倒な気がします。
よろしくお願いします。
800名前は開発中のものです。:2005/06/27(月) 08:02:17 ID:3Ab5ewvX
AGE!!
801名前は開発中のものです。:2005/06/27(月) 23:12:40 ID:YfSmd5eY
>>749
GetAncestor(SDL_Window, GA_ROOT);
がとおらないのは
WINVER=0x0500とでも
C/C++ -> プリプロセッサ -> 定義
に入れると解決。

という遅レス

あとafxres.hなんてMFC入れればあるんじゃね?
802799:2005/06/28(火) 01:25:30 ID:xvJWzK7X
一日で一レスか。
こりゃ参ったなー。
作りたいものへのモチベーションも下がってきたし、一端とりさげるかな。
803802:2005/06/28(火) 01:55:33 ID:xvJWzK7X
再度検索してみたら、2000年の時点の話だが、対応してないというページを見つけた。
tp://risky-safety.org/~zinnia/sdl/watch/2000/10/
804名前は開発中のものです。:2005/06/28(火) 02:06:28 ID:pKbCq+nM
>>799
1個目:
FAQだと思うが、改めてソースを見たところ、SDL_VideoInit()がcurrent_videoと言う
グローバル変数にビデオデバイス情報を格納していて、それを切り換えるAPIもない。
ロックせずに使用してるので、スレッド化も無理。
そもそもウィンドウという概念はない。

2個目:
コンソールを使いたいのか?だとすると開発環境によるだろうな。
俺は、MinGWを使ってるがこれだと無理っぽい。cygwinなら出来るだろうが、
cygwin上でSDLを動かしたことないんでよーわからん。
805名前は開発中のものです。:2005/06/28(火) 02:21:39 ID:dyIcBP9c
>>799
どこかで既出だろう+試せば判るだろと思って黙ってたんだが。

ひとつめ、二つ以上のウィンドウは出せんとwebのどこかで読んだな。
ソースを見てもグローバル変数(Windows なら HWND SDL_Window)を
使ってそこらじゅうで使いまわしてるから、まず無理だろうと思う。

ふたつめ、起動した時にDOS窓(これも Windows の話だが)が出ているならできる。というかできた。
Windows の場合、設定によってはstdoutをstdout.txtにリダイレクトして、
DOS窓を出さないこともできるが、その場合はできなかった。
ソースは見てないが多分無理だろうな。
806805:2005/06/28(火) 02:30:05 ID:dyIcBP9c
と書いてる端から被ったか……。全く食いつきがいいよな俺ら。

>>804と俺で書いてることが微妙に違うが、
ひとつめの違いは>>804が機種独立の部分を見て、
俺が機種依存の部分を見て喋ってるせい。
ふたつめは環境の違いで、俺の環境(VC6)ではどちらも作れる。
MinGWとCygwinはどちらかができるんなら
両方できるんじゃないかと思うがどちらも知らんからわからんなあ。

と、聞かれてもいないが補足しとく。
807名前は開発中のものです。:2005/06/28(火) 04:03:09 ID:xvJWzK7X
>>804-806
レスthx

1個目について、
なるほど、グローバル変数つかってるのか。
そりゃ、切り分けが大変そうだ。
明快な回答に感謝。

2個目に付いて、
えーっと、誤解を招いたようだけど、
要はscanfとか自体を使うのではなく、自前か何かで実装できないかって、話です。
それが、SDL標準であったら良かったんですけど、なさげですね。
2枚目のウインドウがでるなら、そっちのサーフェスとキー入力を捻って入力コンソールを作ることができたんでしょうけど・・・。

あと、
作りたいソフトを超えるソフトを見つけてしまったので一端引くことにしました。
それが、ちょうどイメージしてた物に近かったため、それでいいかなと思っています。
回答ありがとうございました。
808名前は開発中のものです。:2005/07/05(火) 04:30:00 ID:zWniNiIr
640*480*32(bpp)の画像を1枚表示するだけで60FPS前後なんですが描画が遅いのは何が原因なんでしょう?
それともこれが限界ですか?

初期化は
SDL_SetVideoMode(640, 480, 32, SDL_HWSURFACE | SDL_ANYFORMAT);
こんな感じでSDL_FillRect()せずにSDL_BlitSurface()してからSDL_Flip()。

環境は
Pentium4 2.4G
GeForce4 ti4400
809808:2005/07/05(火) 04:38:10 ID:zWniNiIr
補足です。
ウィンドウモードでリフレッシュレートは85Hzです。
画像を描画させなければ130FPSほどでますがFlipだけで130FPSってのはちょっと遅いですよね?
810名前は開発中のものです。:2005/07/05(火) 11:23:53 ID:Arb1ZSmv
SDLってイイとか言われているけど
実は描画が遅いんだよね
811名前は開発中のものです。:2005/07/05(火) 14:08:42 ID:1ZePfTMa
>>808
せめて実行可能なコードを出せよ…

SDL_Flipだけで130FPSってのは遅すぎるのでどこかが間違っていると思われ

とりあえず SDL_SetVideoMode()の戻り値のSDL_SurfaceとBlitしている画像
のSDL_Surfaceのflagsやformatをチェックして期待通りかどうかチェックしれ
812811:2005/07/05(火) 14:24:14 ID:1ZePfTMa
あとバカみたいだと思うだろうけどFPSの計算の仕方とかもチェック
813808:2005/07/05(火) 14:53:21 ID:zWniNiIr
>>811
>せめて実行可能なコードを出せよ…
あいすまんかった。

int main(int argc, char* argv[]) {
 SDL_Init(SDL_INIT_VIDEO);
 SDL_Surface* screen = SDL_SetVideoMode(640, 480, 32, SDL_HWSURFACE | SDL_ANYFORMAT);
 SDL_Surface* temp = SDL_LoadBMP("test.bmp");
 SDL_Surface* surface = SDL_ConvertSurface(temp, screen->format, SDL_HWSURFACE);

 while (1) {
  SDL_BlitSurface(surface, NULL, screen, NULL);
  SDL_Flip(screen);

  SDL_Event event;
  while (SDL_PollEvent(&event))
   if (event.type == SDL_QUIT)
    return 0;

  char buf[64];
  sprintf(buf, "%d fps", CalcFPS());
  SDL_WM_SetCaption(buf, NULL);
 }
 return 0;
}
814808:2005/07/05(火) 14:53:54 ID:zWniNiIr
>>813 の続き

int CalcFPS() {
 static Uint32 count, fps;
 static Uint32 btime;

 if (++count == 60) {
  Uint32 time = SDL_GetTicks();
  fps = 1000 / (float(time - btime) / 60);
  btime = time;
  count = 0;
 }
 return fps;
}
815808:2005/07/05(火) 14:57:52 ID:zWniNiIr
普通にDirectX(draw)でハードウェアサーフェイス作ると500FPSとか軽くでるので
ハードウェアやドライバがおかしいとも思えないし何ででしょうね。
皆さん上のコードでFPSいくつ位でます?
816808:2005/07/05(火) 15:07:12 ID:zWniNiIr
>>811
>のSDL_Surfaceのflagsやformatをチェックして期待通りかどうかチェックしれ
SDL_Surface.format_versionってのがscreenでは2、surfaceでは4になっている以外は同じです。
これが原因ですかね…?
んー。
817811:2005/07/05(火) 18:34:24 ID:1ZePfTMa
>>808
実行してみた.SDL_Flip()のみにして300fpsくらい出た…

CPU : PentiumM 1.1GHz
Video : i855GM (VRAM は Main Memory) の 16bpp

とりあえず毎フレームSDL_WM_SetCaption()するのは無駄なんで
CalcFPS()内のifの中に持って言ったら 400FPSくらいになった…
818名前は開発中のものです。:2005/07/05(火) 19:49:15 ID:f1qgE5RI
試しました。確かに

WindowsXP
Pentium 4 2.4GHz
GeForce4 MX 420

ではSDL_Flip()だけで130FPSぐらいになります。
819808:2005/07/05(火) 21:16:11 ID:zWniNiIr
>>811, 818
テストありがとう。超ありがとう。
でもお気楽にハードウェアデバイスが使えると思ったんだが何やら環境依存でそうでもないみたいですね。
DirectXより環境に依存するなんて使う気無くしました。
他のクロスプラトフォームライブラリ探します。
レスありがとう。それに関しては感謝してます。
ありがとう。さようなら。
820名前は開発中のものです。:2005/07/05(火) 21:42:36 ID:x9lRp/t3
>>819
他にいいのがあれば誰もSDLを使わないよ。
とりあえず、やりたいことが2Dなのか3Dなのか分からんが、
3Dの場合はOpenGLを使うことになるが、WindowsとLinuxでなんの
問題もなく使える。

しょーもないコード書いて勝手にSDLを悪者にするのだけはやめれ。
821808:2005/07/05(火) 21:55:55 ID:zWniNiIr
>>820
SDLを馬鹿にしているつもりはないよ。
それどころかSDLは初期化が簡単(ハードウェアを利用するライブラリとしては)なので初心者/入門者には最適だと思います。
また、さくっと作りたい場合は。
ただ、本家で掲載しているコードをほぼそのまんまの形で利用した場合、最低限バックバッファにコンパチブルな
オフスクリーンサーフェイスのフォーマットを選択してくれてもいいように思いました。
Simple directmedia layerのsimpleってなんでしょう?

>しょーもないコード書いて勝手にSDLを悪者にするのだけはやめれ
否定するなら根拠をまず述べるのが筋ってもんです。
822名前は開発中のものです。:2005/07/05(火) 22:59:46 ID:LYpwtNFt
#pragma once
って、非ウィンドウず系でも使えるなりか?
823名前は開発中のものです。:2005/07/05(火) 23:16:04 ID:zWniNiIr
>>822
少なくともgccでは#ifndefを使用したほうがいいかと。
そして激しくスレ違い。
824名前は開発中のものです。:2005/07/05(火) 23:16:34 ID:iphFkIr5
たしかにそれだけ遅いとJava2Dより遅いってことだから
なんかわけがありそうな気がする・・・
825名前は開発中のものです。:2005/07/05(火) 23:29:28 ID:l636Cdmy
DirectXもヘンテコなコード書けば、一部のマシンだけでしか動かないコードになると思うがな。
826名前は開発中のものです。:2005/07/05(火) 23:44:56 ID:zWniNiIr
>>825
確かにコンパイラは嘘は付きませんからヘンテコはコードにはそれなりの挙動を見せます。
ですが、>>813がそれほど罪深きコードだとは思わないけどなぁ…。
それとも暗黙の了解的なコーディングがあるんでしょうか?
827名前は開発中のものです。:2005/07/06(水) 09:30:28 ID:e9o9xwuh
>> 808
そのコードだとどちらのサーフェイスもシステムメモリに取られているだろう罠
811が言うように SDL_Surface の flags をチェックしてみ
828818:2005/07/06(水) 20:18:02 ID:mO4Tn2rF
確かに、/test/testvidinfo.cの
void PrintFlags(Uint32 flags)を使って

PrintFlags(screen->flags);
printf("\n");
PrintFlags(surface->flags);
printf("\n");
とやると

0x00000000 SDL_SWSURFACE
0x00000000 SDL_SWSURFACE
となります。


SDL_Surface* screen = SDL_SetVideoMode(640, 480, 32, SDL_FULLSCREEN | SDL_DOUBLEBUF);
にすると

0xc0000001 SDL_HWSURFACE | SDL_FULLSCREEN | SDL_DOUBLEBUF
0x00000001 SDL_HWSURFACE
となり、Blit & Flipで

30000 fps
になりました。(合ってるのかな?)
829名前は開発中のものです。:2005/07/18(月) 22:07:17 ID:Tgmwb20q
Irrlicht初心者質問スレ
http://pc8.2ch.net/test/read.cgi/tech/1104179696/226
でも聞いてみたのですが、反応が無いのでこちらでも聞いてみます。マルチすいません。

Irrlichtで描画系、その他(音、入力関係とか)はSDLと組み合わせて使うことって可能でしょうか?
あと、もし可能なんだとしたら、サンプルとかあると嬉しいのですが、ご存じの方いませんか?
830名前は開発中のものです。:2005/07/20(水) 00:36:00 ID:a4NCqugX
SDL_MixerでBGMのクロスフェードって可能でしょうか?
831名前は開発中のものです。:2005/07/20(水) 05:03:25 ID:KNwpKu9v
Channelを1つBGMとして使えば行けるんで無いかしら。
832名前は開発中のものです。:2005/07/20(水) 19:24:07 ID:oHYMFGyh
~~~~~~\   /~~~~~~
     \/
     /\
    /    \

じゃなくて

~~~~~~\        /~~~~~~
     \     /
      \   /
        \/
にする!
833名前は開発中のものです。:2005/07/20(水) 20:00:00 ID:eQOHDI/N
SDL_Mixerはシンプルだけど、こまかいことは苦手
834名前は開発中のものです。:2005/07/20(水) 21:06:55 ID:J6BwLsDL
~~~~~~\   /~~~~~~
     \/
     /\
    /    \
   ~~~~~~~~~~~~  ←この部分を合成
835名前は開発中のものです。:2005/07/25(月) 19:06:53 ID:1zvi2dmP
SDLを使って、ゲームを作ろうと思うのですが、
Win上で使える入力補完機能のあるIDEはありませんか?
836名前は開発中のものです。:2005/07/25(月) 21:28:19 ID:tBl8Lhba
入力補完のないIDEなんて, ほとんど存在しないだろw
好きなIDE使え
837名前は開発中のものです。:2005/07/26(火) 00:22:38 ID:c4yZrU1p
>>835
VisualStudio.NETが一番おすすめ
838名前は開発中のものです。:2005/07/26(火) 03:30:17 ID:fGo2aUYV
NetBeansでもEclipseでもいいぞ
839名前は開発中のものです。:2005/07/31(日) 00:02:44 ID:quLBISXO
mac版のゲームを配布する場合はスタティックリンクするしかないかな?
となるとソース公開しなきゃ(’A`)
840名前は開発中のものです。:2005/07/31(日) 00:10:36 ID:ooozGQbR
Windows版のヘッダのライセンスはLGPLよりかるいんだっけ?
841名前は開発中のものです。:2005/07/31(日) 14:53:12 ID:okeB3T00
>>839
オブジェクトファイルだけで良いんじゃなかったっけ?
842839:2005/07/31(日) 15:40:59 ID:quLBISXO
ごめん、そうみたいね。
SDLとLGPLのサイトをよく読んできた。

(LGPL)
If you link a program with the library, you must provide complete object files to the recipients so that they can relink them with the library, after making changes to the library and recompiling it.
843名前は開発中のものです。:2005/08/01(月) 11:50:17 ID:lmGZDgba
>839
知らんけどMac用のSDL共有ライブラリが配布されてないなら、
自分で共有ライブラリを作って公開してそのソースだけ公開すれば?
844名前は開発中のものです。:2005/08/01(月) 17:32:41 ID:sroBhudh
>>839
LGPLのライブラリをスタティックリンクした場合は、ライブラリのソースコード
が必要で、それを改変したあとにちゃんと実行ファイルを再作成できるように
しておかなければいけない。
必ずしもアプリのソースは必要ではないけど、ソースもなしに実行ファイルを
作成できるはずもないので、事実上全ソースを公開する必要があるっぽい。

結局、動的リンクにする以外にソース公開からは逃れられないと思う。
845名前は開発中のものです。:2005/08/01(月) 18:08:55 ID:ciKvobzi
ダイナミックリンクでもヘッダ部分もLGPLでライセンスされていたら
組み込んでコンパイルしてることになるから
コンパイルに必要なオブジェクトファイル配布しないとだめだな


Javaのようなヘッダがないダイナミックリンクだけなら大丈夫だが
846名前は開発中のものです。:2005/08/01(月) 21:54:22 ID:2dfE5juZ
>>845
それだっ!!
SDLのJavaラッパーを使えば万事解決かもね。
847名前は開発中のものです。:2005/08/02(火) 03:32:09 ID:cGbi1ZNI
>>845
> ダイナミックリンクでもヘッダ部分もLGPLでライセンスされていたら
> 組み込んでコンパイルしてることになるから
以下の記述により、ヘッダー程度のものは無問題。
---
もしそのようなオブジェクトファイルが、数字のパラメタやデータ構造のレ
イアウト、アクセス機構または小さなマクロや小さなインライン関数(長さが
10 行かそれ以下)のみ利用するならば、そのオブジェクトファイルの利用は、
それが法的に派生物とみなされようとみなされまいと制限されない。(このオ
ブジェクトコードに加えて『ライブラリ』の一部を含む実行形式は依然として
第 6 節の条件下に置かれるであろう)。
---

> コンパイルに必要なオブジェクトファイル配布しないとだめだな
>>842を見てオブジェクトファイルって言ってんのかもしれないけど、
ちゃんと読めば分かると思うけど、LGPLのライブラリを改変して別の
プログラムを含めた場合に、そのライブラリを再構築できるように
別のプログラムのオブジェクトファイルを配布しろって言ってんだよ。
呼び出し元アプリとは無関係な事だ。

とりあえず、英語読めないなら日本語訳もあるんだからちゃんと嫁。
848名前は開発中のものです。:2005/08/03(水) 23:14:18 ID:8Vtt/S6U
VisualC++.netでSDL使ってる者ですが。
stdio.hをインクルードするだけでアプリケーション終了時に
メモリエラーが出てしまいます。
デバッグで見る_file.cの_lock_file関数で何らかのエラーが起きているようです。
どのようにすればうまくエラーがでないようにできるのか、ご教授お願いします。
849名前は開発中のものです。:2005/08/04(木) 19:18:29 ID:m7E66Gbv
VisualC++.netは開発環境の名前なので、
それだけだと使っている言語仕様がわからない。

Microsoft Visual Studio .NET 2003 に含まれる VisualC++ を使っているなら
新しいプロジェクトを作成する時に .NETではなく Win32を選んで。
850名前は開発中のものです。:2005/08/04(木) 19:25:18 ID:qa5JGYab
VS.NETならそうかもしれんがVC.NETならCだろ
851849:2005/08/04(木) 20:42:21 ID:m7E66Gbv
VisualC++.NETで.NETアプリケーション作成を選べば、
それはManagedC++という名のC言語とは似て非なる言語。
852名前は開発中のものです。:2005/08/04(木) 23:34:09 ID:uV5RXPg8
なんだか知らんが必死だな
853名前は開発中のものです。:2005/08/05(金) 02:15:02 ID:t5VdqNSD
拡張C言語程度で必死だな
854名前は開発中のものです。:2005/08/05(金) 10:31:53 ID:XgtXEN47
で、848は解決したのか?
855名前は開発中のものです。:2005/08/10(水) 16:07:15 ID:f3HjLb+x
微妙にFPSが60に固定できないんですけど
みんなはどう書いてますか


// ここで描画やらなにやら

int nowTime = SDL_GetTicks();
if( nowTime - preTime < 16 )
{
 SDL_Delay( 16 - (nowTime - preTime) );
}
preTime = SDL_GetTicks();


やっぱ浮動小数で管理しないと駄目かな
綺麗に60に固定したいんだけど
856名前は開発中のものです。:2005/08/10(水) 18:43:43 ID:PLKvBSGz
固定少数で管理すればOK
857名前は開発中のものです。:2005/08/10(水) 19:50:28 ID:f3HjLb+x
>>856
詳しく
858名前は開発中のものです。:2005/08/10(水) 20:59:46 ID:zuYoOj0m
ティアリングしてるんだし浮動小数点でも固定小数点でもどっちでもいいよな
俺はもう癖で固定小数点つかっちまうが

高精度タイマ使えばそれなりに精度は出るがかなり環境依存しやすい模様
この辺の話はSDLとはもはや関係ないな
859名前は開発中のものです。:2005/08/10(水) 21:58:53 ID:sHNa10sC
とりあえず、

while ( nowTime - preTime < 16 )
{
SDL_Delay( 0 );
}

のほうがいいよ
タイマの精度に期待出来ないことも多々あるんで、待ちすぎが起こりやすいから
860名前は開発中のものです。:2005/08/10(水) 23:12:02 ID:EzSJcbzY
あー、なるほど、俺もフレームレートも固定少数使ってみよう
少しぐらい改善すっかな
861855:2005/08/11(木) 11:06:48 ID:s0SfDH7M
>>859
それnowTimeもpreTimeも更新されないんじゃ?

具体的なコードが見たいんですけど駄目ですか?>>ALL
862名前は開発中のものです。:2005/08/11(木) 13:55:51 ID:7JeDKIu2
// ここで描画やらなにやら

while ( SDL_GetTicks() - preTime < 16 )
{
SDL_Delay( 0 );
}
preTime = SDL_GetTicks();

>>859じゃないけど、普通に考えればこうでしょう。
1から100まで全部与えられるのを待ってないで考えましょう。
863名前は開発中のものです。:2005/08/11(木) 16:16:47 ID:u3UR2EZN
SDL_GetTicks() - preTime < 1000/60

これ、整数の除算のところで誤差が出るよね。
固定小数点で計算する方法って、32bitのうち小数側に16bit使うと決めたら

(60*(SDL_GetTicks() - preTime) << 16) < (1000 << 16)

みたいにすればいいのかな?
864名前は開発中のものです。:2005/08/11(木) 16:21:33 ID:u3UR2EZN
あれ、これじゃシフトする意味ないじゃん。出直してこよう、、
865名前は開発中のものです。:2005/08/11(木) 16:29:32 ID:u3UR2EZN
((SDL_GetTicks() - preTime) << 16) < (1000 << 16) / (60 << 16)

60が右辺にないと意味なかったね。Delphiで試してみたらFPSが59.9〜60.0くらいになったんで、
合っているのかな。
866名前は開発中のものです。:2005/08/11(木) 16:37:51 ID:u3UR2EZN
いや合ってないや。ごめんもうやめるわ。
867859:2005/08/11(木) 19:06:56 ID:W/ukyUzH
うわ、適当に書いたんで思いっきりミスしてるな orz
>>862フォローthx!
868名前は開発中のものです。:2005/08/11(木) 19:21:03 ID:Gg/tPqOJ
固定小数点でこんな感じでどう。

#define FRAMETIME 4271/* (1000ms/59.94frame)*256 */

ループ{
描画etc.

while ( SDL_GetTicks() < nextTime/256 )
{
SDL_Delay( 0 );
}
nextTime += FRAMETIME;
}
869名前は開発中のものです。:2005/08/11(木) 22:03:19 ID:IbwMjIl9
一応オーバーフローも考えて欲しい。
870855:2005/08/11(木) 23:36:45 ID:s0SfDH7M
>>862
そりゃ考えましたよ。
それで適当に書いた>>867とか言われても困るんですけどね。

というか、みんなはどうやってるの?って聞いてるのに何でかなぁ。FPS固定やってないの?
そんなにコード晒すの嫌?別段他のモジュール参照してるわけじゃなし、部分的に抜粋してもらえればいいのに。
って偉そうですね。すみません。

出し惜しみ?自分の技術不足を指摘されるのが恥ずかしい?
あ、面倒なの。

オープンソース糞喰らえですね!みんなはなんでSDL使ってるの?
871名前は開発中のものです。:2005/08/12(金) 00:38:27 ID:oL+JILND
気持ちは分かるけど、書き込む前に深呼吸しろな。
872859:2005/08/12(金) 04:23:14 ID:DYAIzoXI
あー、いい加減な書き方したのはスマンかったね
お詫びの意味も込めて、前作ったゲームのを調べてみた

const float FRAME_TIME = 1000.0f / 60.0f;
float timer_diff = 0.0f;

while (...) { // ループ
float old_timer = SDL_GetTicks() - timer_diff;
// 描画等
while ((SDL_GetTicks() - old_timer) < FRAME_TIME) {
SDL_Delay(0);
}
timer_diff = SDL_GetTicks() - old_timer - FRAME_TIME;
}

途中を色々はしょった時にミスが入ってる可能性はあるが、こんな感じだった
873名前は開発中のものです。:2005/08/12(金) 18:43:40 ID:KeDmnrCr
これでいいじゃない。
ttp://www.sun-inet.or.jp/~yaneurao/rsp/rsp48to4F.html

void ys::ElapseTime(void){ // (C)yaneurao 1998-1999
// 厳粛かつ正確かつ効率良く時間待ちをする
if (iFPS == 0) return ; // Non-wait mode
static DWORD lastdraw = 0; // 前回の描画時刻
// (不運にも第一発目のtimeGetTime() == 0とかゆーこともあるが、それは構わない)
DWORD t = timeGetTime(); // 現在時刻
dwFPSWaitTT = (dwFPSWaitTT & 0xffff) + dwFPSWait; // 今回の待ち時間を計算
// dwFPSWaitは、待ち時間の小数以下を16ビットの精度で持っていると考えよ
// これにより、double型を持ち出す必要がなくなる。
// dwFPSWaitTT = 1000 * 0x10000 / FPS;である
DWORD dwWait = dwFPSWaitTT >> 16; // 結局のところ、今回は何ms待つねん?
// 1フレーム時間を経過しちょる。ただちに描画しなちゃい!
DWORD dwElp = (DWORD)(t - lastdraw); // 前回描画からいくら経過しとんねん?
if (dwElp>=dwWait) {
lastdraw = t;
return ;
}
// ほな、時間を潰すとすっか!
// まだ時間はたっぷりあるのか?
// 4ms以上消費する必要があるのならば、Sleepする
if (dwWait-dwElp >= 4) Sleep(dwWait-dwElp-3);
// いまdwWait>dwElpなのでdwWait-dwElp>=0と考えて良い
// 95/98/NTで測定したところSleep(1);で1ms単位でスリープするのは可能
// ただし、実装系依存の可能性もあるのでSleepの精度は3ms以内と仮定
while ((timeGetTime()-lastdraw)<dwWait) ;
// ループで時間を潰す(あまり好きじゃないけど)
// これで、時間つぶし完了!
lastdraw += dwWait; // ぴったりで描画が完了した仮定する。(端数を持ち込まないため)
}
874名前は開発中のものです。:2005/08/12(金) 20:13:16 ID:rlG30S65
>>873
SDL_GetTicks()とSDL_Delay()に置き直して
875名前は開発中のものです。:2005/08/14(日) 22:40:50 ID:O5bcwOke
SDL_inputmethodのソースコードはこれが最新ですか?
ttp://sdlinputmethod.sourceforge.net/phpbb/viewtopic.php?t=6&start=30#104
876名前は開発中のものです。:2005/08/19(金) 22:03:31 ID:nTcnwqoX
877名前は開発中のものです。:2005/08/20(土) 01:38:13 ID:Uu3xgTeL
>>876 クマー
878名前は開発中のものです。:2005/08/23(火) 01:30:58 ID:GcWYfYM0
VC.NETでSDLを使っているのですが、VCランタイムDLLを同封して配布したくありません。
そこで、SDLのソースを落として/MTビルドし、それは成功したんですが、
本体のほうは/MTビルドしても

error LNK2005: _exit は既に LIBCMT.lib(crt0dat.obj) で定義されています。
error LNK2005: _strncpy は既に LIBCMT.lib(strncpy.obj) で定義されています。
error LNK2005: __isctype は既に LIBCMT.lib(isctype.obj) で定義されています。

このようなリンクエラーが出てビルド完了できません。
どのようにしたらうまくいくのか、教えてください。お願いします

ちなみにLIBCMT.libを無視したら、ものすごい怒られました・・・(´・ω・`)
879名前は開発中のものです。:2005/08/23(火) 06:21:23 ID:W08ZteNn
本体がデバッグビルドとか?
880名前は開発中のものです。:2005/08/23(火) 09:28:07 ID:0d6CfNLS
作った。いらなきゃ消す。
全然いじってない。帰ってきたらいろいろ変える。
http://wiki.livedoor.jp/ntooka/d/FrontPage?wiki_id=5515
881名前は開発中のものです。:2005/08/23(火) 10:59:53 ID:LxnRBaho
GJ!
882880:2005/08/23(火) 17:14:36 ID:0d6CfNLS
881がGJをくれたのでちょっといじった。

livedoorWikiは使いづらいぞw。ちょい機能がたりないように感じる。
もうちょっとやってみるわ。
883名前は開発中のものです。:2005/08/23(火) 20:10:29 ID:d61Nt7TU
ユーザー登録しなきゃ編集できないなんて冗談みたいな仕様だな。
884名前は開発中のものです。:2005/08/23(火) 21:09:14 ID:DXl7coHI
うん、やめようか。
別のどっかいいところある?俺サーバーとかよくわかんないんだけど
885名前は開発中のものです。:2005/08/23(火) 21:25:54 ID:DXl7coHI
というわけで、やめた。
http://www5.atwiki.jp/ntooka/pages/1.html
デザインが気に入らないのでころころ変わると思う。悪いね。

ライブドアやっぱダメだわ。
886名前は開発中のものです。:2005/08/23(火) 23:38:55 ID:MD79yudw
>>885
期待age。SDLの情報サイトって更新止めてる所が多いからね。
887名前は開発中のものです。:2005/08/23(火) 23:59:59 ID:DXl7coHI
>>886
ありがとよ。
まぁ、適当にいじってくれ。俺も保守するから。

Tipsとにかくコピペしてるんだけど、やっぱまずいかな?
888名前は開発中のものです。:2005/09/01(木) 03:11:54 ID:JN8l/VYG
SDL 1.2.9 リリース

... けど、個人的にはあんまり関係ありそうなアップデート内容無いな
889名前は開発中のものです。:2005/09/03(土) 12:14:56 ID:98xgvWvd
放置しておいてスマンカッタ。超訳で不完全だけど。
http://www5.atwiki.jp/ntooka/pages/14.html
どうぞ。あんまし役に立つ情報はないけど。
890名前は開発中のものです。:2005/09/09(金) 23:26:28 ID:nk7nSsWv
SDLで、作成したプログラムの二重起動を防ぐ方法はありませんか?
891名前は開発中のものです。:2005/09/10(土) 16:01:06 ID:jqa9kx5Y
Mutexをキーワードにググれー
892名無しさん@そうだ選挙に行こう:2005/09/10(土) 17:39:50 ID:idvQgIh9
つーかそれSDLの問題かね
893名無しさん@そうだ選挙に行こう:2005/09/11(日) 00:15:50 ID:WdKYR5dd
だからソースの可搬性の問題でしょ?
上のほうのタイマの話といい、おまいら何でSDL使ってんの?
環境依存なんて当たり前?
894名無しさん@そうだ選挙に行こう:2005/09/11(日) 00:45:02 ID:ySd+9IMB
起動したら一時ファイル作って、そのファイルが存在するかどうかで2重起動を検出する
っていうのは邪道なのかね?
895名無しさん@そうだ選挙に行こう:2005/09/11(日) 00:45:08 ID:1ur5e5rk
SDL_Mutex
896名無しさん@そうだ選挙に行こう:2005/09/11(日) 05:14:34 ID:7hQykqFY
>>894
強制終了とかでうまく終了処理が行われなかったら
そのファイルが残ってしまい起動できなくなるんじゃ?
897名無しさん@そうだ選挙に行こう:2005/09/11(日) 19:18:45 ID:qqbGMCN5
>>891
>>895
SDL 使ったことあるのか?
898名無しさん@そうだ選挙に行こう:2005/09/11(日) 20:03:41 ID:IriOHZii
あ、SDL_Mutexってマルチスレッドで使うんだっけ?
899895:2005/09/11(日) 21:13:08 ID:1ur5e5rk
>>897
ないよ、まったくない。
900名前は開発中のものです。:2005/09/12(月) 01:31:45 ID:yPWNVwAr
で?
901名前は開発中のものです。:2005/09/13(火) 15:17:26 ID:IiHu2zoE
OS汎用で二重起動防止なら、自分専用のポートを決めてbindするとか。
WindowsならWSAStartupを呼ぶとか多少のOS依存はifdefで書く必要はあるが。
902名前は開発中のものです。:2005/09/22(木) 09:51:58 ID:IbR5Q/kQ
質問。
SDL_LoadBMPで取得したSDL_Surfaceは
SW_SURFACEとして読み込まれている認識でOK?
903名前は開発中のものです。:2005/09/22(木) 09:59:46 ID:IbR5Q/kQ
スマソ。俺の動作結果はSWでもHWでも無い場所に格納されているみたい。
if(surface->flags&SDL_HWSURFACE) printf("HW\n");
って感じでSWも確かめましたが反応無し。
904名前は開発中のものです。:2005/09/22(木) 12:55:39 ID:5uMRcPCk
>>903
#define SDL_SWSURFACE   0x00000000        /* Surface is in system memory */
#define SDL_HWSURFACE   0x00000001        /* Surface is in video memory */
です。
システムメモリ上かVideoメモリ上のどちらかに確保されて、
下位の1bitがvideoメモリ上にあるかどうかを判定するフラグです。

if(surface->flags&SDL_HWSURFACE) printf("HW\n"); else printf("SW\n");
905名前は開発中のものです。:2005/09/22(木) 18:10:40 ID:p3aHRteJ
ってことでSWSURFACEで正解。
906名前は開発中のものです。:2005/09/22(木) 23:39:29 ID:IbR5Q/kQ
サンクス。古いマシンでのフィルレートがDDrawよか遅かったのです。
ううむ。
907名前は開発中のものです。:2005/09/23(金) 16:11:11 ID:nrqAdKrH
ちゃんと読み込んだ画像を SDL_DisplayFormat() して
スクリーンのフォーマットにあわせた?

あとそもそもスクリーンがHWSURFACEになってなければ
DDrawより遅くなると思うよ?
908名前は開発中のものです。:2005/09/23(金) 20:15:53 ID:tQ78MyNZ
みなさん有り難うございます(;つД`)

>>907
サンクス
おっしゃるように、HWSURFACEにして、SDL_DisplayFormatでサーフェス指定して解決したす。
909名前は開発中のものです。:2005/09/29(木) 22:19:14 ID:QcAJa6kn
ウィンドウモードとフルスクリーンモードの処理速度が異なるのだが、
どういうことだ?

SDLの関数あたりが悪さしていると思うのだが、わからないんです。

教えて、えろい人!!
910名前は開発中のものです。:2005/09/29(木) 22:57:19 ID:i68KflVJ
垂直同期の有無じゃね?
911名前は開発中のものです。:2005/09/29(木) 23:09:02 ID:q77C+Q53
フルスクリーンだと、資源を専有してるから速いんだろうよ
912名前は開発中のものです。:2005/09/29(木) 23:12:38 ID:LmvdAp7b
>>909
マルチうぜー
913名前は開発中のものです。:2005/09/30(金) 00:59:46 ID:oblFcTL6
>911
残念な事にフルスクリーンの方が遅くなるんだ!!

>912
まったくだ!!
914名前は開発中のものです。:2005/09/30(金) 18:35:36 ID:6EUSIuxQ
>>913
>残念な事にフルスクリーンの方が遅くなるんだ!!
マジかっ!?
意味ねー
つーか、フルなしでよくねーの
915名前は開発中のものです。:2005/09/30(金) 20:34:34 ID:/6HcyHJo
あーなんだ、SDL側にvsync待ちさせといて、さらに待ってるとかいうオチじゃないよな?
916名前は開発中のものです。:2005/10/13(木) 11:48:15 ID:CykI+nJQ
あるところのゲームサークルに参加したんですが、
グラフィック部分にSDLを使うことになりました。
そして音楽はMIDIは環境で変わるから良くないってことで
DirectMusicProducerを使うとか言い出しました
僕はmixerのMODを使うことを進めたんですが、押し切られてしまいました
リンカエラーとかメモリエラーがでないか凄く心配です・・・
皆さんはどう思いますか?
917名前は開発中のものです。:2005/10/13(木) 12:21:18 ID:XPDehWw3
>DirectMusicProducerを使うとか言い出しました
DirectMusicProducerは単に音楽作成ツールですよ?

音楽はDirectX Audioで自前で鳴らし、
効果音はSDLで鳴らそうってなら確かにやめた方がよさそう。
どんな問題が出るか知らないけどね。
918916:2005/10/13(木) 12:53:25 ID:ypy0AXR+
>>917
そうです。DirectMusicProducerで作ったデータを
DirectX Audioで鳴らそうとしてました。
効果音はどうか知りません
リンカに怒られると言ったら外部にDMPファイルを再生するDLLを置くとか言い出しました
もうガクブルです。
919名前は開発中のものです。:2005/10/13(木) 17:25:39 ID:ToPl7cy0
>>915
MODはSDLに組み込みだから楽 ← プログラマの都合
DMPはMIDIライクな編集がその場で出来るから楽 ← 音楽屋の都合

こう思った。
うまい折衷案が出るとよいが、最終的にはプログラマ側で妥協してやるしかないんじゃない?
920919:2005/10/13(木) 17:47:05 ID:ToPl7cy0
レス番間違えたーよ('A`)
>>916宛でした
921915:2005/10/13(木) 21:13:13 ID:pthRpnxV
>>919
そうですか・・・音楽屋がやりやすいなら仕方ないです
でもDirectMusic叩けるなら、Drawも直に叩いて欲しい
うちのメインの考え方は分からないです・・・
922名前は開発中のものです。:2005/10/14(金) 10:28:50 ID:uk4v+zqx
>>921
とりあえず、言質はとっとけ
最低でも、そのメインが該当箇所を組むようにな
問題なけりゃそれでいいが、
問題出たときに誰が泥をかぶるのかを決めとかないと
プロジェクトが頓挫する事になる
923名前は開発中のものです。:2005/10/14(金) 18:43:07 ID:kCsY6VJS
UTF8のファイルから読み込んだ文字列をひとつのサーフェイスにして
描画する方法が分かりました。
しかし、その文字列を一文字ずつ描画したい場合(ドラクエのように人に話すと
表示されるメッセージのように)は人文字ずつサーフェイス作っていって
フレームカウントをして表示速度の制御をしながら描画するのがいいんでしょうか?
後、UTF8だと日本語1文字が何バイトなのかって固定されてないので、すごく難しいんですが。
アイディアください。
924名前は開発中のものです。:2005/10/14(金) 20:16:29 ID:uTRcIOI8
UTF-8は先頭バイト見れば何バイトかわかるけど?
0x00-0x7F 1
0xC0-0xDF 2
0xE0-0xEF 3
0xF0-0xF7 4
0xF8-0xFB 5
0xFC-0xFD 6
925名前は開発中のものです。:2005/10/15(土) 04:46:42 ID:xL4TCgUt
>>923
むしろ
>UTF8のファイルから読み込んだ文字列をひとつのサーフェイスにして描画する方法
を教えてください
926923:2005/10/15(土) 20:55:28 ID:03Wc5kyl
>>924
ありがとう。理解しました。
>>923
回りくどい質問でしたね。気をつけます。
927925:2005/10/16(日) 00:09:25 ID:uNCcPNGN
マジで教えて欲しいんすけど・・・
928名前は開発中のものです。:2005/10/16(日) 01:09:04 ID:ho7RZaGn
>>925
SDL_ttf をいれて以下の関数を使う
* TTF_RederUTF8_Solid()
* TTF_RederUTF8_Shaded()
* TTF_RederUTF8_Blended()
929925:2005/10/16(日) 16:53:28 ID:uNCcPNGN
そうじゃなくて、1フレーム毎にsurfaceを生成して描画してたんじゃ遅くて使い物にならない(こともないけど)ので、
アプリケーションの初期化時にテキストデータを全部読み込んで画像をcache、文字と矩形の対応情報を保存、もしくは外部でそのファイルフォーマットを吐き出すツールを作る必要があると思うんだけど、
もういいや。

>>924>>928
情報ありがとう。知らなかったよ。
930名前は開発中のものです。:2005/10/16(日) 17:01:24 ID:0gQNvyRR
何か凄いアホが紛れ込んでるな。
931925:2005/10/16(日) 17:01:39 ID:uNCcPNGN
文字列情報が固定されているゲームに限定してレスしてしまった。すまそ。
動的な文字列の場合はやっぱりそのまま生成して使うんかな。
まあどうでもいいか。
932925:2005/10/16(日) 17:04:24 ID:uNCcPNGN
はいはい、君は僕より頭がいい。
933名前は開発中のものです。:2005/10/16(日) 17:46:45 ID:ePu+oMfg
TTF_RederUTF8_XXXを使う場合でも1フレーム毎にsurfaceを
生成するなんてアホなことはしない.文字列のsurfaceが欲しい
シーンに入るときにsurface作ってそのシーンから抜けるときに
SDL_FreeSurface()する.

文字と矩形を対応させて文字列を描画する方法はASCIIコード程度なら
やるけど日本語ありの場合は必要な文字だけをレンダリングしたとしても
莫大なメモリを食うのでやっぱりやらない.
934名前は開発中のものです。:2005/10/16(日) 19:04:17 ID:9sHmJEZ2
>>933
> 文字と矩形を対応させて文字列を描画する方法はASCIIコード程度なら
> やるけど日本語ありの場合は必要な文字だけをレンダリングしたとしても
> 莫大なメモリを食うのでやっぱりやらない.
日本語でも、αチャンネルだけのテクスチャにするとかでメモリ使用量押さえたらなんとかならんかな?
やったことないんで想像で言ってるだけだが
935925:2005/10/16(日) 19:15:54 ID:uNCcPNGN
>>933
使う文字列が多い場合、シーン毎に細分化してもメモリ使用量は変わらんがな。結局使うんだから。
ましてMMOのチャットなんかで動的に必要な場合はシーンで確保なんかできない。
936930:2005/10/16(日) 19:37:31 ID:0gQNvyRR
正直スマンかった。アホじゃなくて池沼だわ。
937925:2005/10/16(日) 20:15:33 ID:uNCcPNGN
優越感に浸りたいだけの馬鹿でなければ指摘していただきたい。
それとも文章力が無いのか、面倒臭がりなのか。
938925:2005/10/16(日) 20:21:33 ID:uNCcPNGN
>>936
じゃなきゃ誰も君のレスに何の価値を感じないよ。
君はそのレスを書き込むことに何か意義を感じるのかい?
「925は馬鹿だな」って、一緒になって賛同してくれるレスが欲しいのかい?
くだらねえ。
939925:2005/10/16(日) 20:23:46 ID:uNCcPNGN
病んでるな俺
SDL_ttfで首吊ってきます
さようなら
940名前は開発中のものです。:2005/10/16(日) 22:34:38 ID:eOr9iAiX
晩ご飯までには帰ってくるのよ。
941名前は開発中のものです。:2005/10/20(木) 23:34:54 ID:W3zgiMmJ
SDL
SD
S
SD
SDL
942名前は開発中のものです。:2005/10/23(日) 17:17:59 ID:M214XGzK
g++
g+
g

+
++
++g
943名前は開発中のものです。:2005/10/26(水) 15:51:54 ID:VPhwa+P3
ライセンスゆるくなるのかねぇ…?
ttp://www.devolution.com/pipermail/sdl/2005-October/070939.html
944名前は開発中のものです。:2005/11/02(水) 02:51:15 ID:Hh29B0Am
>>943
まじで? もしそうなるとしたら、SDLを選択肢に選ぶ人はもっと増えるかもしれないね。
ところでSDL2.xっていつ頃になるんだろう?
945名前は開発中のものです。:2005/11/05(土) 20:50:59 ID:4J6RfiW+
borland C++ compilerでSDL_gfxを導入したいんだけど、導入方法が
分からないので、教えてほしいのですが。
946名前は開発中のものです。:2005/11/06(日) 17:47:38 ID:HW9Qh6Q9
>>945
こんな感じでMakefileを書いてコンパイルすればいいでしょう。
-----------------------------------------------------------
CC=bcc32
RC=brc32
ILIB=implib
CFLAG=-WD -3 -O2 -w- -AT -pc -H- -k -b -DWIN32 -DBUILD_DLL
CINCS=-I..\include
TARGET= SDL_gfx.dll
LIB= SDL_gfx.lib
SRC1= SDL_imageFilter.c
OBJ1= SDL_imageFilter.obj
SRC2= SDL_gfxPrimitives.c
OBJ2= SDL_gfxPrimitives.obj
SRC3= SDL_framerate.c
OBJ3= SDL_framerate.obj
SRC4= SDL_rotozoom.c
OBJ4= SDL_rotozoom.obj
LIB1=..\lib\SDL.lib

947名前は開発中のものです。:2005/11/06(日) 17:48:36 ID:HW9Qh6Q9
つづき

TARGET: $(TARGET)

$(TARGET): $(OBJ1) $(OBJ2) $(OBJ3) $(OBJ4)
$(CC) $(CFLAG) -e$(TARGET) $(OBJ1) $(OBJ2) $(OBJ3) $(OBJ4) $(LIB1)
$(ILIB) $(LIB) $(TARGET)
$(OBJ1): $(SRC1)
$(CC) $(CFLAG) $(OUTDIR) $(CINCS) -c $(SRC1)
$(OBJ2): $(SRC2)
$(CC) $(CFLAG) $(OUTDIR) $(CINCS) -c $(SRC2)
$(OBJ3): $(SRC3)
$(CC) $(CFLAG) $(OUTDIR) $(CINCS) -c $(SRC3)
$(OBJ4): $(SRC4)
$(CC) $(CFLAG) $(OUTDIR) $(CINCS) -c $(SRC4)
-----------------------------------------------------------
948925:2005/11/07(月) 12:44:31 ID:TpJBaBVO
>>946
どうも。レスありがとうございます。メイクファイルを見ました。
上記のmakeをborlandのmakeコマンドで実行してみましたが、何もエラーだとか
何も反応がないので、少し修正しました。borlandのmakefileって小括弧じゃなくて中括弧で書くみたいなので、一応中括弧に直してmakeしました。
修正した所だけ書くと、
OBJ= SDL_imageFilter.obj SDL_gfxPrimitives.obj SDL_framerate.obj SDL_rotozoom.obj
$(TARGET) : $(OBJ)
$(CC) $(CFLAG) -e$(TARGET) $(OBJ) $(LIIB1)
$(ILIB) $(LIB) $(TARGET)
.c.obj :
$(CC) $(CFLAG) $(CINCS) -c $<
修正したmakefileが今手元にないけど、こんな感じにしたら、ちゃんと動きました。
一回、失敗してSDL.libをリンクしてなくてプロシージャが見つからないってエラーが出てきましたが、
ちゃんと$(CC) $(CFLAG) -e$(TARGET) $(OBJ) $(LIIB1) という感じに$(LIB1)を入れたらうまくDLLと
ライブラリが作れました。
# $(OUTDIR)って定義されてないけど、これは何でしょうか?
949946:2005/11/07(月) 20:00:12 ID:fJubQ/K/
>>948
BCC Developerが
http://www.hi-ho.ne.jp/jun_miura/
はいたMakefileをDOS用に適当に編集しただけなので
細かいことは良く分かりませんが、

>$(OUTDIR)って定義されてないけど、これは何でしょうか?

生成物の出力先を指定するときに使うんだったと思います。
950925:2005/11/08(火) 10:03:40 ID:S6wiWkHj
>>946
どうもレスありがとうございます。なるほど、オブジェクトファイルの保存ディレクトリですか。
SDL_gfxの配布ファイルにはVCのメイクファイルしか入ってなくって、BCCでのビルド無理だからVC買おうかと思ってましたが、質問してよかったです。
BCC Developperですか。長いことずっとコマンドライン作業だったので、Developerすごく便利そうですね。今度から使ってみます。
951名前は開発中のものです。:2005/11/20(日) 18:36:24 ID:vG0RaijI
cygwin 環境に SDL 1.2.9 を入れてみたけど SDL_Init(SDL_INIT_VIDEO) を呼ぶと、
gdb でデバッグするとき変なことになってます
(SDL_Init と SDL_Quit を呼ぶだけのプログラムで)

5 if(SDL_Init(SDL_INIT_VIDEO)<0) {
(gdb)
warning: Hooking
warning: C:\..\TEST.EXE
warning: RPH:Injecting code at start up
warning: done...
warning: RPH:DDraw Hooked!

こんな感じのメッセージが出て、以降普通にステップ実行できるけど、
main から抜けても gdb とアプリが終了してくれない

ddraw.dll? を hook したよ、とか言ってますがこれが元凶だろうか
ちなみに SDL_Init(SDL_INIT_NOPARACHUTE) と SDL_Quit だと
問題は起こらない

cygwin + SDL でデバッグできない、なんて話は検索しても皆無だし、
どなたか情報ありませんかね?

SDLビルド時のオプションなどは、ここに書いてある通りに実行しました
http://cefiro.homelinux.org/topics/SDL/setup-win32-cygwin.html
952名前は開発中のものです。:2005/11/21(月) 12:52:23 ID:wOS82bbj
wesnothというSDLなゲームで日本語入力できるようにしようとしているのだけど、どの手段がいいのかなぁ。
今はSDL_imとか試しているけど。
フォントレンダリングも少しアレげなんでsdl-pangoとか検討してみたり。
ここまでやるとなると、日本語入力に関してはgtk+を直に使った方がよい気がしてきたり…
953名前は開発中のものです。:2005/11/21(月) 13:29:05 ID:wOS82bbj
なんかアホなこと書いた気がする。さすがにgtk+はむりか。必要な時だけ呼び出せるわけじゃないし。
ximにモディファイアキー喰われてしまって困っていますが、SDL_imでがんばってみます。
954名前は開発中のものです。:2005/11/24(木) 13:18:22 ID:wtYtRNgo
>951
cygwinでは全く経験無いのでわからないけど、
DDrawフックが怪しいと思うなら、
SDL自体を ENABLE_DIRECTX を外してmakeしてから試せばいいでしょう。
DIRECTXモジュールがSDLに含まれないなら、少なくともDDRAWの疑いは晴れる。

外し方は自分で調べてな。
configureで --disable-use_directxとか??
直接makefileから -DENABLE_DIRECTX を外すか。
955名前は開発中のものです。:2005/11/25(金) 14:25:57 ID:j4sp1PuY
>>954
サンキュー
そういう手段もあるのか

どうも、この怪しいメッセージ、OmegaDriverが出してるっぽくて
このフックだけ外す方法を模索中
ノートPCなんだけど、標準ドライバだとpivot表示ができないから
OmegaDriver自体を使わない、というのはちょっと困る
956名前は開発中のものです。:2006/02/05(日) 18:29:11 ID:rbHrat23
SMPEGをVC++6でコンパイルする方法を教えて頂けませんでしょうか?
ググってみたのですが、どこにも解説しているサイトがなくて…。
957名前は開発中のものです。:2006/02/05(日) 18:29:48 ID:rbHrat23
済みません、sage忘れてましたorz
958名前は開発中のものです。:2006/02/06(月) 00:27:25 ID:5IybunEz
別にsageんでもいいと思うけど。。。
どこで詰まってるんだ?
コンパイルエラーくらい出して欲しい。
959名前は開発中のものです。:2006/02/06(月) 00:29:52 ID:5IybunEz
あ、コンパイルエラーは関係ないな、失礼した
960名前は開発中のものです。:2006/02/06(月) 15:41:28 ID:rydF6b7m
smpeg-0.4.4でVisualC.zipを解凍して中の
smpeg.dswやsmpeg.dspを実行してみたのですが、
エラーが出て先に進めないのです。
bzlibの時はすんなりいったのですが…。
961名前は開発中のものです。:2006/02/08(水) 22:59:58 ID:xyX2pKcU
どういうエラーメッセージが出ましたか?

って聞かれなきゃ言わないのか?最近の厨房様は。
962名前は開発中のものです。:2006/02/15(水) 04:54:30 ID:8jsP3/R6
>>961
お願いしますが抜けてる
963名前は開発中のものです。:2006/02/15(水) 05:06:44 ID:pkFtH0Nj
なるほど
964名前は開発中のものです。:2006/02/15(水) 20:55:07 ID:dIpuR5PY
960はただエラーが出たと書きたかっただけで、
解決策は求めていないということね。
965名前は開発中のものです。:2006/02/15(水) 23:37:57 ID:kemyKw4O
bccですが初心者の初心者による初心者のためのSDLさん(ttp://tokyo.cool.ne.jp/sdl/)の
コンパイルテストを実行すると
エラー E2046 D:\Source\BCB\SDL_Test\main.cpp 1: include 指令のファイル名の書式が正しくない
エラー E2141 D:\Source\BCB\SDL_Test\main.cpp 14: 宣言の構文エラー
エラー E2268 D:\Source\BCB\SDL_Test\main.cpp 20: 未定義の関数 'printf' を呼び出した(関数 main(int,char * *) )
エラー E2451 D:\Source\BCB\SDL_Test\main.cpp 28: 未定義のシンボル SDL_Rect(関数 main(int,char * *) )
エラー E2379 D:\Source\BCB\SDL_Test\main.cpp 28: ステートメントにセミコロン(;)がない(関数 main(int,char * *) )
エラー E2451 D:\Source\BCB\SDL_Test\main.cpp 29: 未定義のシンボル dest(関数 main(int,char * *) )
エラー E2451 D:\Source\BCB\SDL_Test\main.cpp 31: 未定義のシンボル Uint32(関数 main(int,char * *) )
等のエラーが大量に出て失敗するのですが、導入部分でどこが間違っているのでしょう?
一通り見直してやり直してみましたがまったく出来ませんので…
966名前は開発中のものです。:2006/02/15(水) 23:49:33 ID:kemyKw4O
と思ったら
includeの先に何も無かったので<SDL/SDL.h>を付けてみたら一発成功でした。
お騒がせしてすいません
967名前は開発中のものです。:2006/02/16(木) 12:16:03 ID:4CJdjj+H
Mac OS X 10.3.9なんですが,かなり初歩的な質問をさせてください
SDL-1.2.9フォルダをホームにおいてSDL-1.2.9フォルダにて./configure、make、sudo make install
でSDLをインストールしました(エラーは出ませんでした)
とりあえずしっかりパスが通っていてSDLがインストールされているのを確認するにはどうすればいいんでしょうか?
パスはホームの.tcshrcにsetenv PATH /usr/local/bin:/SDL-1.2.9:$PATH
と記述しただけで通したつもりになっています…。
968名前は開発中のものです。:2006/02/16(木) 13:45:55 ID:FEuy8yUB
サンプル動かしてみれば?
testの下にいろいろ入ってる。
testwinあたりでもどう?

それはさておき /SDL-1.2.9 に入れてそこにパス通すのはどんなもんよ。
969名前は開発中のものです。:2006/02/16(木) 15:13:14 ID:4CJdjj+H
>それはさておき /SDL-1.2.9 に入れてそこにパス通すのはどんなもんよ。
すいません正直パスを通す意味がよく分かってません

/SDL-1.2.9/testにて
cc testwin.c `sdl-config --cflags --libs`でコンパイルしたらとんでもないくらいエラー出ました。
あきらかに各種ファイルの不足によるものばかりなのでtestに不足ファイルをいれれば成功しそうですが
それではプログラムを作るたびにそのディレクトリに必要ファイルを入れなければなりません。

どのディレクトリででもSDLのプログラムをコンパイルし実行するにはどのようにすればいいのでしょうか?
970名前は開発中のものです。:2006/02/16(木) 17:45:49 ID:FEuy8yUB
それはSDLの知識やC言語の知識というより、
OSやUNIX上のC開発の知識になってしまうので
ここで一から教わろうってのは厳しいかもね。
おれもMacOSのシステム構成とか知らんし。

とりあえず cc付けないで
sdl-config --cflags --libs
これだけで実行してみた?
多分そこから動いてないのだろうけど
そこから先は手探りなんじゃないかな。
971名前は開発中のものです。:2006/02/16(木) 19:07:44 ID:RDmCVz1R
>>970
あなたが知らないのならわかる人を連れてきてください。
それすらできないようならあなたなんかに用はありません。
972名称未設定:2006/02/16(木) 19:18:34 ID:6HFR4Et4
最近は bash が Mac OS X のデフォルトのログインシェルなんで、
~/.cshrc に書いても読まれていない罠の可能性が… ( echo $SHELL すればわかる、かも)
~/.bashrc とかに書かなきゃいけないかもよ?

とにかく、エラーがとんでもなくでたんならそのエラーと
そのときのコマンドラインを貼り付けれ。
長すぎて迷惑だと思うならどこか手軽なアップローダを探せばいい。

新・mac板に行ってTerminal初心者スレあたりでたずねることも検討しなさいな。
初心者だって開発してみたいだろうさ。
973名前は開発中のものです。:2006/02/16(木) 20:24:20 ID:4CJdjj+H
シェルをtcshからbashに変えて
~/.bash_profileにexport PATH=$PATH":/SDL-1.2.9"と記述しました

~/SDL-1.2.9 および ~/SDL-1.2.9/testにて
sdl-config --cflags --libsだけで実行すると
-bash: sdl-config: command not found

~/SDL-1.2.9にて
./sdl-config --cflags --libsで実行すると
-I/usr/local/include/SDL -D_THREAD_SAFE
-L/usr/local/lib -lSDLmain -lSDL -framework Cocoa -framework OpenGL
となりました。これはこのディレクトリ内にsdl-configがあるので当たり前なんですが…
974名前は開発中のものです。:2006/02/16(木) 20:39:00 ID:4CJdjj+H
~/SDL-1.2.9/testにて
cc testwin.c `sdl-config --cflags --libs`を実行すると

cc: sdl-config --cflags --libs: No such file or directory
testwin.c:12:17: SDL.h: No such file or directory
testwin.c:14: error: parse error before '*' token
testwin.c: In function `DrawPict':
testwin.c:17: error: `SDL_Surface' undeclared (first use in this function)
testwin.c:17: error: (Each undeclared identifier is reported only once
testwin.c:17: error: for each function it appears in.)
testwin.c:17: error: `picture' undeclared (first use in this function)
testwin.c:18: error: `SDL_Rect' undeclared (first use in this function)
testwin.c:18: error: parse error before "dest"
testwin.c:21: error: `SDL_Color' undeclared (first use in this function)
testwin.c:21: error: `colors' undeclared (first use in this function)
testwin.c:21: error: `cmap' undeclared (first use in this function)
testwin.c:24: error: `bmpfile' undeclared (first use in this function)
testwin.c:38: error: parse error before ')' token
testwin.c:39: error: parse error before ')' token
testwin.c:47: error: parse error before ')' token
testwin.c:48: error: parse error before ')' token
testwin.c:63: error: `screen' undeclared (first use in this function)
testwin.c:73: error: `Uint32' undeclared (first use in this function)
testwin.c:73: error: parse error before "black"
testwin.c:74: error: `Uint8' undeclared (first use in this function)
testwin.c:74: error: `pixels' undeclared (first use in this function)
testwin.c:76: error: `black' undeclared (first use in this function)
testwin.c:77: error: parse error before ')' token
testwin.c:88: error: `speedy' undeclared (first use in this function)
testwin.c:89: error: `displayfmt' undeclared (first use in this function)
975名前は開発中のものです。:2006/02/16(木) 20:40:31 ID:4CJdjj+H
testwin.c:102: error: `SDL_HWSURFACE' undeclared (first use in this function)
testwin.c:107: error: `dest' undeclared (first use in this function)
testwin.c:113: error: `update' undeclared (first use in this function)
testwin.c:118: error: `flip' undeclared (first use in this function)
testwin.c:135: error: `nofade' undeclared (first use in this function)
testwin.c:137: error: parse error before "final"
testwin.c:140: error: parse error before "Sint16"
testwin.c:140: warning: no semicolon at end of struct or union
testwin.c:141: error: `cdist' undeclared (first use in this function)
testwin.c:145: error: `maxstep' undeclared (first use in this function)
testwin.c:146: error: `final' undeclared (first use in this function)
testwin.c:149: error: `palcolors' undeclared (first use in this function)
testwin.c:96: error: label `done' used but not defined
testwin.c: At top level:
testwin.c:220: error: parse error before ':' token
testwin.c:223: warning: parameter names (without types) in function declaration
testwin.c:223: error: conflicting types for `free'
/usr/include/stdlib.h:136: error: previous declaration of `free'
testwin.c:223: warning: data definition has no type or storage class
testwin.c:223: warning: parameter names (without types) in function declaration
testwin.c:223: warning: data definition has no type or storage class
testwin.c:224: error: parse error before "return"
976名前は開発中のものです。:2006/02/16(木) 20:41:22 ID:4CJdjj+H
testwin.c: In function `main':
testwin.c:229: error: `SDL_Surface' undeclared (first use in this function)
testwin.c:229: error: `screen' undeclared (first use in this function)
testwin.c:235: error: `Uint32' undeclared (first use in this function)
testwin.c:235: error: parse error before "video_flags"
testwin.c:247: error: `video_flags' undeclared (first use in this function)
testwin.c:302: error: `SDL_HWPALETTE' undeclared (first use in this function)
testwin.c:307: error: `SDL_HWSURFACE' undeclared (first use in this function)
testwin.c:312: error: `SDL_DOUBLEBUF' undeclared (first use in this function)
testwin.c:317: error: `SDL_FULLSCREEN' undeclared (first use in this function)
testwin.c:324: error: `SDL_INIT_VIDEO' undeclared (first use in this function)
testwin.c:329: error: `SDL_Quit' undeclared (first use in this function)
testwin.c:353: error: `then' undeclared (first use in this function)
testwin.c:355: error: `now' undeclared (first use in this function)
977名前は開発中のものです。:2006/02/16(木) 21:18:11 ID:/cQBzdnu
>>974 とりあえずはこれでいいかも

cc testwin.c -I. -D_THREAD_SAFE -L. -lSDLmain -lSDL -framework Cocoa -framework OpenGL

シェルの使用法がわかっていないようなので、
先にそちらを理解してからのほうがいいと思う。
978名称未設定:2006/02/16(木) 21:31:05 ID:6HFR4Et4
ヒマだから付き合うけど

書き方が悪かったかもしれないけど、別に bash を使え、と強制しているわけじゃないよ。
Linux ユーザーには bash を使う人が多いので、その分情報収集に有利かもしれないけど。

~/SDL-1.2.9 とは $HOME/SDL-1.2.9 のことで、 Mac OS X では普通は
/Users/$USER のこと。 $USER は >>976 のユーザー名ね。
~/SDL-1.2.9 にパスを通したいなら、

export PATH="/Users/nanashitan/SDL-1.2.9:$PATH"

なり、

export PATH="~/SDL-1.2.9:$PATH"

なり書く必要がある。 >>973 で書いた書き方 (export PATH=$PATH":/SDL-1.2.9") だと、
起動ディスクの直下に SDL-1.2.9 を置いていて、そこにパスを通したい場合の書き方になる。
(古めかしい書き方だと Macintosh HD:SDL-1.2.9: とかいうことね。)

起動ディスクの直下にモノをごちゃごちゃ置くのはお勧めできないので、
>それはさておき /SDL-1.2.9 に入れてそこにパス通すのはどんなもんよ。
みたいなツッコミが入ることになる。
979名称未設定:2006/02/16(木) 21:47:01 ID:6HFR4Et4
で、パスを通す、の意味なんだが…

>>973 は ~/SDL-1.2.9 にコマンドを置いているので、何も考えずに
$ ~/SDL-1.2.9/sdl-config

とコマンドを入力しても正しく動作するのだよ。いちいち ~/SDL-1.2.9 と
タイプするのが面倒な人は、環境変数 PATH に ~/SDL-1.2.9 を追加しておく、と。
で、環境変数の設定方法が bash では export だ、ということ。

SDL のインストールが(ソースからやったなら make install まで)終わっているなら、
おそらく /usr/local/bin に sdl-config もインストールされていると思うので、
/usr/local/bin/sdl-config としてもいいし、 PATH に /usr/local/bin を登録しておくのもよいかと。

俺の場合、 Fink っつーパッケージ管理システムを使っているので、
/usr/local は使わないことにしているんだけどね。これは余談。

あと、 `` は、中のコマンドの出力結果で置き換えるためのカッコ。
>>977 を見ればピンとくるだろうか。

いろいろシェルの使い方を検索しつつがんばれ。
個人的にはまっさらに無知な春休みの学生が最低限どれだけの知識があれば
開発を始められるのか、興味深いところではあるw
980名前は開発中のものです。:2006/02/16(木) 22:24:14 ID:4CJdjj+H
ID:6HFR4Et4さんありがとうございます!!
おかげさまでパス通りました!

>>977さんのコンパイル方法をやってみましたが
全く同じエラーが出たのでまだ入れなければいけないものがあるんでしょうね
本家サイトからとってきて試したいと思います
981& ◆F7sVjZIqRE :2006/02/16(木) 22:28:20 ID:6HFR4Et4
まったく同じじゃないでしょう。少なくとも
「cc: sdl-config --cflags --libs: No such file or directory」の行が消えたはず。
エラーのはじまりと終わりは重要なことが多いので、気をつけて。

で、 /usr/local/lib とか /usr/local/include が
Mac OS X ではデフォルトでリンカのパスに含まれていないので、

gcc のコマンドラインに -I/usr/local/include -L/usr/local/lib を入れてみな。
982名称未設定:2006/02/16(木) 22:32:32 ID:6HFR4Et4
っと。間違えた。ごめ。
とりあえず、パスが通ったんなら

cc testwin.c `sdl-config --cflags --libs`

を初心に返って試してみなされ。
983名前は開発中のものです。:2006/02/16(木) 22:36:59 ID:4CJdjj+H
コンパイルできちゃいました…
でも実行はどうやって?
./testwinではないのでしょうか?
重ね重ねすいません…
984名称未設定:2006/02/16(木) 22:54:48 ID:6HFR4Et4
ここからはSDLスレの住人の出番ではなかろうか。
とりあえず、エスパー的に回答すると

cc のコマンドラインに -o testwin を付けてみればいいに 1ペリカ。
985名前は開発中のものです。:2006/02/16(木) 23:55:15 ID:4CJdjj+H
ID:6HFR4Et4さんtestwin実行成功しました
ありがとうございました

いろいろサンプルプログラムを実行していましたがSDL_imageなしで画像を読み込んで使っているプログラムがありましたが
SDL_imageはどのような場合に必要なのでしょうか?これなしでは画像は使えないと思っていました…
986名前は開発中のものです。:2006/02/17(金) 00:18:25 ID:9Dty7h0+
すいません、よく考えたら聞き過ぎですね(汗
自分でがんばってみます。
ありがとうございました。
987名前は開発中のものです。
>>985
ttp://zinnia.dyndns.org/~cvsweb/sdldoc-jp/
ここのリファレンスをよくみれば、BMPファイルを読み込み
扱う機能があることはわかる

SDL_imageはその他のいろいろな形式の画像ファイルを
読み込む機能を提供してくれているだけ
ただ、SDL_imageやSDL_gfxなど、補助ライブラリについても
詳しく知りたいなら英語のドキュメントを覚悟してください