[過去ログ] SDLスレ (987レス)
1-

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
359: 名前は開発中のものです。 [] 04/01/22 13:27 ID:+O9pXp3N(1) AAS
>>343
343(4): ぁきまさ [sage] 03/12/31 10:27 ID:uPGIOmXx(1) AAS
DirectXforVB→SDL→DirectXに移ってみた者ですが、
感想としては、DirectXめんどくさすぎです…。
SDLなら一行でできることをDirectXでは長々と書かなければいけないのは苦痛です。
そのくせ、SDLならマルチプラットフォームを簡単に実現できることを考えるとDirectXでやることは考えられません。

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

SDLでOpenGLを使って複雑なシーンを構築する際、
DirectXにはXFileというとっても楽ちんなものがありますが、
OpenGLにはそれに相当する物はあるのでしょうか?
外部ファイルによる物体の表示だけならまだしも、
アニメーションまでやろうとするとそれだけでかなり労力を割かれて萎える気がするのですが…。
こんな便利なライブラリがある。
外部リンク[html]:www1.seaple.icc.ne.jp
日本語の情報ページは、今の所このサイト位らしい。
もったいないからどんどん活用すべし。
360: 名前は開発中のものです。 [sage] 04/01/22 17:42 ID:viuBoj2b(1) AAS
>>357
357(1): 名前は開発中のものです。 [] 04/01/12 10:30 ID:oW00NT9Y(1) AAS
【ゴールデンレス】
このレスを見た人はコピペでもいいので
10分以内に3つのスレへ貼り付けてください。
そうすれば14日後好きな人から告白されるわ宝くじは当たるわ
出世しまくるわ体の悪い所全部治るわでえらい事です
そのコピペの頭の悪そうな感じが大好き。
361: 名前は開発中のものです。 [sage] 04/01/24 00:42 ID:gl5Pax92(1) AAS
>>343
外部リンク:cal3d.sourceforge.net
これもなんとなくよさげっぽ?
362
(6): 名前は開発中のものです。 [sage] 04/02/01 22:25 ID:VsJKdPiS(1) AAS
フルスクリーンにしてSDL_FillRect使うとものすうんごく遅いんですが、
こんなもんなんでしょうか?
SDL_FillRectを使わなければ60fpsくらい出るものが1以下に...
363
(1): 名前は開発中のものです。 [sage] 04/02/03 17:19 ID:0RlVpYsz(1) AAS
>>362
あなたの環境でフルスクリーンでSDL_FillRect使って
ものすうんごく遅くなる最小限のサンプルプログラムを
示してくれればみんなテストしてくれると思うよ?
364: 362 [sage] 04/02/04 11:41 ID:URHwb4SZ(1/3) AAS
>>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);
}
365: 362 [sage] 04/02/04 11:44 ID:URHwb4SZ(2/3) AAS
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が入っています。
366: 362 [sage] 04/02/04 11:50 ID:URHwb4SZ(3/3) AAS
っと、ここまで貼ったのですが、このプログラムの場合、
フルスクリーンにしたときにFPSが下がるのではなく、
何も写らなくなってしまいます。

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

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

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

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

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

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

どっかに実際に使ってるdemoとかgameありませんか?
375: 名前は開発中のものです。 [sage] 04/03/13 09:27 ID:F3vxQxJh(1) AAS
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(1/2) AAS
ドキュメントを読む限り、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: 名前は開発中のものです。 [sage] 04/03/13 12:58 ID:KWP+lz2i(2/2) AAS
× if (SDLNet_SocketReady(serversock)) {
○ if (SDLNet_SocketReady(sock[i])) {
だった。

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

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

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

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

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

自分はVC6で、今やってみたら1.2.7も普通にコンパイルできますな。
1-
あと 604 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.025s