トップ «前の日記(2009/10/30) 最新 次の日記(2009/11/04)» 編集

SikabaneWorksが関係するコンテンツ(主に*band系ローグライク)の開発近況・補足から全く個人的な雑記まで。

[WEB:屍の見える丘公園]| [RSS]

Angband | Badiashimshe | C# | CRAUZEL | D'angband/小説草稿 | D'angband/開発 | DarkSouls | Demon'sSouls | DungeonCrawl | ElvenUteruses | Haskell | Hengband | J9シリーズ | LEGO | LineDrawing | MISC | MTG | Mac | Math | Moria | R-18 | Roguelike | Rough | RoughSketch | Ruby | SDL | UNIX | VMware | WarHammer | Zangband | アタシラヂョウヲウ | イラスト | ガジェット | ゲーム | ゲーム紹介 | ゲーム製作技術 | ゲーム論 | スケッチ | ツクール | テクノロジー | ニコニコ動画 | ファルコム | ファンタジー | マリオ | ヴィーヤウトゥムノ | 別記事追加予定 | 変愚蛮怒 | 変愚蛮怒/スポイラー | 変愚蛮怒/元ネタ探訪 | 変愚蛮怒/攻略 | 変愚蛮怒/開発 | 宗教 | 情報 | 政治 | 文字コード | 日ペ昔話 | 東方 | 東方ワンドロ | 東方外法漢女 | 歴史 | 漫画製作 | 版権絵 | 画像処理 | 翻訳 | 自然言語 | 艦隊これくしょん | 落書き | 言語解析 | 読書 | 超人ロック | 追記予定 | 通信 | 鉄獄旅慕情 | 阿片窟 | 馬鹿馬鹿蛮怒/開発 | 魔法少女まどか☆マギカ | 魚類版深夜の真剣お絵描き60分一本勝負


2009/11/03

[SDL]ビデオメモリ上にサーフェスが展開できない…と思いきや

(※同日修正)

バディアシムシェ製作上で発生した問題。当初は自分のコードかRuby/SDL上での問題かと思いきや、SDLライブラリ上でどうも問題が発生している模様。

まず、自機のノートThinkPad x31でSDL::Screen.infoを出力した結果がこれ

<SDL::VideoInfo:0x2f4eba4 @blit_sw_CC=false, @blit_hw_A=false, @blit_hw=false,
@hw_available=false, @video_mem=0, @blit_sw_A=false, @blit_sw=false, @blit_hw_CC
=false, @wm_available=true, @bpp=32, @blit_fill=false>

アクセラレーション関係全滅。 次に以前作ったVisualC++ & SDLでの簡単なアクションゲーム上でSDL_GetVideoInfo();をのぞくと

	hw_available	0	unsigned int
	wm_available	1	unsigned int
	UnusedBits1	0	unsigned int
	UnusedBits2	0	unsigned int
	blit_hw	0	unsigned int
	blit_hw_CC	0	unsigned int
	blit_hw_A	0	unsigned int
	blit_sw	0	unsigned int
	blit_sw_CC	0	unsigned int
	blit_sw_A	0	unsigned int
	blit_fill	0	unsigned int
	UnusedBits3	0	unsigned int
	video_mem	0	unsigned int

やはりアクセラレーションが全部効かない。

とどめにSDLのサンプル、testsprite.cでは各種モードでの描画処理やそのFPSを計測できるがその結果

・通常

Screen is at 8 bits per pixel
Screen is in system memory
Sprite is in system memory
Sprite blit uses RLE acceleration
230.12 frames per second

・ハードウェアサーフェス

Screen is at 8 bits per pixel
Screen is in system memory
Sprite is in system memory
Sprite blit uses RLE acceleration
234.64 frames per second

・フルスクリーン

Screen is at 8 bits per pixel
Screen is in system memory
Sprite is in system memory
Sprite blit uses RLE acceleration
394.23 frames per second

・ハードウェアサーフェス&フルスクリーン

Screen is at 8 bits per pixel
Screen is in system memory
Sprite is in system memory
Sprite blit uses RLE acceleration
519.70 frames per second

いずれもシステムメモリ上でビデオメモリにスクリーンを設置できていない。自分のデスクトップではまだ試してないがSDL::Screen.infoは少なくとも同様の結果を出している、ノートは16MB、デスクトップには256MBビデオメモリがあるのに0ってなんやねん。これは参った。

と思って調べたら、こんなん出てきた

49 :名前は開発中のものです。:2006/05/22(月) 12:33:49 ID:d1rlamFe
>>48
環境変数 SDL_VIDEODRIVER や SDL_AUDIODRIVER で切り替え可能.
そういえばSDL-1.2.10からwin32環境のデフォルトのビデオドライバが
directx から windib に変更になったらしいね。
ttp://zinnia.dyndns.org/~hiki/SDLKB/?%B4%C4%B6%AD%CA%D1%BF%F4SDL_VIDEODRIVER
ttp://zinnia.dyndns.org/~hiki/SDLKB/?%B4%C4%B6%AD%CA%D1%BF%F4

……………

polpol

あ…ありのまま今起こった事を話すぜ!

『おれはSDLでDirectXを使っていたと思ったらいつのまにかwindibを使っていた…』 な…何を言ってるのかわからねーと思うがおれも何をされたのかわからなかった…

頭がどうにかなりそうだった… 仕様変更とかそんなチャチなもんじゃあ断じてねえ もっと恐ろしいものの片鱗を味わったぜ…