[過去ログ] SDLスレ (987レス)
上下前次1-新
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
786: 名前は開発中のものです。 [sage] 2005/05/09(月) 12:31:19 ID:X842fXoJ(1) AAS
OpenGL使ってるなら、WGLにアウトラインフォントを描画する関数があったはず。それだとWin専用になってしまうけど。
ビットマップフォントでも良いならgl_kanjiがよろしいかと。
787(1): 782 [sage] 2005/05/09(月) 19:59:22 ID:2WAlRLk2(1) AAS
>TTF_RenderUTF8_Solid() で作ったSDL_Surfaceを
>どうやって描画してやればいいのかが分かりません。
>幅と高さが2の累乗でないのでうまく行かず...
とりあえず、SDL_ttfのサンプルであるglfont.cが
SDL_ttfのソースと一緒にあるので、それを見ていただければ、
大体のことは分かると思います。
見てもよう分からんというときには、また聞いてください。
788(1): 781 [sage] 2005/05/09(月) 22:12:34 ID:kc7J0Eit(1) AAS
>>787
そんなところにサンプルがあったのですね。全く気がつきませんでした。
早速サンプルを元にして試してみたら無事ttfからテクスチャを作って
描画することが出来ました(日本語は文字化けしてしまいますが)。
助言してくださった皆様、どうもありがとうございました。
789(1): 名前は開発中のものです。 [sage] 2005/05/10(火) 03:45:21 ID:iTBS7Jyy(1/2) AAS
>>788
OpenGL で TrueTypeフォント使って文字列描画したいなら SDL_ttf なんて使わずに
FTGL ( 外部リンク[html]:homepages.paradise.net.nz )
を使うと幸せになれると思う.
outilne,texture,bitmap,pixmap とかの好きな方法でレンダリングできるよ
あと SDL_ttf で日本語が化けるのは使ってるフォントが bitmap フォントが
埋め込まれた TrueType フォントだとダメとかなかったっけ?
文字列がUTF8じゃないってことはさすがにないよなぁ...
790(1): 781 [sage] 2005/05/10(火) 11:15:14 ID:/sZ8aOiM(1) AAS
>>789
そのまさかで文字列がUTFじゃないようです(Shift-JISなのかな?)。
TTF_RenderText_Solid()を使っているのですが他のを使えば良いのでしょうか。
それとも文字コードをUTF8に変換するプログラムを書けば良いのでしょうか。
791: 名前は開発中のものです。 [sage] 2005/05/10(火) 19:58:16 ID:iTBS7Jyy(2/2) AAS
>>790
なんてゆーか文字コード以前の問題だろ…
TTF_RenderText_Solid() はLATIN1なテキストしか通らんよ.
できたらマニュアルくらい読んでくれ.
外部リンク[html]:jcatki.no-ip.org
792: 782 [sage] 2005/05/10(火) 20:14:19 ID:c/mddx9W(1) AAS
>あと SDL_ttf で日本語が化けるのは使ってるフォントが bitmap フォントが
>埋め込まれた TrueType フォントだとダメとかなかったっけ?
msgothic.ttcの場合はSolidなら大丈夫、
ShadedやBlendedだと22pt以下はダメですね。
この問題だと化けるのは日本語だけではありませんが。
>それとも文字コードをUTF8に変換するプログラムを書けば良いのでしょうか。
UTF8かUnicodeに変換する必要があります。
フリーのフォントや文字コードについての話が
外部リンク[html]:tokyo.cool.ne.jp
でも行われているので、お悩みなら参考になるでしょう。
793(1): 名前は開発中のものです。 [sage] 2005/05/11(水) 01:00:39 ID:irIlrbEI(1) AAS
msgothicでもTT_CONFIG_OPTION_EMBEDDED_BITMAPSをundefしてfreetype再コンパイルすれば22pt以下も表示できた気が
794: 名前は開発中のものです。 [sage] 2005/05/11(水) 17:06:15 ID:ChV6SFiM(1) AAS
SDL_ttf は埋め込みビットマップフォントのある TrueTypeFont を読むと、
埋め込みビットマップの存在するサイズを指定するだけで
アウトラインフォントを無視して強制的に埋め込みビットマップフォントの方を使うんだよ。
でもそのための処理は入ってない。だから化けてる。
>>793 は SDL_ttf が内部で使ってる freetype の埋め込みビットマップ処理そのものを潰して対処してる。
なんだかなー。俺も他のライブラリ使った方がいいと思う。
795: 781 [sage] 2005/05/12(木) 15:13:44 ID:gBvQuFFy(1) AAS
皆様アドバイスありがとうございます。
mbstowcs()を使ってUNICODEに変換してTTL_RenderUNICODE_Blended()
を使うことで無事日本語を表示することが出来ました。
取りあえず22pt以下の場合はTTL_RenderUNICODE_Solid()を使って表示
することにしています。他にもライブラリがあるようなのでぼちぼち
調べてみようかと思います。どうもありがとうございました。
796: 名前は開発中のものです。 [] 2005/06/25(土) 16:10:39 ID:kpes39YP(1) AAS
軽めのGUIライブラリーってどれ?
多くてわかんない
797(1): 名前は開発中のものです。 [sage] 2005/06/26(日) 17:35:22 ID:zg82OFD2(1) AAS
今日(1時間前)からSDLを使い始めたものですが、
>>771の発言のおかげで外部リンク:tokyo.cool.ne.jpの一番雛形が通りました。
Thx!!
798: 名前は開発中のものです。 [sage] 2005/06/26(日) 23:25:16 ID:Expiz02r(1) AAS
>>797
久しぶりにそこのぞいたけど、新しい記事とか解説はなかったな
カウンタが1000越えてるな
たしか>>633が77ゲッツしてたんだよな、懐かしい
799(3): 名前は開発中のものです。 [sage] 2005/06/27(月) 08:01:33 ID:3Ab5ewvX(1/2) AAS
質問です。
2つあるんですが、
1個目、SDLの標準機能で2枚目のウインドウを作ることってできるんでしょうか?
2個目、SDLの標準機能でC言語標準のscanfやらfgets(from stdin)やらのように、ユーザーに要求を求めるようなことって可能でしょうか?
2個目は1個目ができればハードコードで作ることも可能そうですが、ちょっと面倒な気がします。
よろしくお願いします。
800: 名前は開発中のものです。 [] 2005/06/27(月) 08:02:17 ID:3Ab5ewvX(2/2) AAS
AGE!!
801: 名前は開発中のものです。 [sage] 2005/06/27(月) 23:12:40 ID:YfSmd5eY(1) AAS
>>749749(4): 名前は開発中のものです。 [sage] 05/02/15 20:48:20 ID:6CIQh+IC(1) AAS
前から 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 でしかテストしてないのかね。
GetAncestor(SDL_Window, GA_ROOT);
がとおらないのは
WINVER=0x0500とでも
C/C++ -> プリプロセッサ -> 定義
に入れると解決。
という遅レス
あとafxres.hなんてMFC入れればあるんじゃね?
802(1): 799 [sage] 2005/06/28(火) 01:25:30 ID:xvJWzK7X(1/3) AAS
一日で一レスか。
こりゃ参ったなー。
作りたいものへのモチベーションも下がってきたし、一端とりさげるかな。
803: 802 [sage] 2005/06/28(火) 01:55:33 ID:xvJWzK7X(2/3) AAS
再度検索してみたら、2000年の時点の話だが、対応してないというページを見つけた。
外部リンク:risky-safety.org
804(2): 名前は開発中のものです。 [sage] 2005/06/28(火) 02:06:28 ID:pKbCq+nM(1) AAS
>>799
1個目:
FAQだと思うが、改めてソースを見たところ、SDL_VideoInit()がcurrent_videoと言う
グローバル変数にビデオデバイス情報を格納していて、それを切り換えるAPIもない。
ロックせずに使用してるので、スレッド化も無理。
そもそもウィンドウという概念はない。
2個目:
コンソールを使いたいのか?だとすると開発環境によるだろうな。
俺は、MinGWを使ってるがこれだと無理っぽい。cygwinなら出来るだろうが、
cygwin上でSDLを動かしたことないんでよーわからん。
805(2): 名前は開発中のものです。 [sage] 2005/06/28(火) 02:21:39 ID:dyIcBP9c(1/2) AAS
>>799
どこかで既出だろう+試せば判るだろと思って黙ってたんだが。
ひとつめ、二つ以上のウィンドウは出せんとwebのどこかで読んだな。
ソースを見てもグローバル変数(Windows なら HWND SDL_Window)を
使ってそこらじゅうで使いまわしてるから、まず無理だろうと思う。
ふたつめ、起動した時にDOS窓(これも Windows の話だが)が出ているならできる。というかできた。
Windows の場合、設定によってはstdoutをstdout.txtにリダイレクトして、
DOS窓を出さないこともできるが、その場合はできなかった。
ソースは見てないが多分無理だろうな。
806(1): 805 [sage] 2005/06/28(火) 02:30:05 ID:dyIcBP9c(2/2) AAS
と書いてる端から被ったか……。全く食いつきがいいよな俺ら。
>>804と俺で書いてることが微妙に違うが、
ひとつめの違いは>>804が機種独立の部分を見て、
俺が機種依存の部分を見て喋ってるせい。
ふたつめは環境の違いで、俺の環境(VC6)ではどちらも作れる。
MinGWとCygwinはどちらかができるんなら
両方できるんじゃないかと思うがどちらも知らんからわからんなあ。
と、聞かれてもいないが補足しとく。
807: 名前は開発中のものです。 [sage] 2005/06/28(火) 04:03:09 ID:xvJWzK7X(3/3) AAS
>>804-806
レスthx
1個目について、
なるほど、グローバル変数つかってるのか。
そりゃ、切り分けが大変そうだ。
明快な回答に感謝。
2個目に付いて、
えーっと、誤解を招いたようだけど、
要はscanfとか自体を使うのではなく、自前か何かで実装できないかって、話です。
それが、SDL標準であったら良かったんですけど、なさげですね。
2枚目のウインドウがでるなら、そっちのサーフェスとキー入力を捻って入力コンソールを作ることができたんでしょうけど・・・。
あと、
作りたいソフトを超えるソフトを見つけてしまったので一端引くことにしました。
それが、ちょうどイメージしてた物に近かったため、それでいいかなと思っています。
回答ありがとうございました。
808(9): 名前は開発中のものです。 [] 2005/07/05(火) 04:30:00 ID:zWniNiIr(1/10) AAS
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
809: 808 [sage] 2005/07/05(火) 04:38:10 ID:zWniNiIr(2/10) AAS
補足です。
ウィンドウモードでリフレッシュレートは85Hzです。
画像を描画させなければ130FPSほどでますがFlipだけで130FPSってのはちょっと遅いですよね?
810: 名前は開発中のものです。 [sage] 2005/07/05(火) 11:23:53 ID:Arb1ZSmv(1) AAS
SDLってイイとか言われているけど
実は描画が遅いんだよね
上下前次1-新書関写板覧索設栞歴
あと 177 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.023s