X



SDL=Simple DirectMedia Layerでゲームだ
■ このスレッドは過去ログ倉庫に格納されています
0257デフォルトの名無しさん
垢版 |
2006/02/19(日) 12:45:23
SDL_GL_SetAttributeで色のサイズを5ビットに設定したとき、

ピクセルあたり8ビットのBMPを読み込んでいるとき、
glTexImage2Dでは自動的に5ビットに直されるのでしょうか、
それとも、描画時に勝手に直されるのでしょうか?

もしくは8ビットを自分で5ビットになおさないといけませんか?
0258デフォルトの名無しさん
垢版 |
2006/02/19(日) 13:06:33
>>254
LGPLだと作者が翻ってGPL宣言したとたんさかのぼって適用されないのかと心配
>>255
objを同梱するのも嫌なんだけど、SDLは全部DLLなんすか?
0259デフォルトの名無しさん
垢版 |
2006/02/19(日) 22:31:00
>>258
> LGPLだと作者が翻ってGPL宣言したとたんさかのぼって適用されないのかと心配
将来のバージョンでGPLになった場合でも、既にLGPLな時にリンクされたバージョンに遡って適用されることはない。
例えば、LGPLの1.2.9を入手して使用してたとして、
作者が1.2.10とかでGPLにライセンス変更するようなことがあったとしても、
1.2.9をLGPLライセンスの元で使用し続けることは可能。

> objを同梱するのも嫌なんだけど、SDLは全部DLLなんすか?
SDL本体はDLL(つか、公式のバイナリを見ればすぐ分かることだと思うが…)。
その他にwindowsなんかの場合SDLmainというのが存在し、これは通常スタティックリンクされるが、
このファイルだけはPublic Domainなのでスタティックリンクしてもソース公開の義務は無い。
0260デフォルトの名無しさん
垢版 |
2006/02/20(月) 01:19:22
LGPLのライブラリって多いから、毛嫌いもしてられないって感じだね。
FSFとしては、LGPLを将来的に無くしてしまうつもりとかあるのかな。非推奨とか言ってるけど。
続いて欲しいな・・・。
0261デフォルトの名無しさん
垢版 |
2006/02/20(月) 09:00:31
>>260
FSFのLGPLは強すぎるGPLに対して好意で設けているわけではない。

きわめて戦略的。GPLが嫌われてるのは連中も認識しているから、
それだと普及の妨げになると判断した時LGPLにする模様。

>>258
>既にLGPLな時にリンクされたバージョンに遡って適用されることはない。
信用できない。
0262デフォルトの名無しさん
垢版 |
2006/02/20(月) 09:16:12
>>261
信用出来ないって、書かれている事が全てだよ。
戦略的だからこそ、信用出来ると思うけどね。Lesser という名前を付けてまで LGPL を
設けなきゃいけない理由は皆知ってるし。無くなれば非難囂々でしょう。

あんまり的外れな議論をしてると GPL 信者が寄って来るよ。
「信用出来ないなら使わなきゃいーじゃん」って。
0265デフォルトの名無しさん
垢版 |
2006/02/23(木) 14:40:21
>>255
>改変した SDL でリンク出来るようにしておかないとダメ。
これはSDLがどのような形になるか不明であるため
ソースコードを提供しなければ履行できないのではないか

たとえば関数の引数が変わればリンクはできないなど
SDL側の改変の幅がわからなければ対応しようもない
0266デフォルトの名無しさん
垢版 |
2006/02/24(金) 08:31:33
互換性失うような改変にまで対応する責任はないよ。
互換性保ったまま改変した SDL に対して、正常にリンク・動作できればいい。

