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

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
516: 名前は開発中のものです。 [sage] 04/08/22 00:00 ID:HGFZMTgG(1) AAS
>>515
515(1): 名前は開発中のものです。 [sage] 04/08/21 23:52 ID:H0unQWjV(3/3) AAS
>>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
もう二度とプログラミングには手をつけませんから許してください。
冗談だと思うけど…
がんがれ!
んな事(゚ε゚)キニシナイ!!でプログラム書きまくれ!
517: 508 [sage] 04/08/22 00:02 ID:pseiC9zk(1) AAS
>>510
510(3): 名前は開発中のものです。 [sage] 04/08/21 10:32 ID:FvC1IsvO(1) AAS
>>506
SDL_SoftStretch は?あまし勧められた API でも無いみたいだけど。
>>509
SDL_ListModes は?一番大きいのを取れば多分良いかな…
おお、そんな隠しAPIがあるとは知らなかったですよ。thanks
とりあえずソースからコピればGPLとしては使えるわけか。

ぐぐってみたら、メーリングリストに506氏と同じ疑問が書いてあって
面白かった。
外部リンク[html]:www.libsdl.org
518: 506 [sage] 04/08/22 01:04 ID:WvVrOjz5(1/2) AAS
>>508
508(2): 名前は開発中のものです。 [sage] 04/08/21 01:17 ID:wDjE80nx(1) AAS
>>506
SGEを使う手がある(sge_transform)。
外部リンク[html]:www.etek.chalmers.se

正直、俺もネイティブSDLで使える方法があったら知りたいです
サンクス。sge_transform_surfaceってやつですかね。

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

>>510
SDL_SoftStretch、検索してみたけどうまく見つかりません。
もうちと捜索してみます。
519
(1): 名前は開発中のものです。 [sage] 04/08/22 23:02 ID:WvVrOjz5(2/2) AAS
fpsをカウント表示するようにしたんですが、
フルスクリーンではfpsがリフレッシュレートと同じになったんですが、ウィンドウモードではとんでもなく多くなります。

アニメーションはSDL_GetTicksの値を利用しているので、早くなったりすることは無いですが、CPU時間は猛烈に食っていますよね。
ウィンドウ時になにか対策したほうがいいですか?
520: 名前は開発中のものです。 [sage] 04/08/23 01:09 ID:JruymYaP(1) AAS
>>519
次のフレームまでの間に時間が余ってる間はSDL_Delay(0)でループさせるとか。
521
(2): 名前は開発中のものです。 [sage] 04/08/23 02:20 ID:4IY4L0bN(1) AAS
日本語の表示にSDL_kanji_f1bを使おうと思っているんだけど、
付属のサンプルがうまく動いてくれない・・・。

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

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

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

screen は kanji_PutText とかでも使ってるし text は kanji_CreateSurface 内でエラーチェックがあるから、
少なくともポインタが NULL になることはなさそうなんだがなあ。
523
(3): 名前は開発中のものです。 [sage] 04/08/25 21:13 ID:EcBBkrxH(1) AAS
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です。
524: 521 [sage] 04/08/26 00:18 ID:bQrcHUhr(1) AAS
>>522
わざわざ試してくれてサンクス。
デバッガで追ってみたけどkanji_CreateSurfaceも成功してて、
SDL_BlitSurfaceの中まで行ったけどアセンブラばっかりで
よく分からなかったよ・・・。

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

>>523
BCCは使ってないのでワカランのだが、
VC6用のバイナリ一式をimplibでBCC用に書き換える
っていうのじゃダメなん?
525
(2): 名前は開発中のものです。 [sage] 04/08/26 01:04 ID:c70JkN3E(1/3) AAS
>>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 を消す必要があると思うんだが、
なんでか残したままでも問題なかったな。

