マルチプラットホームな汎用ゲームライブラリの
SDLについてのスレッドです。
最新情報、参考になるソース、質問等なんでもどうぞ
本家
ttp://www.libsdl.org/
SDL_mixer ttp://www.libsdl.org/projects/SDL_mixer/
SDL_image ttp://www.libsdl.org/projects/SDL_image/
SDLdoc-jp ttp://www.tacoworks.jp/software/SDLdoc-jp/
GamDev ttp://gamdev.org/w/?%5B%5BSDL%5D%5D
初心者の初心者による初心者の為のSDL ttp://tokyo.cool.ne.jp/sdl/
前スレ
http://pc8.2ch.net/test/read.cgi/gamedev/1005469181/
探検
SDLスレ ver.2.0
■ このスレッドは過去ログ倉庫に格納されています
2006/02/28(火) 20:40:12ID:MvXDyxzs
431名前は開発中のものです。
2009/08/07(金) 16:53:05ID:oA4Vb9yJ マウスがウィンドウの内部にあるかどうか判定する方法ありませんか?
ウィンドウの外にいくとマウスがクリックしたことになるので。
ウィンドウの外にいくとマウスがクリックしたことになるので。
432名前は開発中のものです。
2009/08/07(金) 19:39:29ID:6E06gPMO たまに >>482 みたいな勘違い君がいますがSDLはグラフィックスライブラリではありません.
- 画面の初期化
- ジョイスティック,マウス,キーボードでの入力
- PCM出力
のためのライブラリです.
ってか昔Windows環境のデフォルトドライバは dirextx だったんだが
ちょっと前に windib がデフォルトになった.現状の SDL の directx ドライバ
ってDirectX 5 とかだしね.
今の directx ドライバ使ったとしても SDL_FULLSCREEN|SDL_HWSURFACE を指定して
かつ実際にハードウェアサーフェスになってなければただのメモリコピーだし速くもならない.
素のSDLのBitBlitで作るのはスーファミくらいのレベルのゲームまででそれ以上
やりたかったらOpenGLを使う.これ世界の常識.あとマルチプラットフォームに
興味ないなら最初から DirectX 直接使っておけばよい.
# SDL 2.0 とかになればこの辺の状況も少しは変るだろうけど…
- 画面の初期化
- ジョイスティック,マウス,キーボードでの入力
- PCM出力
のためのライブラリです.
ってか昔Windows環境のデフォルトドライバは dirextx だったんだが
ちょっと前に windib がデフォルトになった.現状の SDL の directx ドライバ
ってDirectX 5 とかだしね.
今の directx ドライバ使ったとしても SDL_FULLSCREEN|SDL_HWSURFACE を指定して
かつ実際にハードウェアサーフェスになってなければただのメモリコピーだし速くもならない.
素のSDLのBitBlitで作るのはスーファミくらいのレベルのゲームまででそれ以上
やりたかったらOpenGLを使う.これ世界の常識.あとマルチプラットフォームに
興味ないなら最初から DirectX 直接使っておけばよい.
# SDL 2.0 とかになればこの辺の状況も少しは変るだろうけど…
433名前は開発中のものです。
2009/08/08(土) 01:51:27ID:tookfkje >>482に期待
434名前は開発中のものです。
2009/08/09(日) 01:17:07ID:F8IxnPoP OpenGLでやるにしてもSDLとOpenGLをつなぐ部分の資料を少なすぎてすぐいきづまるし。まじSDLは糞。
Linuxで2Dゲーム作りたい人くらいしか存在価値ない。winでやるならwin32api直の方がまし。
やっぱオープンソースは糞。人間は金が絡まないと本気にならないのだ。
Linuxで2Dゲーム作りたい人くらいしか存在価値ない。winでやるならwin32api直の方がまし。
やっぱオープンソースは糞。人間は金が絡まないと本気にならないのだ。
435名前は開発中のものです。
2009/08/09(日) 04:09:35ID:x7A49lm+ testgl.cで十分だろ。
436名前は開発中のものです。
2009/08/09(日) 05:14:51ID:NGT++n2c >>434
いきづまるのは勝手だが、SDL+OpenGLはなんの問題もないよ。
とりあえず、
ttp://www.libsdl.org/opengl/SDLgears-1.0.2.tar.gz
でも見ればいいと思うよ。
いきづまるのは勝手だが、SDL+OpenGLはなんの問題もないよ。
とりあえず、
ttp://www.libsdl.org/opengl/SDLgears-1.0.2.tar.gz
でも見ればいいと思うよ。
437名前は開発中のものです。
2009/08/11(火) 09:40:10ID:IzCsGYWI438名前は開発中のものです。
2009/08/11(火) 19:09:27ID:KfVzNOIz 煽りのフリした教えてくんか糞が。
夏だな。
夏だな。
439名前は開発中のものです。
2009/08/17(月) 09:02:39ID:cbNmXUcC お前がな
440名前は開発中のものです。
2009/08/17(月) 12:30:53ID:GuHWIeqL いいや、俺が夏だ
441名前は開発中のものです。
2009/08/17(月) 20:33:30ID:ONtV7RcR あたしの夏を取らないでよ!
442名前は開発中のものです。
2009/08/21(金) 12:19:45ID:adQjjuHo 夏の荒らしさん乙です
あーめんどくせー
衝突検知用の画像作りたいんだけど、pngから透明部分以外を一定値として抜き出す楽な方法ない?
ってふと戻り値boolな関数でreturnさせたら0,1でちょうどいい具合だったのでそういう事にするチラシの裏
444名前は開発中のものです。
2009/09/04(金) 15:39:01ID:yGl/RyVV >> 443
一般的に言えばゲームとかだと画像通りの当たり判定を用意したりしないと思うが…
# まぁゲームとはかぎらないけど…
一般的に言えばゲームとかだと画像通りの当たり判定を用意したりしないと思うが…
# まぁゲームとはかぎらないけど…
445名前は開発中のものです。
2009/09/04(金) 18:38:35ID:VrgUM9IL446名前は開発中のものです。
2009/09/04(金) 19:38:17ID:AW5ZeIiJ 陰影などで実際よりも大きくなってる絵の場合、
見た目より当たり判定が大きくなるのは嫌だな。
見た目より当たり判定が大きくなるのは嫌だな。
447名前は開発中のものです。
2009/09/04(金) 21:01:11ID:3y2blY+c C++でゲーム作るならツール作成用にサブ言語覚えるのは必須だよな
448名前は開発中のものです。
2009/09/04(金) 21:47:42ID:VrgUM9IL 自分はツール作成にVB 2005使ってた
449名前は開発中のものです。
2009/09/05(土) 01:06:11ID:BLuHc9Vl C++/CLI
450名前は開発中のものです。
2009/09/05(土) 11:39:35ID:5TqflyB5 悪いこと言わないから.NETならC#かVB使いなさい
451名前は開発中のものです。
2009/09/05(土) 14:06:19ID:6JitDinv やっぱり VB 2005 + C++/CLI + アンマネージコード(SSE使用)
C++/CLIではアンマネージコードを含むことができるので、速度がきわめて重要な部分に使う。
C++/CLIではアンマネージコードを含むことができるので、速度がきわめて重要な部分に使う。
452名前は開発中のものです。
2009/09/05(土) 14:20:26ID:BLuHc9Vl まぁ、小物はスクリプト系(そのときの気分で言語色々、場合によっては秀丸マクロも)
GUIが必要ならDelphiを使ってる
本格的なツールって大抵は既存のフリーでまかなえるし、データ整形がメインだから
秀丸とUWSCで間に合うよな
GUIが必要ならDelphiを使ってる
本格的なツールって大抵は既存のフリーでまかなえるし、データ整形がメインだから
秀丸とUWSCで間に合うよな
453名前は開発中のものです。
2009/09/05(土) 14:47:07ID:6JitDinv そしてさらに小物の場合はbashのシェルスクリプト
さらにさらに小物ならシェルスクリプトにせずbashシェルに長い1行で打ち込む
さらにさらに小物ならシェルスクリプトにせずbashシェルに長い1行で打ち込む
454名前は開発中のものです。
2009/09/05(土) 15:26:27ID:H9l9Obux SDLの話題ないんだな
455名前は開発中のものです。
2009/09/05(土) 16:13:51ID:6JitDinv SDL使いながら自前でソフトウェアレンダリングしてる人ってどれぐらいいるんだろ。
456名前は開発中のものです。
2009/09/05(土) 18:50:24ID:BLuHc9Vl 3Dのレンダリングのこと?ワイヤーフレームなら自前処理したことあるけど結構楽しいな
SDL/OpenGLは環境構築ややこしくて諦めたorz
今はいい解説サイト増えたからまたやってみようかな
SDL/OpenGLは環境構築ややこしくて諦めたorz
今はいい解説サイト増えたからまたやってみようかな
457名前は開発中のものです。
2009/09/10(木) 23:41:48ID:ouJOE5Kg 3D目的でSDL使うメリットって何かある?
458名前は開発中のものです。
2009/09/11(金) 02:16:55ID:V5iYPA+I459名前は開発中のものです。
2009/09/12(土) 16:14:02ID:AVCa/v68460名前は開発中のものです。
2009/09/12(土) 17:31:48ID:0lmv1+mo [GLUTを使用すべき場合]
瞬間的にウィンドウサイズを変更できるようにする場合。
簡単なプログラムをすばやく作成する場合。
[SDL+GLを使用する場合}
ウィンドウサイズを変更させたくない場合。
(ブルームエフェクトなどを使用する場合、ウィンドウサイズ変更時にエフェクト用の
バッファを割り当て直す必要がある)
音も鳴らす場合
瞬間的にウィンドウサイズを変更できるようにする場合。
簡単なプログラムをすばやく作成する場合。
[SDL+GLを使用する場合}
ウィンドウサイズを変更させたくない場合。
(ブルームエフェクトなどを使用する場合、ウィンドウサイズ変更時にエフェクト用の
バッファを割り当て直す必要がある)
音も鳴らす場合
461名前は開発中のものです。
2009/09/12(土) 17:44:22ID:Su1dcMt0 GLFWというものもあるね
gamedev.orgのスレではこれがプッシュされてたみたい
http://www.gamedev.net/community/forums/topic.asp?topic_id=444230
GLUTは長い間メンテされてないからあまりお勧めしないとかなんとか
gamedev.orgのスレではこれがプッシュされてたみたい
http://www.gamedev.net/community/forums/topic.asp?topic_id=444230
GLUTは長い間メンテされてないからあまりお勧めしないとかなんとか
462名前は開発中のものです。
2009/09/12(土) 18:37:25ID:nubInKl1 gl系は画像読み込みがものすごく不親切だった記憶がある
463名前は開発中のものです。
2009/09/12(土) 19:39:29ID:MwUmjNb/ 前にビットマップファイル作ってヘッダ消して読み込むってやらせてたけど
流石にこれは俺が悪いよな
流石にこれは俺が悪いよな
464名前は開発中のものです。
2009/09/14(月) 00:47:35ID:/xnNUQM4 オッス、おらニート
サマージャンボで3億円当たっちまってボーっと遊びまくってらこのスレ見つけたわけだ。
おまいらどうやって生活費まかなってんの。後学のためにおしえてくんろだぺ。
あ、俺もう寝るから、明日でもえぇよ。じゃーねぃ。?x2665;
サマージャンボで3億円当たっちまってボーっと遊びまくってらこのスレ見つけたわけだ。
おまいらどうやって生活費まかなってんの。後学のためにおしえてくんろだぺ。
あ、俺もう寝るから、明日でもえぇよ。じゃーねぃ。?x2665;
465名前は開発中のものです。
2009/09/16(水) 09:33:51ID:k4ZJL2/r GLFWは前に試してみたけどlinux環境ではスタティックリンクできなくて
フォーラム見たら作者が仕様だと開き直ってたので捨てた
Win前提なら問題ないみたいだけどそれじゃGLFW使う意味半減だからなあ
最近は改良されてるのかもしれないが…
フォーラム見たら作者が仕様だと開き直ってたので捨てた
Win前提なら問題ないみたいだけどそれじゃGLFW使う意味半減だからなあ
最近は改良されてるのかもしれないが…
466名前は開発中のものです。
2009/09/16(水) 11:00:02ID:StlQ+yhL そこでgleeですよ
467名前は開発中のものです。
2009/09/20(日) 01:42:21ID:/lXUq7jB HSPでSDL_BlitSurface呼ぶとエラーになる
もうねるし
もうねるし
468名前は開発中のものです。
2009/09/20(日) 05:27:05ID:zX6iAyXm HSPからSDL呼んで何か嬉しいことってあるのか・・・?
469名前は開発中のものです。
2009/11/03(火) 19:03:32ID:dUOYzCVS >>467
そろそろ起きろよ池田ァ!!
そろそろ起きろよ池田ァ!!
470名前は開発中のものです。
2009/11/04(水) 00:49:30ID:txEubNfN ドンだけ寝てんだよw
471名前は開発中のものです。
2009/11/08(日) 23:03:17ID:5mg8aONh OpenGLメンドくせーだのDirect3Dメンドくせーだの言うが
出来て損なことは何一つねえ
のだよ
偉い人にはそれがわからんのです。
出来て損なことは何一つねえ
のだよ
偉い人にはそれがわからんのです。
472名前は開発中のものです。
2009/11/10(火) 23:41:21ID:iS3PwIuY もう諦めたし
473名前は開発中のものです。
2009/11/13(金) 21:50:34ID:Q4b/jXV7 WindowsにおけるSDLはDirectXを利用しているんだけどな。
474名前は開発中のものです。
2009/11/13(金) 22:11:37ID:XT+fnpy7 DirectX5だっけか?
475名前は開発中のものです。
2009/11/13(金) 22:38:40ID:FHBMJcaz win32apiのラッピングライブラリじゃねえの
476名前は開発中のものです。
2009/11/14(土) 12:27:52ID:0S0r62R2 SDL+OpenGLでゲーム作ってます
ゲームの流れは
動作処理→描画→Swap→Delay
と
動作処理→Swap→描画→Delay
のどちらがよいのでしょうか?垂直同期待ちについてもよくわからないのでそこと包めて教えてください
ゲームの流れは
動作処理→描画→Swap→Delay
と
動作処理→Swap→描画→Delay
のどちらがよいのでしょうか?垂直同期待ちについてもよくわからないのでそこと包めて教えてください
477名前は開発中のものです。
2009/11/14(土) 12:29:23ID:0S0r62R2 二個目は動作処理→描画→Delay→Swapでした
連投申し訳ありません
連投申し訳ありません
478名前は開発中のものです。
2009/11/15(日) 23:04:16ID:zpJnzLrg 映像信号は左から右へ1ドットずつ、それを上から下へ1ラインずつ送っているんだ
下まで送りきった後、また上から送りなおすまでに若干の準備期間があって
その期間が来るのを待つのが垂直同期待ち
描画が終わったからと言ってすぐSwapしてしまうと、
送信前と送信後の境目で映像を切り替えてしまうことがあり
ちらついたように見えてしまう
これを俗にティアリングと呼んでいる
垂直同期待ちをする場合はSwapの前に必ずDelayが入る
下まで送りきった後、また上から送りなおすまでに若干の準備期間があって
その期間が来るのを待つのが垂直同期待ち
描画が終わったからと言ってすぐSwapしてしまうと、
送信前と送信後の境目で映像を切り替えてしまうことがあり
ちらついたように見えてしまう
これを俗にティアリングと呼んでいる
垂直同期待ちをする場合はSwapの前に必ずDelayが入る
479名前は開発中のものです。
2009/11/15(日) 23:29:35ID:C19h/pYA 言いたいことは分かるけど476が勘違いしそうだな
SDL_Delayとティアリングが起こるかどうかは直接関係ない。
垂直同期待ちを有効にしてある場合はティアリングが起きないように
Swap時に自動的に内部で待機が行われる(>>478のいうDelay)ので
描画とSwapの間にSDL_Delayを入れる必要はない。むしろ入れたら遅れすぎてしまうかも。
SDL_Delayとティアリングが起こるかどうかは直接関係ない。
垂直同期待ちを有効にしてある場合はティアリングが起きないように
Swap時に自動的に内部で待機が行われる(>>478のいうDelay)ので
描画とSwapの間にSDL_Delayを入れる必要はない。むしろ入れたら遅れすぎてしまうかも。
480名前は開発中のものです。
2009/11/15(日) 23:41:54ID:zpJnzLrg あぁそうだ。478で言うDelayはSDL_Delayのことじゃなくて、単なる待ち時間と捉えてくれ。
補足サンクス。
補足サンクス。
481名前は開発中のものです。
2009/11/16(月) 17:42:23ID:+8XK/sK6 >>476
Swap ってことはダブルバッファ使ってるって前提で言うと
1) 垂直同期待ち ON(SDL_GL_SetAttribute() で SDL_GL_SWAP_CONTROL に 1 を設定している)なら
SDL_GL_SwapBuffers() で自動的に垂直同期待ちするので SDL_Delay() などは必要ない。
処理→描画→SDL_GL_SwapBuffers()[自動でVBLANK待ち]
2) 垂直同期待ち OFF なら SDL_Delay() で適当な時間待って SDL_GL_SwapBuffers() を呼べばいいんじゃないだろうか。
処理→描画→SDL_Delay(適当)->SDL_GL_SwapBuffers()
1) はモニタのリフレッシュレート依存のフレームレートになる。
2) はティアリングするけど、自分でフレームレートの調整ができる。
ってとこじゃないだろうか。
ちなみに俺の環境(Debian) だと環境変数 __GL_SYNC_TO_VBLANK に
0 以外の値が入ってないと SDL_GL_SWAP_CONTROL に 1 を設定しても
垂直同期待ちしない。
Swap ってことはダブルバッファ使ってるって前提で言うと
1) 垂直同期待ち ON(SDL_GL_SetAttribute() で SDL_GL_SWAP_CONTROL に 1 を設定している)なら
SDL_GL_SwapBuffers() で自動的に垂直同期待ちするので SDL_Delay() などは必要ない。
処理→描画→SDL_GL_SwapBuffers()[自動でVBLANK待ち]
2) 垂直同期待ち OFF なら SDL_Delay() で適当な時間待って SDL_GL_SwapBuffers() を呼べばいいんじゃないだろうか。
処理→描画→SDL_Delay(適当)->SDL_GL_SwapBuffers()
1) はモニタのリフレッシュレート依存のフレームレートになる。
2) はティアリングするけど、自分でフレームレートの調整ができる。
ってとこじゃないだろうか。
ちなみに俺の環境(Debian) だと環境変数 __GL_SYNC_TO_VBLANK に
0 以外の値が入ってないと SDL_GL_SWAP_CONTROL に 1 を設定しても
垂直同期待ちしない。
482名前は開発中のものです。
2009/11/26(木) 19:03:17ID:CidvYtOP 質問ですが、
FR・LGのROMの0xF00000〜0xFDFFFFを
使っても大丈夫なのでしょうか
既出だったら申し訳ありません
FR・LGのROMの0xF00000〜0xFDFFFFを
使っても大丈夫なのでしょうか
既出だったら申し訳ありません
483名前は開発中のものです。
2009/11/30(月) 14:53:20ID:zYRTMWSr SDL_FULLSCREEN で真ん中に寂しく表示される場合があ
るけど、同じ SDL 使ってて mplayer とかはどんな解像
度でもちゃんと画面一杯に出るのは mplayer が頑張っ
てるってこと?
るけど、同じ SDL 使ってて mplayer とかはどんな解像
度でもちゃんと画面一杯に出るのは mplayer が頑張っ
てるってこと?
484名前は開発中のものです。
2009/11/30(月) 17:17:02ID:KrKp2mDg >どういう理由であれ、ハードウェアによる解像度変更ができない場合は
>一段階解像度の高いモードが使われ、黒い背景の中央に表示ウインドウが置かれます。
だから、例えば最低解像度が640*480の環境で320*240を指定するとそういう状態になる。
確実に画面いっぱいに表示したければ、SDL_ListModesで作成可能な解像度を調べて
適切な拡大処理をすれ。
>一段階解像度の高いモードが使われ、黒い背景の中央に表示ウインドウが置かれます。
だから、例えば最低解像度が640*480の環境で320*240を指定するとそういう状態になる。
確実に画面いっぱいに表示したければ、SDL_ListModesで作成可能な解像度を調べて
適切な拡大処理をすれ。
485名前は開発中のものです。
2009/12/01(火) 00:26:20ID:k3liZ+0u mplayerがどうしてるかは知らんけど、たぶんオーバーレイってやつだと
思うよ。SDL_CreateYUVOverlayで作れるけど、対応してればハード
ウェアで拡大してくれる。前にためしで使ってみたけど、色指定が面倒
だから使うのやめた。画面一杯に拡大しても、CPU使用率ほとんど
変わらないのは魅力的だったけど。
思うよ。SDL_CreateYUVOverlayで作れるけど、対応してればハード
ウェアで拡大してくれる。前にためしで使ってみたけど、色指定が面倒
だから使うのやめた。画面一杯に拡大しても、CPU使用率ほとんど
変わらないのは魅力的だったけど。
486名前は開発中のものです。
2009/12/01(火) 05:20:13ID:q115eOhs487名前は開発中のものです。
2009/12/01(火) 07:29:30ID:q115eOhs ffmpegのチュートリアルが詳しかった。
http://www.dranger.com/ffmpeg/tutorial02.html
http://www.dranger.com/ffmpeg/tutorial02.html
488名前は開発中のものです。
2009/12/01(火) 19:43:38ID:JC6VUAq8 一番いいのは、ユーザーに選択させること。
こっちは800x600前提で作ってりゃいい
こっちは800x600前提で作ってりゃいい
489名前は開発中のものです。
2009/12/01(火) 21:18:45ID:q115eOhs 描画部をアダプタパターン的にリファクタリングしてス
ケーラを挟むようにした。とりあえず RGB のままでソ
フト的にスケールさせて、アプリ側に問題ないようなら
オーバレイを試してみるよ。
ffmpeg のライブラリ使うと変換も楽そうだし。
http://www.dranger.com/ffmpeg/tutorial08.html
>>485
ヒントサンクス。
ケーラを挟むようにした。とりあえず RGB のままでソ
フト的にスケールさせて、アプリ側に問題ないようなら
オーバレイを試してみるよ。
ffmpeg のライブラリ使うと変換も楽そうだし。
http://www.dranger.com/ffmpeg/tutorial08.html
>>485
ヒントサンクス。
490名前は開発中のものです。
2009/12/05(土) 09:27:44ID:maU44PH4 ttp://cefiro.homelinux.org/topics/SDL/printable/setup-win32-mingw-1.1-20030402.html
を参考にMinGW5.1.6にsmpeg 0.4.4を入れようとしているのですがmakeに失敗します。
いくつかのサイトで-lstdc++が必要とのことで
cd smpeg-0.4.4
env LIBS="-lstdc++" sh configure --prefix=/mingw
make
エラーの内容は
undefined reference to 'SDL_XXX'
undefined reference to '__cxa_pure_virtual'
などです。SDLはインストール済みで/mingw/lib/libSDL.aはあります。
どなたか解決策をご存知ないでしょうか。
を参考にMinGW5.1.6にsmpeg 0.4.4を入れようとしているのですがmakeに失敗します。
いくつかのサイトで-lstdc++が必要とのことで
cd smpeg-0.4.4
env LIBS="-lstdc++" sh configure --prefix=/mingw
make
エラーの内容は
undefined reference to 'SDL_XXX'
undefined reference to '__cxa_pure_virtual'
などです。SDLはインストール済みで/mingw/lib/libSDL.aはあります。
どなたか解決策をご存知ないでしょうか。
491名前は開発中のものです。
2009/12/05(土) 13:04:40ID:xcDdDp0c492名前は開発中のものです。
2009/12/05(土) 21:38:18ID:maU44PH4 >>491
アドバイスありがとうございます。
コンパイルやリンクにc++の代わりにg++を使うようになったのですがエラーメッセージは変わらずです・・・
エラーを出力して調べてみたところ
Warning: This library needs some functionality provided by -lSDLmain.
I have the capability to make that library automatically link in when
you link to this library. But I can only do this if you have a
shared version of the library, which you do not appear to have.
と出ていました。SDLがリンクできていないのがエラーの原因のようですが上記メッセージと関係あるでしょうか?
ちなみにPATHを通したC:/MinGW/binにはSDL.dllというshared libraryがあります。
もし何かわかる方がいたらアドバイスください。
アドバイスありがとうございます。
コンパイルやリンクにc++の代わりにg++を使うようになったのですがエラーメッセージは変わらずです・・・
エラーを出力して調べてみたところ
Warning: This library needs some functionality provided by -lSDLmain.
I have the capability to make that library automatically link in when
you link to this library. But I can only do this if you have a
shared version of the library, which you do not appear to have.
と出ていました。SDLがリンクできていないのがエラーの原因のようですが上記メッセージと関係あるでしょうか?
ちなみにPATHを通したC:/MinGW/binにはSDL.dllというshared libraryがあります。
もし何かわかる方がいたらアドバイスください。
493名前は開発中のものです。
2009/12/05(土) 22:13:58ID:7PVQwHSV494名前は開発中のものです。
2009/12/05(土) 22:14:41ID:7PVQwHSV495名前は開発中のものです。
2009/12/06(日) 00:58:57ID:J5Ambf4a >>494
dllは/usr/local/binじゃなくて/mingw/binにインストールしたんですが、MSYSでecho $PATHとやると
.:/usr/local/bin:/mingw/bin:/bin:...
となっていてSDL.dllがおいてある/mingw/binはパスに入ってます・・・もうお手上げ
よく見たら
ttp://cefiro.homelinux.org/topics/SDL/printable/setup-win32-mingw-1.1-20030402.html
のサイトにMinGWでコンパイルしたsmpeg-0.4.4のバイナリがおいてあるのでそれを/mingwに展開したらとりあえず使えるようになりました。
dllは/usr/local/binじゃなくて/mingw/binにインストールしたんですが、MSYSでecho $PATHとやると
.:/usr/local/bin:/mingw/bin:/bin:...
となっていてSDL.dllがおいてある/mingw/binはパスに入ってます・・・もうお手上げ
よく見たら
ttp://cefiro.homelinux.org/topics/SDL/printable/setup-win32-mingw-1.1-20030402.html
のサイトにMinGWでコンパイルしたsmpeg-0.4.4のバイナリがおいてあるのでそれを/mingwに展開したらとりあえず使えるようになりました。
496名前は開発中のものです。
2009/12/06(日) 08:18:47ID:tD3g+RMw …
497名前は開発中のものです。
2009/12/27(日) 21:37:15ID:E6vqQ5Mm 同じプログラムでSDLをダイナミックリンクしたものと、スタティックリンクしたものを作成したのですが、
ダイナミックリンク版ではコンソールへ標準出力されていたものが
スタティックリンクでは出ないような現象が発生しています。
SDLのリンク方法によってこういう現象は発生するものなのでしょうか。
また、リンク方法が原因である場合、スタティックリンクで標準出力へ出力する方法は
あるでしょうか。
ダイナミックリンク版ではコンソールへ標準出力されていたものが
スタティックリンクでは出ないような現象が発生しています。
SDLのリンク方法によってこういう現象は発生するものなのでしょうか。
また、リンク方法が原因である場合、スタティックリンクで標準出力へ出力する方法は
あるでしょうか。
498名前は開発中のものです。
2009/12/28(月) 02:47:12ID:Fq5F3Q16499名前は開発中のものです。
2009/12/28(月) 02:50:41ID:ueppcxNQ なんだこのデジャブは
500名前は開発中のものです。
2009/12/28(月) 16:18:04ID:v3DIc8rS >>498
1ライブラリが本体のソースの動作まで変えてしまうものなんですね。
勘弁してほしいものですが...
--enable-stdio-redirect
ですかね。試してみます。
でも現状ではファイルにリダイレクトされてるわけでも無いようですが...
1ライブラリが本体のソースの動作まで変えてしまうものなんですね。
勘弁してほしいものですが...
--enable-stdio-redirect
ですかね。試してみます。
でも現状ではファイルにリダイレクトされてるわけでも無いようですが...
501名前は開発中のものです。
2010/01/02(土) 20:53:13ID:K2AtahHImakeしたら負けだと思う
502名前は開発中のものです。
2010/01/02(土) 22:20:06ID:WElBVpUZ 正月早々審議中ですがな
503名前は開発中のものです。
2010/01/03(日) 22:45:29ID:v00n4e/G floatに頼子だ割ったプログラムソースを目指す人のためのブランド「float志向」
504名前は開発中のものです。
2010/02/10(水) 06:01:03ID:42Ej3nDs SDL_MixerでBGMを任意の位置でループさせる方法はないものか・・・。
やっぱりSDL_Audioで作るしかないのかな
やっぱりSDL_Audioで作るしかないのかな
505名前は開発中のものです。
2010/02/10(水) 14:20:15ID:Epllauxu どうしてもSDL_Mixerでやりたきゃオーディオソースを切っちゃえばいいじゃん
どうせならOpenAL使おうぜ
どうせならOpenAL使おうぜ
506名前は開発中のものです。
2010/02/11(木) 20:04:23ID:eol/wS6u SDL_WM_SetCaptionで日本語を表示したいのですがどうすれば良いですか?
507名前は開発中のものです。
2010/02/11(木) 22:32:07ID:TYw/tKcb 最新バージョンだと文字コードがUTF-8だったと思うんで変換して渡せばいいはず。
変換の仕方はググって下さい。
変換の仕方はググって下さい。
508名前は開発中のものです。
2010/02/12(金) 05:23:48ID:50DkRwmT >>505
ありがとうございます
ありがとうございます
509名前は開発中のものです。
2010/02/20(土) 00:52:58ID:P6PcOv95 変換の仕方がわかりませんでした。
510名前は開発中のものです。
2010/02/21(日) 10:34:00ID:w53qIXyc こんなんあったよー。
Shift-JIS -> UTF8
ttp://www.atmark.gr.jp/~s2000/r/rtl/encode.html
ttp://www2s.biglobe.ne.jp/~satosi/soft/sjis2utf8.h
Shift-JIS -> UTF8
ttp://www.atmark.gr.jp/~s2000/r/rtl/encode.html
ttp://www2s.biglobe.ne.jp/~satosi/soft/sjis2utf8.h
511名前は開発中のものです。
2010/02/21(日) 16:56:39ID:3J1UUm0O IBMのICUを使おうぜ
512名前は開発中のものです。
2010/02/21(日) 19:59:42ID:ufBia+CD 変換できました。
UTF-8は可変長なのが糞。
UTF-8は可変長なのが糞。
513名前は開発中のものです。
2010/02/21(日) 23:58:24ID:EauoWI/j SDLdoc-jp を置いている tacoworks.jp の管理人です。
サーバの移転を行うため、3/15 のあたりに DNS 情報の切り替えを予定しています。
ドメイン名自体の変更はないので移転後も
ttp://www.tacoworks.jp/software/SDLdoc-jp/ のURL は
そのままアクセスできますが、
切り替えの時期に一時的に見えなくなるかも知れません。
もしそうなったら申し訳ありません。
サーバの移転を行うため、3/15 のあたりに DNS 情報の切り替えを予定しています。
ドメイン名自体の変更はないので移転後も
ttp://www.tacoworks.jp/software/SDLdoc-jp/ のURL は
そのままアクセスできますが、
切り替えの時期に一時的に見えなくなるかも知れません。
もしそうなったら申し訳ありません。
514名前は開発中のものです。
2010/02/27(土) 21:52:04ID:EEwTwLby openglを使う時に最初の画面が真っ白になるのを回避できませんか?
できれば画像を読み込んで、いきなりそれを表示したいのですが。
できれば画像を読み込んで、いきなりそれを表示したいのですが。
515名前は開発中のものです。
2010/03/04(木) 02:20:13ID:UchClD6H >514
もしかしてSDL_SetVideoModeしてから最初のSDL_GL_SwapBuffersを呼ぶまでの時間が長いんじゃないのか?
ファイルの読み込みとか
もしかしてSDL_SetVideoModeしてから最初のSDL_GL_SwapBuffersを呼ぶまでの時間が長いんじゃないのか?
ファイルの読み込みとか
516名前は開発中のものです。
2010/03/05(金) 22:08:24ID:hwXnLLqk いえ、別に何もしていませんが、最初の一瞬だけ真っ白になります。
それが嫌なのです。
それが嫌なのです。
517名前は開発中のものです。
2010/03/08(月) 13:08:12ID:CzYN7Tsj518名前は開発中のものです。
2010/03/08(月) 18:55:21ID:Bw1LtACR #include <SDL.h>
#include <SDL_opengl.h>
#include <windows.h>
#pragma comment(lib, "SDL.lib")
#pragma comment(lib, "SDLmain.lib")
#pragma comment(lib, "opengl32.lib")
void End(); // 終了処理
bool PollEvent(); // イベント処理
bool Init();
SDL_Surface *gScreenSurface;
int main(int argc, char* argv[])
{
// 初期化
if( !Init() ){
printf( "初期化に失敗しました" );
return 0;
}
// メインループ
while( 1 ){
glClearColor(1.0f, 1.0f, 1.0f, 0.0f);
glClear(GL_COLOR_BUFFER_BIT);
// 四角形を描く
glBegin(GL_QUADS);
// 描画色を白に設定
glColor3f(1.0, 0.0f, 0.0);
#include <SDL_opengl.h>
#include <windows.h>
#pragma comment(lib, "SDL.lib")
#pragma comment(lib, "SDLmain.lib")
#pragma comment(lib, "opengl32.lib")
void End(); // 終了処理
bool PollEvent(); // イベント処理
bool Init();
SDL_Surface *gScreenSurface;
int main(int argc, char* argv[])
{
// 初期化
if( !Init() ){
printf( "初期化に失敗しました" );
return 0;
}
// メインループ
while( 1 ){
glClearColor(1.0f, 1.0f, 1.0f, 0.0f);
glClear(GL_COLOR_BUFFER_BIT);
// 四角形を描く
glBegin(GL_QUADS);
// 描画色を白に設定
glColor3f(1.0, 0.0f, 0.0);
519名前は開発中のものです。
2010/03/08(月) 18:59:11ID:Bw1LtACR // 4つの頂点を指定
glVertex3f(100.0f, 100.0f, 0);
glVertex3f(540.0f, 100.0f, 0);
glVertex3f(540.0f, 380.0f, 0);
glVertex3f(100.0f, 380.0f, 0);
glEnd();
// 更新を画面に反映する
SDL_GL_SwapBuffers();
// イベント処理
if( !PollEvent() )break;
}
// 終了処理
End();
return 0;
}
// 初期化処理
bool Init()
{
// SDLの初期化
if( SDL_Init( SDL_INIT_VIDEO ) < 0 )return false;
SDL_WM_SetCaption("test", NULL);
SDL_GL_SetAttribute(SDL_GL_DOUBLEBUFFER, 1);
// ウィンドウの初期化
gScreenSurface = SDL_SetVideoMode(640,480,32,SDL_OPENGL | SDL_HWSURFACE);
glOrtho(0.0, 640, 480, 0.0, -1.0, 1.0);
glClearColor(255.0f, 255.0f, 255.0f, 255.0f);
glVertex3f(100.0f, 100.0f, 0);
glVertex3f(540.0f, 100.0f, 0);
glVertex3f(540.0f, 380.0f, 0);
glVertex3f(100.0f, 380.0f, 0);
glEnd();
// 更新を画面に反映する
SDL_GL_SwapBuffers();
// イベント処理
if( !PollEvent() )break;
}
// 終了処理
End();
return 0;
}
// 初期化処理
bool Init()
{
// SDLの初期化
if( SDL_Init( SDL_INIT_VIDEO ) < 0 )return false;
SDL_WM_SetCaption("test", NULL);
SDL_GL_SetAttribute(SDL_GL_DOUBLEBUFFER, 1);
// ウィンドウの初期化
gScreenSurface = SDL_SetVideoMode(640,480,32,SDL_OPENGL | SDL_HWSURFACE);
glOrtho(0.0, 640, 480, 0.0, -1.0, 1.0);
glClearColor(255.0f, 255.0f, 255.0f, 255.0f);
520名前は開発中のものです。
2010/03/08(月) 19:03:11ID:Bw1LtACR glClear(GL_COLOR_BUFFER_BIT);
return true;
}
// 終了処理
void End()
{
// SDLの終了
SDL_Quit();
}
// イベント処理
bool PollEvent()
{
SDL_Event ev;
SDLKey *key;
while(SDL_PollEvent(&ev) )
{
switch(ev.type){
case SDL_QUIT:// ウィンドウの×ボタンが押された時など
return false;
break;
case SDL_KEYDOWN:// キーボードからの入力があった時
{
key=&(ev.key.keysym.sym); // どのキーが押されたかを取得
if(*key==27){// ESCキー
return false;
}
}
}
}
return true;
}
return true;
}
// 終了処理
void End()
{
// SDLの終了
SDL_Quit();
}
// イベント処理
bool PollEvent()
{
SDL_Event ev;
SDLKey *key;
while(SDL_PollEvent(&ev) )
{
switch(ev.type){
case SDL_QUIT:// ウィンドウの×ボタンが押された時など
return false;
break;
case SDL_KEYDOWN:// キーボードからの入力があった時
{
key=&(ev.key.keysym.sym); // どのキーが押されたかを取得
if(*key==27){// ESCキー
return false;
}
}
}
}
return true;
}
521名前は開発中のものです。
2010/03/08(月) 19:07:50ID:Bw1LtACR 上のコードを試してみて下さい。
真っ白なウインドウが出てからちょっとしたら赤い四角形が出てくる
のですが、最初からいきなり赤い四角を表示したいのです。
真っ白なウインドウが出てからちょっとしたら赤い四角形が出てくる
のですが、最初からいきなり赤い四角を表示したいのです。
522名前は開発中のものです。
2010/03/08(月) 20:31:19ID:Kg6b0q6C >>521
OS: windowsXP sp3
コンパイラ: gcc version 3.4.5 (mingw-vista special r3)
コンパイルコマンド: g++ hogehoge.cpp `sdl-config --cflags --libs` -lglu32 -lglut32 -lopengl32
私の環境では初回起動時に一瞬、背景が透明なウィンドウが生成されてから、中身が表示されました。
二回目以降は最初から白の背景に赤い四角が表示されます。
OS: windowsXP sp3
コンパイラ: gcc version 3.4.5 (mingw-vista special r3)
コンパイルコマンド: g++ hogehoge.cpp `sdl-config --cflags --libs` -lglu32 -lglut32 -lopengl32
私の環境では初回起動時に一瞬、背景が透明なウィンドウが生成されてから、中身が表示されました。
二回目以降は最初から白の背景に赤い四角が表示されます。
523名前は開発中のものです。
2010/03/08(月) 23:00:18ID:vwTt08PI 通りすがり
OS : Linux 2.6.18-164.11.1.el5.centos.plus i686 i386
コンパイラ : cc (GCC) 4.1.2 20080704 (Red Hat 4.1.2-46)
コマンド : cc piyo.cxx `sdl-config --cflags --libs` -lglut
背景が黒のウィンドウができてから白の背景に赤の矩形が表示された
OS : Linux 2.6.18-164.11.1.el5.centos.plus i686 i386
コンパイラ : cc (GCC) 4.1.2 20080704 (Red Hat 4.1.2-46)
コマンド : cc piyo.cxx `sdl-config --cflags --libs` -lglut
背景が黒のウィンドウができてから白の背景に赤の矩形が表示された
524名前は開発中のものです。
2010/03/09(火) 01:09:04ID:Vf4aRsZC SDLがウィンドウ関連の処理にてこずってるようにも見える。
苦肉の策として サイズ(1 x 1) でウィンドウを作っておいてから
初期化が終わったあとでサイズ変更(or 作り直す)すると
まだマシかもしれない。
苦肉の策として サイズ(1 x 1) でウィンドウを作っておいてから
初期化が終わったあとでサイズ変更(or 作り直す)すると
まだマシかもしれない。
525名前は開発中のものです。
2010/03/09(火) 20:29:54ID:cbWSj+ct 関係ないけど
>glClearColor(255.0f, 255.0f, 255.0f, 255.0f);
これ変じゃない?
>glClearColor(255.0f, 255.0f, 255.0f, 255.0f);
これ変じゃない?
526名前は開発中のものです。
2010/03/09(火) 22:19:00ID:SrDy9O7H 画面上をクリックするゲームを作ってるんですが、
画面上でマウスカーソルを動かしまくるとイベントを受け付けないフレームが出てきます。
どうすればいいですか。
画面上でマウスカーソルを動かしまくるとイベントを受け付けないフレームが出てきます。
どうすればいいですか。
527526
2010/03/09(火) 23:01:04ID:SrDy9O7H すいません。自己解決しました。
イベントキューからイベントを取り出してないだけみたいでした。
イベントキューからイベントを取り出してないだけみたいでした。
528名前は開発中のものです。
2010/05/16(日) 18:10:10ID:06+3luLg 下のコード動かすと画像表示しないで画面が真っ黒になります。
イベントハンドラのセット(SDL_SetEventFilter(&filterEventsHandler);)
を画像転送の後に配置すると画像表示されるんですけど
そういうものなんですか?何かルールありますのですか?
以下ソース(D言語)
-----------
void main()
{
SDL_Init(SDL_INIT_VIDEO);
SDL_Surface *screen = SDL_SetVideoMode(640, 480, 0, SDL_SWSURFACE);
SDL_SetEventFilter(&filterEventsHandler); // イベントハンドラ
// ビットマップ読込
SDL_Surface *image = SDL_LoadBMP("hell.bmp");
// 転送
SDL_BlitSurface(image, cast(SDL_Rect*)0, screen, cast(SDL_Rect*)0);
// イベントループ
bool done = false;
SDL_Event e;
while ( !done ) {
while ( SDL_PollEvent(&e) ) {
done = e.type == SDL_QUIT;
}
SDL_Delay(1000/30);
}
SDL_Quit();
}
イベントハンドラのセット(SDL_SetEventFilter(&filterEventsHandler);)
を画像転送の後に配置すると画像表示されるんですけど
そういうものなんですか?何かルールありますのですか?
以下ソース(D言語)
-----------
void main()
{
SDL_Init(SDL_INIT_VIDEO);
SDL_Surface *screen = SDL_SetVideoMode(640, 480, 0, SDL_SWSURFACE);
SDL_SetEventFilter(&filterEventsHandler); // イベントハンドラ
// ビットマップ読込
SDL_Surface *image = SDL_LoadBMP("hell.bmp");
// 転送
SDL_BlitSurface(image, cast(SDL_Rect*)0, screen, cast(SDL_Rect*)0);
// イベントループ
bool done = false;
SDL_Event e;
while ( !done ) {
while ( SDL_PollEvent(&e) ) {
done = e.type == SDL_QUIT;
}
SDL_Delay(1000/30);
}
SDL_Quit();
}
529528
2010/05/16(日) 18:22:50ID:06+3luLg SDL_Flip( screen );
したら表示されました。イベントハンドラ設定したら
プライマリサーフェイスがクリアされるとか・・・?
わからねえ
したら表示されました。イベントハンドラ設定したら
プライマリサーフェイスがクリアされるとか・・・?
わからねえ
530名前は開発中のものです。
2010/05/16(日) 18:29:59ID:liwIcFmL SDL_SetVideoModeのことろで、
SDL_DOUBLEBUFも指定しない場合、
SDL_Flip以外でも「誤って」画面表示される場合があります。
SDL_DOUBLEBUFも指定しない場合、
SDL_Flip以外でも「誤って」画面表示される場合があります。
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 日本と中国を結ぶ12航空路線で全便欠航 中国人に最も人気の海外旅行先は日本から韓国に [ぐれ★]
- 【速報】トランプ大統領、中国の習近平国家主席を「国賓」として招待することに ★2 [ニョキニョキ★]
- 米中電話会談、トランプ氏は「米国側は中国にとっての台湾問題の重要性を理解する」 [1ゲットロボ★]
- 【国際】トランプ氏、来年4月に中国を訪問する招待を受け入れる 習氏も国賓で訪米へ 電話会談 [ぐれ★]
- 【音楽】「なんでこんなバカが国のトップなの?」 若者に人気のバンド「GEZAN」のマヒトゥ・ザ・ピーポーが高市総理に苦言 [シャチ★]
- 【東京・足立の車暴走】赤信号無視か 危険運転致死傷疑いも視野に捜査 逮捕された職業不詳の男性(37)は精神疾患で通院歴も ★3 [ぐれ★]