# …っていうか、疑問があったら読もうよ、ライセンス。
# これもちゃんと書いてあったし。
0268デフォルトの名無しさん
垢版 |
2006/02/24(金) 13:02:47
2月17日最終書き込みでDAT落ちしてるっぽい
980超えたからだな
1000いってないから2chミラーサイトに拾われないので
ログは持ってたほうがいいよ
0269デフォルトの名無しさん
垢版 |
2006/02/27(月) 01:37:38
やっぱ落ちてたのか。
誰かあっちにパート2立ててくれないかな・・・。
俺の環境じゃなんか新スレ立てに失敗してしまう・・・。
0272デフォルトの名無しさん
垢版 |
2006/04/21(金) 16:36:20
それなりに情報があるから会話が必要ないのかな
これだけ整備されてるとアイデア勝負だから時々絶望する
0273デフォルトの名無しさん
垢版 |
2006/04/21(金) 23:31:29
ゲームはアイデアよりバランスと構成勝負
Aba氏とか見て絶望する必要はない。彼は所詮アマチュア。
0277デフォルトの名無しさん
垢版 |
2006/07/22(土) 13:00:47
FAQにはこう書かれています。
----------------------------------------------------------------------------
Q: Why doesn't SDL_WM_ToggleFullScreen() work on Windows?
A: The semantics of SDL_WM_ToggleFullScreen() are that switching between fullscreen
and windowed mode is transprent to the application.
The display pixels pointer does not change, the display depth does not change, etc.
This cannot be guaranteed on Windows. However,
there is a simple method you can use to change between fullscreen and windowed mode:
flags ^= SDL_FULLSCREEN;
screen = SDL_SetVideoMode(..., flags);
----------------------------------------------------------------------------
0278デフォルトの名無しさん
垢版 |
2006/08/07(月) 08:39:34
Ruby/SDL で mixer の初期化に失敗するのですが、同じ症状で解決された人いましたらご教示よろしくお願いします。

ディストリは CentOS 4.3

$ uname -srvmpio
Linux 2.6.9-34.0.2.EL #1 Fri Jul 7 19:24:57 CDT 2006 i686 i686 i386 GNU/Linux
$ruby -v
ruby 1.8.4 (2005-12-24) [i686-linux]

SDL_mixer-1.2.7 はソースからコンパイルしてインストールしました。

導入しようとしたのは Ruby/SDL 1.1.0 で、
sampleディレクトリ下の playwav.rb を実行すると

/usr/local/lib/ruby/site_ruby/1.8/sdl.rb:220:in `open_imp': Couldn't open audio: Couldn't create mixer lock (SDL::Error)
from /usr/local/lib/ruby/site_ruby/1.8/sdl.rb:220:in `open'
from playwave.rb:7

というエラーが出ます。

SDL_OpenAudio で止まってるようで、簡単なテストコードをCで書いても同じメッセージ(Couldn't create mixer lock)が出ます。
0279デフォルトの名無しさん
垢版 |
2006/08/28(月) 22:54:00
遅レスな上に当てずっぽうだがSDL_mixerが新しすぎるとみた。
もう解決してたらスルーしてくれ。
0280デフォルトの名無しさん
垢版 |
2006/08/29(火) 00:31:28
たった今解決しました。(汗
公式サイトの
ttp://www.libsdl.org/release/SDL-1.2.11-1.i386.rpm
をインストールしなおしたあとで動くようになりました。

ただ、SDL_mixerのconfigure時にsdl-configのパスが間違っていたっぽかったので
そっちだったのかもしれません(それでもconfigureは通るんですよね)。
x) /usr/local/bin/sdl-config
o) /usr/bin/sdl-config
結局具体的に何がどうだったのかいまいち不明です。
なんだか参考にならなそうですみません。

>>279さんの書き込み見る前にニアミスで解決しちゃったんで、ありがとうございます、ではないですけど・・・おさわがせしました〜。

いちおう書いておくと、SDL_mixerのmixer.cの SDL_OpenAudio のとこ(300行付近)↓
で止まってました。

/* Accept nearly any audio format */
if ( SDL_OpenAudio(&desired, &mixer) < 0 ) {
return(-1);
}