で実はこれをクリアしても他にも問題が出てきた。それも適当に対処できたから次に続く。
526
(1): 525 の続き [sage] 04/08/26 01:23 ID:c70JkN3E(2/3) AAS
そのままビルドするとコンパイルは通るんだがリンクの段になって
「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
(1): 名前は開発中のものです。 [sage] 04/08/26 14:19 ID:JtN6FZlL(1/2) AAS
>>525
ありがとうございます。何故かmakeはILinkで止まってしまいましたが…。
SDLのソースをちょっと弄って使いたい場合はimplibだと無理ですよね?
色々ぐぐってみたところ
外部リンク[html]:www.mediawars.ne.jp
にSDLmain.libの修正方法が書いてありましたがSDL_dibevents.c
辺りを弄って使いたい場合にはどうすればいいのでしょうか…
そういえばmakeはobjファイルを参照しているということは一度ソースから
objファイルを生成してからmakeしないと変更が反映されないんですかね?
makeの仕組みが未だによく分かってません…。
528: 525 [sage] 04/08/26 19:11 ID:c70JkN3E(3/3) AAS
>>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
(8): 名前は開発中のものです。 [sage] 04/08/26 22:50 ID:JtN6FZlL(2/2) AAS
あ、よく見たらビルドできてました。
いや、SDLからIMEの文字列を取得しようと思ったんですが、そのままだと
メッセージが取得できないらしくて、少しソースを書き換える必要が出てきたんですよ。
何にせよとりあえずはこれでうまく出来そうです。ありがとうございました。
530: sgi rocks [sage] 04/08/27 00:50 ID:fcNUInF8(1) AAS
最近、SDLとOpenGLでゲームを作っているのですが、
日本語入力のあたりでどうしようか考えてしまっています。
SDLは素晴らしいのですが、日本語入力が絡んで来ると、
せっかくマルチプラットフォームなのが有効に利用できないので、
皆で、SDLで動く日本語入力機構を作りませんか?

各々のOSの入力機構を使うか、それそのものを作るかもなにも決まってませんが、
今のところ、WindowsではIME、LinuxではXIMかIIIMFを使うといいかな、
と思っていたりします。
531: 名前は開発中のものです。 [sage] 04/08/27 10:41 ID:hR9vryWf(1/3) AAS
2chスレ:gamedev
前にもそういう話はあったみたいだけど、
SDL でそういうことをやるのは結構難しいみたいだね。

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

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

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

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

↓続く
536: 531 ◆pm4Rr1N8T6 [sage] 04/08/27 18:28 ID:hR9vryWf(3/3) AAS
SDL で対応してるウィンドウシステムはよくわからないんだけど、
SDL_SysWMinfo の定義には
・X11
・Nano-X
・Win32
・RiscOS
があるね。
BeOS とか Amiga とかは最初は無視しといていいかな。
Mac はどうしよう。随分前に調べたんだけど情報を見付けることができなかった。

情報リンク
外部リンク[html]:home.catv.ne.jp
日本語入力プログラミング
外部リンク[html]:www.hmug.org
XmbLookupString() の man (ごめん、UNIX よくわからない)
外部リンク[htm]:www.kumei.ne.jp
IME の操作@猫でもわかるプログラミング
537: sgi_rocks [sage] 04/08/28 00:26 ID:IBxR98vc(1/2) AAS
せっかくマルチプラットフォームな環境で走るSDLなので、
共通のAPIを提供しておいて、そのAPIが各々のOSの
ネイティブな入力機構を使うのに賛成です。

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

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

入力している時の、変換候補などの表示や、入力欄の事を考えると、
そこだけ他のGUIと違ってしまうのも変な感じがしなくもないのです。
簡単なGUIも一緒に提供するのも良いかもしれない、と思うのですがどうでしょう。
539: 529 [sage] 04/08/28 13:34 ID:D9fRqR5k(1) AAS
>>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(1) AAS
>>538
とりえあず日本語入力機構だけを提供した方がいいと思います.

GUIは結局アプリケーション作る人次第な気がするので…
1-
あと 447 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.029s