mieki256's diary



2013/05/10(金) [n年前の日記]

#2 [prog] DXRuby1.5系開発版を試してみたり

1.5開発版は、フルスクリーン表示が改善されてるとの記述が。Ayame/Ruby も同梱されてるらしい。これは試してみないと…。

_DXRuby プロジェクトWiki - ファイル置き場 からDL。Windows7 x64 + ruby 1.9.3p392 mingw32 環境にインストール。先日書いたスクリプトをちょこちょこ修正して動作確認。

DXRuby 1.4 では、メインPC上でフルスクリーン表示をすると激しくチラついてしまったのだけど。DXRuby 1.5 ではそのような不具合は発生せず。しかも、メインループ中でいきなりウインドウ/フルスクリーン表示を切り替えてみても一見問題無し。素晴らしい…。ありがたや…。

しかし、別PCでも動作確認を、と思ったところでつまずいたり。

ocraでexe化できない問題。 :

ocraを使ってスクリプトをexe化しようとしても、エラーが出てexe化できず。以下のようなエラーメッセージが表示される。
> ocra --windows fullscrtestdxruby.rb
=== Loading script to check dependencies
C:/ruby193mingw/lib/ruby/1.9.1/uri/common.rb:860:in `block in <module:URI>': 内部エラー - DeleteAyameList (AyameError)
        from C:/ruby193mingw/lib/ruby/1.9.1/uri/common.rb:858:in `times'
        from C:/ruby193mingw/lib/ruby/1.9.1/uri/common.rb:858:in `<module:URI>'
        from C:/ruby193mingw/lib/ruby/1.9.1/uri/common.rb:12:in `<top (required)>'
        from C:/ruby193mingw/lib/ruby/site_ruby/1.9.1/rubygems/core_ext/kernel_require.rb:45:in `require'
        from C:/ruby193mingw/lib/ruby/site_ruby/1.9.1/rubygems/core_ext/kernel_require.rb:45:in `require'
        from C:/ruby193mingw/lib/ruby/1.9.1/uri.rb:104:in `<top (required)>'
        from C:/ruby193mingw/lib/ruby/site_ruby/1.9.1/rubygems/core_ext/kernel_require.rb:45:in `require'
        from C:/ruby193mingw/lib/ruby/site_ruby/1.9.1/rubygems/core_ext/kernel_require.rb:45:in `require'
        from C:/ruby193mingw/lib/ruby/site_ruby/1.9.1/rubygems/dependency_resolver.rb:5:in `<top (required)>'
        from C:/ruby193mingw/lib/ruby/gems/1.9.1/gems/ocra-1.3.1/bin/ocra:474:in `const_get'
        from C:/ruby193mingw/lib/ruby/gems/1.9.1/gems/ocra-1.3.1/bin/ocra:474:in `block (3 levels) in attempt_load_autoload'
        from C:/ruby193mingw/lib/ruby/gems/1.9.1/gems/ocra-1.3.1/bin/ocra:468:in `each'
        from C:/ruby193mingw/lib/ruby/gems/1.9.1/gems/ocra-1.3.1/bin/ocra:468:in `block (2 levels) in attempt_load_autoload'
        from C:/ruby193mingw/lib/ruby/gems/1.9.1/gems/ocra-1.3.1/bin/ocra:466:in `each'
        from C:/ruby193mingw/lib/ruby/gems/1.9.1/gems/ocra-1.3.1/bin/ocra:466:in `block in attempt_load_autoload'
        from C:/ruby193mingw/lib/ruby/gems/1.9.1/gems/ocra-1.3.1/bin/ocra:460:in `loop'
        from C:/ruby193mingw/lib/ruby/gems/1.9.1/gems/ocra-1.3.1/bin/ocra:460:in `attempt_load_autoload'
        from C:/ruby193mingw/lib/ruby/gems/1.9.1/gems/ocra-1.3.1/bin/ocra:694:in `build_exe'
        from C:/ruby193mingw/lib/ruby/gems/1.9.1/gems/ocra-1.3.1/bin/ocra:1153:in `block in <top (required)>'
「AyameError」なる文字列が気になる。DXRuby1.5開発版に同梱してあった Ayame/Ruby 0.0.2 で、Ayame/Ruby 0.0.1 を置き換えたのだけど、それが絡んでる…?

いくつか実験。
  • DXRuby は1.5開発版のままで、Ayame.dll、Ayame.so を、0.0.1 に戻してみた。 → ocra でexe化できた。
  • Ruby 1.9.3 ではなく、Ruby 1.9.2p290 mingw32版で、DXRuby 1.5開発版 + Ayame/Ruby 0.0.1 を使用。 → スクリプトは動作するし、ocra で exe化もできた。
  • Ruby 1.9.2p290 mingw32版で、DXRuby 1.5開発版 + Ayame/Ruby 0.0.2 を使用。 → スクリプト終了時に不正終了する。
ocra がエラーを出すだけならまだしも、スクリプトが不正終了してしまうわけだから、おそらく Ayame/Ruby 0.0.2 に何かしらの不具合がありそうな予感。

ちなみに。
  • スクリプトソース中のフラグ(?)一つで、Ayame/Ruby 0.0.1、0.0.2 に合わせて、ちゃんと処理が変わるようにして実験。0.0.2 は、prefetch、predecode が無くなったのですな…。
  • Ruby 1.9.3 と 1.9.2 の切り替えには pik を利用。gem list で表示される一覧が全然違うので、切り替えはちゃんとできているのだろうと思う。

それにしもて、Ruby 1.9.3 上では不正終了しないのに、1.9.2 上で不正終了するのは…なんでだろ…。自分の環境に何か問題が…? mingw版は速いという話をどこかで見かけて、 _RubyInstaller for Windows からDL・インストールしてるけど。 _ActiveScriptRuby を入れたら、結果が違ってくるのだろうか…?

別PC上でも動作確認。 :

とりあえず、当面、Ayame/Ruby 0.0.1 で実験をすることに。録画用PCとネットブック機に、Ruby 1.9.3 mingw版 + DXRuby 1.5開発版 + Ayame/Ruby 0.0.1 でexe化したファイルをコピーして動作確認。

どちらのPCでも、フルスクリーン表示時にチラつき無し。メインPCも含めて、自分の手元にあるPC3台では、どれも見た目問題無し、であります。

一応FPSもメモ。録画用PCは、ウインドウ表示もフルスクリーン表示も、60FPS。低消費電力CPU + AMD785Gチップセットのオンボードビデオでこれだけ動けば充分のような気もする。

ネットブック機は、ウインドウ表示が11FPS前後。フルスクリーン表示は30FPS前後。ふと思いついて、ネットブック機の画面色数を16ビットにして動かしてみたら、ウインドウ表示が16FPSぐらいに向上。フルスクリーン表示は結果変わらず。なんだかちょっとWin95時代を思い出したり。あの頃はPCスペックが低すぎて、そんな感じのアレコレをたまにやってたっけ…。

動作確認に使ったスクリプト。 :

2017/03/19追記。 :

Dropboxのpublicフォルダが死んだのでファイルの置き場所を変更。

以上です。

過去ログ表示

Prev - 2013/05 - Next
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31

カテゴリで表示

検索機能は Namazu for hns で提供されています。(詳細指定/ヘルプ


注意: 現在使用の日記自動生成システムは Version 2.19.6 です。
公開されている日記自動生成システムは Version 2.19.5 です。

Powered by hns-2.19.6, HyperNikkiSystem Project