0281デフォルトの名無しさん
垢版 |
2006/11/27(月) 20:16:43
保守あげ
0284デフォルトの名無しさん
垢版 |
2006/12/03(日) 03:02:36
日本で、これを使ってゲームを販売している会社はあるの?
0287デフォルトの名無しさん
垢版 |
2006/12/03(日) 04:46:11
どっかの企業が作ったライブラリが原型じゃないっけ?
ってことはその原型のライブラリは
その企業では一応使われてたんでないかと
0288デフォルトの名無しさん
垢版 |
2006/12/03(日) 04:48:40
XNAでおk
0289デフォルトの名無しさん
垢版 |
2007/01/19(金) 08:28:09
サーバーやたら重くね?
0291デフォルトの名無しさん
垢版 |
2007/02/11(日) 14:01:50
ものすごく恥ずかしい質問かもしれないけど・・・
ウィンドウタイトルに日本語は使えないの?
0293デフォルトの名無しさん
垢版 |
2007/02/15(木) 03:02:50
>>291
少なくともWindowsでは使えない。
文字列をutf-8に変更した時からみたいだね。

バグ報告は出ているけど、いつ直ることやら。
って思ったら、とりあえずパッチが上がってた。

古いバージョンを使うか、バグ報告どおりに自分で直すと良いかと。

ttp://bugzilla.libsdl.org/show_bug.cgi?id=365
0294デフォルトの名無しさん
垢版 |
2007/04/23(月) 07:32:03
便乗して恥ずかしい質問してみるけど、Alt+F4ってどう実装してる?
メインループのPollEventで、下のようにやってもAltを認識してくれないぽ
環境はwin2k、DevC++(gcc+mingw)、SDL1.2.11

bool PollEvent(){
 SDL_Event ev;
 while(SDL_PollEvent(&ev)){
  switch(ev.type){
   case SDL_QUIT:
    return false;
    break;
   case SDL_KEYDOWN:
    if((ev.key.keysym.sym == SDLK_F4) && (ev.key.keysym.mod == KMOD_ALT)) return false;
    break;
  }
 }
 return true;
}
0296デフォルトの名無しさん
垢版 |
2007/04/23(月) 22:32:25
泣いた

サンクスコ
それだとうまくいきました
ビットごとに違うフラグあるんだから全体を==で比較しちゃ駄目ですね
0297デフォルトの名無しさん
垢版 |
2007/05/09(水) 15:20:17
SDL_ttfのこの辺って戻り値が参照渡しだけど、もしかしてこの関数内でサーフェス用に確保されたメモリってほったらかしだと解放されないで、新しく確保した領域にポインタが更新されるだけ?
ループの中でテキスト生成させてたら、秒速1MBでメモリ増えてくんだけど(;'A`)
>SDL_Surface *TTF_RenderUTF8_Solid(TTF_Font *font, const char *text, SDL_Color fg)
0299デフォルトの名無しさん
垢版 |
2007/06/17(日) 15:03:37
あげ
0300デフォルトの名無しさん
垢版 |
2007/06/20(水) 14:35:46
さてこれからC++とSDLで勉強しようと思う俺様が通りますよ

0301デフォルトの名無しさん
垢版 |
2007/06/20(水) 21:19:00
>300
とりあえず初心者の〜に行ってこい
0302デフォルトの名無しさん
垢版 |
2007/08/13(月) 17:37:28
SDL1.2.12になってからVisualC++ 2005 EE SP1でコンパイルしても実行出来なくなったんですが
原因が分かる方居ますか?
0303デフォルトの名無しさん
垢版 |
2007/08/19(日) 20:16:49
1.2.12いれたら -ansiオプションで警告出たのでなんだろと思ったら
SDL/begin_code.hの93,94行目のコメントがC++形式だった
0308デフォルトの名無しさん
垢版 |
2007/09/27(木) 23:59:43
SDL使ってゲームを作り始めました。ここで質問なんですが、
SDL_GetKeyState()はゲームのメインループ1回に1度呼び出すのと、
SDL_PollEvent()でSDL_KeyboardEventを拾った時に呼ぶのとどっちがいいんでしょう?
前者では常にそのタイミングでスキャンでき、
後者ではOSがイベントを中継する分だけ(処理落ちが激しいときなどでは)反応が遅れる可能性があるが
キーボードに触れられなければSDL_GetKeyState()が呼ばれないためその分軽い(1msも掛からないと思うけど・・・
ということじゃないかと考えているのですけど、一般的にはどちらが使われる、とかありますか?

あと、SDL_PollEvent()でイベントが何もきていないときにゲームメインループを進めているのですが、
ウィンドウのタイトルバーを右クリックしてポップアップメニューが表示されている間や、
タイトルバーをドラッグしてウィンドウが動いている間などはゲームメインループが進みません。
こういった状態でもゲームメインループをまわすにはどうしたらいいですか?
(Windowsでの話です。)
0309デフォルトの名無しさん
垢版 |
2007/09/28(金) 03:28:33
>>308
普通は毎フレーム呼ぶんじゃないかな?
ソース読めばわかるけど SDL_GetKeyState() は実はポインタを返すだけの処理だから
どっちでも大差ないだろうけど.最適化を考えるなら1フレームあたり1回しか
呼ばれない低負荷の関数コールを削ることを考えるよりもどこがボトルネックに
なっているか調べてほかに重い場所を探したらいいと思うよ?

# 実は最初に一回呼んでポインタを保存しておいてループ内ではそれを参照するとかでも
# 動く気がするけどその動作が保証されてるわけじゃないから…まぁ適当にやってくれ
0310308
垢版 |
2007/09/28(金) 22:57:22
>>309
ありがとうございました。ポインタを返すだけだったのか!
0311デフォルトの名無しさん
垢版 |
2007/10/08(月) 10:02:45
SDL 1.3の新機能についてRyanさんが書いてる。
ttp://icculus.org/cgi-bin/finger/finger.pl?user=icculus&date=2007-10-07§ion=sdl13
0312デフォルトの名無しさん
垢版 |
2007/10/08(月) 12:51:23
ついにマルチウィンドウが来ますな。
過去互換性も整理する方向みたいね。
いつ頃投入予定なのかな?SDL1.3
0314デフォルトの名無しさん
垢版 |
2007/10/08(月) 13:27:31
それはパーツの種類が少ないからムリだと思う。
SDLの上にウィジェット・ツールキットを構築するのはありだと思うけど。
0317デフォルトの名無しさん
垢版 |
2007/10/12(金) 03:38:31
>>316
CGIと言うか、RubyとかWEBアプリ用と聞いたので、
当然ライブラリとかもWEB上で使えると思ったんだけど・・・
0318デフォルトの名無しさん
垢版 |
2007/10/12(金) 03:51:17
RubyがWEBアプリ用とかいう認識が根本的に間違ってることを理解してくれ
# まぁ向いてる分野ではあるけど
0319デフォルトの名無しさん
垢版 |
2007/10/12(金) 13:09:09
> RubyとかWEBアプリ用と聞いたので、
違うよ。全然違うよ。

> 当然ライブラリとかもWEB上で使えると思ったんだけど・・・
なんで?WEB上ってどこで?
普通、クライアントサイドで動かす、SDLを
サーバーで動かす利点は何だろう?

0321デフォルトの名無しさん
垢版 |
2007/10/12(金) 18:23:09
SDLと関係ない話になりそうな流れだな……。
別にもうこれ以上掘り下げなくてよくね?
0322デフォルトの名無しさん
垢版 |
2007/10/13(土) 05:23:23
Ruby/SDLで書いたゲームスクリプトを投稿すると
サーバの向こう側に常時待機しているおっさんがそれを遊んで
スコアを返すWebアプリを思いついた

アイデアの権利は放棄するからお前ら自由に実装していいぞ
0325デフォルトの名無しさん
垢版 |
2007/10/19(金) 22:34:05
複数のテキストをOpenGLの画面に渡すためにSDL_ttfを使っているのですが、

TTF_RenderUTF8_Solidして作ったいくつかのSDL_Surfaceを、
SDL_BlitSurfaceで、既にOpenGLのフォーマットにしてある大きなサーフィスにコピーして集めて画面をつくり、
その大きなサーフィスをglTexSubImage2DでOpenGLテクスチャとして更新して表示

という方法で、やりたいことはできたのですが、
テキスト1行1行を別々のテクスチャとして扱いたかったのに加えて、
ここの処理だけSDL側でコピーするのも気持ち悪いな、と思い、

TTF_RenderUTF8_Solidして作ったSDL_Surfaceを
SDL_ConvertSurfaceを用いてOpenGLのフォーマットに変換して、
glTexSubImage2DでOpenGLのテクスチャを部分更新して転送する

という方法に変えたところ、テキストのテクスチャの背景部分が透過されなくなってしまいました。
OpenGLテクスチャ上では、文字部分はα値1でカラー値さまざま かつ 文字の無い部分はα値0で完全に透明
にしたいのですが、どうしたらいいのですか?

もともとの方法では、SDL_BlitSurfaceの時に、TTF_RenderUTF8_Solidの作ったサーフィスの文字の無い部分は
自動的に透過されたのですが、SDL_ConvertSurfaceをする場合は、同じように透過されないのでしょうか?
0327デフォルトの名無しさん
垢版 |
2007/10/20(土) 21:34:26
>>326
ありがとうございました、解決しました。
覗いてみたところ、透過したいところのαが0、表示したいところのαが255、と、
OpenGL側の透過値と全く反対で扱われていました。
gl側の混合処理で、GL_SRC_ALPHAからGL_ONE_MINUS_SRC_ALPHAにしたらうまくいきました。
解決のヒントを与えてくれてありがとうございました。
0328デフォルトの名無しさん
垢版 |
2007/11/24(土) 15:09:08
補助ライブラリを日本語で紹介してるサイトないですか?
0332デフォルトの名無しさん
垢版 |
2007/12/08(土) 06:48:31
325とは逆に作ったサーフェスに全く表示されないのを一晩悩んだ漏れが来ましたよ
FillRectで特定の値書き込んだ所や貼り付けた特定の画像上だけしか重ね貼りした画像表示しなくて、
真っ黒な0でのFillRectと並べてやっと気付いたorz

もう弄りすぎてソースが焼きそば並にぐちゃぐちゃだぜ
0334デフォルトの名無しさん
垢版 |
2007/12/28(金) 00:39:37
cairoとの相性いいみたいですね
フォントとか画像ファイル関係はcairoで代用できそう
0335デフォルトの名無しさん
垢版 |
2008/01/05(土) 01:27:38
板違いだったらすいません。

ちょっと質問なんですが、Ruby/SDLを使用しようと思って、必要なものをインスコして、
プログラムを書き、コンパイルしたら、

ALSA lib confmisc.c:数字
ALSA lib conf.c:数字
ALSA lib pcm.c:数字

こういうものが多数出てきて、実行できませんでした。

環境は、Linuxのubuntu7.10を使っています。
SDLやRuby/SDLは元々入っていたものをパッケージャから入れました。

どうしたら実行できるでしょうか?
0336デフォルトの名無しさん
垢版 |
2008/01/06(日) 00:41:57
こういうものが多数・・・と手書きするんじゃなくて
可能な限りをコピー&ペーストしなさい
数字の後にもエラーメッセージ続いてたろ?
0337デフォルトの名無しさん
垢版 |
2008/01/07(月) 01:23:00
>>335です。
実行できなかったのは、ソースファイルの打ち間違いでした。すいません。
しかし、>>335に書いたエラーが出てから実行されます。

>>336
すいません。VMwarePlayerでLinuxを使っていて、
それではネットにつなげるように設定していなかったので
コピペできませんでした。

ALSA lib confmisc.c:769:(parse_card) cannot find card ''
ALSA lib conf.c:3510:(_snd_config_evaluate) function snd_func_card_driver returned error: No such device
ALSA lib confmisc.c:392:(snd_func_concat) error evaluating strings
ALSA lib conf.c:3510:(_snd_config_evaluate) function snd_func_concat returned error: No such device
ALSA lib confmisc.c:1251:(snd_func_refer) error evaluating name
ALSA lib conf.c:3510:(_snd_config_evaluate) function snd_func_refer returned error: No such device
ALSA lib conf.c:3982:(snd_config_expand) Evaluate error: No such device
ALSA lib pcm.c:2144:(snd_pcm_open_noupdate) Unknown PCM default

これが出てたエラーです。
0338デフォルトの名無しさん
垢版 |
2008/01/17(木) 00:25:47
マルチプラットフォームなこのライブラリですが
多少の手直し程度の移植可能(なように作れる)プラットフォームは
どれとどれでしょうか?
0339デフォルトの名無しさん
垢版 |
2008/01/17(木) 01:02:45
>>337
サウンドデバイスが見つからないと言っている

>>338
Linux, Windows, Windows CE, BeOS, MacOS, Mac OS X, FreeBSD, NetBSD, OpenBSD, BSD/OS, Solaris, IRIX, and QNX.
0340デフォルトの名無しさん
垢版 |
2008/03/03(月) 05:22:10
SDL_ttfについて質問です
TTF_RenderText_Solid等をして返ったサーフェースは自分でSDL_FreeSurfaceで開放しなくてはいけませんか?
0343デフォルトの名無しさん
垢版 |
2008/03/04(火) 02:12:30
毎フレームフォントをラスタライズするようなアホプログラムなら直ぐに止まりそうだけどね…
0344デフォルトの名無しさん
垢版 |
2008/03/08(土) 18:26:01
>>340
毎フレームフォントをラスタライズかつ開放しないアホプログラムを実行してタスクマネージャのメモリの項を見ましょう

つかやっぱり毎回作っては開放してって重いのかな('A`)
0345デフォルトの名無しさん
垢版 |
2008/03/08(土) 18:40:37
サーフェスに文字を詰め込んでいって
毎フレーム自分でレイアウトして描画するようにしたほうがいい気がする
ちょっと面倒だけど作ってしまえば更新頻度とか気にせず使える
0346デフォルトの名無しさん
垢版 |
2008/03/08(土) 18:45:07
>>344
毎フレームってことなら当然糞重いでしょ。
サイズにもよるが、メモリの確保&解放だけで結構なボトルネックになるとみた。
既存サーフェスに描画してくれる機能ってあったっけ?
0347デフォルトの名無しさん
垢版 |
2008/03/15(土) 21:48:06
sage
0348デフォルトの名無しさん
垢版 |
2008/04/11(金) 00:41:48
あげ
0349デフォルトの名無しさん
垢版 |
2008/06/14(土) 07:06:13
320x224の解像度でフルスクリーンにすると画面が90度回転してしまうんですが、
解像度は変えないか320x240でこれを発生させない解決方法ってないでしょうか?
0351デフォルトの名無しさん
垢版 |
2008/06/15(日) 10:22:11
すっかり忘れました。ごめんなさい。

ハードはThinkPad X60s
Win XP + Mingw GCC + SDLソースインスコ
です。
0354デフォルトの名無しさん
垢版 |
2008/06/26(木) 22:43:48
解像度を640*480にする
■ このスレッドは過去ログ倉庫に格納されています

ニューススポーツなんでも実況