カードの作成でNo more handlesエラーが発生
一部環境で発生。 メニューカード・キャスト・アイテム……問わずカードの作成で起きる模様。
- Windows XP
- 設定が初期状態でも発生する。
- 画像を選択しなくても出る。
- 旧バージョンならOK?
- 背景画像はOK。ダイアログの問題ではない?
- 発生した後しばらくするとフリーズ。どこかアクセス違反している?
考えうる可能性としては:
# 画像のスムージング拡大縮小アルゴリズムがおかしい。Highcolorの時にバグが出るのをRC2で修正した部分であるため、その時にバグが混入した可能性。 # リソース絡み。カードの台紙を表示しようとして問題が出る。 # フォント絡み。カード名の描画で問題が出る。 # カード名の入力は六文字に限定しているがその辺がおかしい # カードの解説は自動で改行が入ることになっているがその辺がおかしい
原因を絞り込む方法としては:
# カードのスムージングをOffにしてみても発生するか? # 設定でCardWirthPy.exeの場所を空にしてみて、CardWirthとは無関係なフォルダで同じ操作をしても発生するか?(そのようにした場合、カードの台紙は元々表示されない) # 貼り紙のタイトルを編集して表示イメージを見ると同じ問題が出るか? # これについてはすぐに確認する方法が無い。 # 貼り紙の解説を編集して表示イメージを出したりOKを押したりしても同じ問題が出るのか?
その他教えていただきたいのは:
- XPはSPいくつか
- 画面の色深度設定はどうなっているか?(画面のプロパティ→設定→画面の色 の所を確認)
Comments (18)
-
Account Deleted -
reporter - changed status to resolved
特定できそうな予感…!
原因特定するためのバージョンを準備してきますのでしばらくお待ちください。
-
reporter お待たせしました。
https://bitbucket.org/k4nagatsuki/cwxeditor/downloads/cwxeditor_debug2.zip
たびたびお手数をおかけして本当に申し訳ないのですが、このバージョンで問題発生時にcwxeditor_error.logに出力された内容を教えていただけないでしょうか。(結構大量にログが出ると思いますが、No more handlesから何行か前くらいまでで大丈夫です)
よろしくお願いします。
-
Account Deleted お待たせして申し訳ありません。ログになります。
2011-04-02 21:10:10 transparent ok
2011-04-02 21:10:10 smoothing ok
2011-04-02 21:10:10 createImageData() ok
2011-04-02 21:10:10 set _img
2011-04-02 21:10:11 dialog open
2011-04-02 21:10:13 create index
2011-04-02 21:10:13 store undo data
2011-04-02 21:10:13 get mat
2011-04-02 21:10:13 get mat ok
2011-04-02 21:10:13 createCardImageCommon()
2011-04-02 21:10:13 createCardImageCommon() ok
2011-04-02 21:10:13 setTitle
2011-04-02 21:10:13 resize
2011-04-02 21:10:13 resize() callListeners
2011-04-02 21:10:13 resize() callListeners ok
2011-04-02 21:10:13 createImage()
2011-04-02 21:10:13 createImageData()
2011-04-02 21:10:13 create GC
2011-04-02 21:10:13 drawCardImage ok
2011-04-02 21:10:13 appends ok
2011-04-02 21:10:13 No more handles, , 0
-
reporter ご迷惑をおかけしてるのはこっちの方なので申し訳ないなんてことはないですよ。 ご協力本当にありがたいです。
で、確認させていただいたんですが、なにやらカード名の描画のところで落ちてますね。フォント絡みの設定が違うんだろうか?
相当絞り込めてきましたが、核心に至るにはもう一度確認していただく必要がありそうです。
このバージョンで見ていただけないでしょうか。
https://bitbucket.org/k4nagatsuki/cwxeditor/downloads/cwxeditor_debug3.zip
たぶん最後になると思います。最後になるといいな。最後になってくれ たのむ!
-
reporter おっと書き忘れ。
上のバージョンはエラーのダイアログが出ないかもしれないです。
しかし同じ手順でcwxeditor_error.logにNo more handlesが出るはずなので、 その周辺のログを教えていただけないでしょうか。
よろしくお願いします。
-
Account Deleted お疲れ様です。 エラーダイアログが出ずにカードが生成されました。 以下周辺ログとなります。
2011-04-03 05:27:41 createCardImageCommon()
2011-04-03 05:27:41 createCardImageCommon() ok
2011-04-03 05:27:41 setTitle
2011-04-03 05:27:41 resize
2011-04-03 05:27:41 resize() callListeners
2011-04-03 05:27:41 resize() callListeners ok
2011-04-03 05:27:41 createImage()
2011-04-03 05:27:41 createImageData()
2011-04-03 05:27:41 create GC
2011-04-03 05:27:41 drawCardImage ok
2011-04-03 05:27:41 appends ok
2011-04-03 05:27:41 create font
2011-04-03 05:27:41 set font
2011-04-03 05:27:41 set foreground
2011-04-03 05:27:41 set text antialias
2011-04-03 05:27:41 draw text
2011-04-03 05:27:41 No more handles ★
2011-04-03 05:27:41 title ok
2011-04-03 05:27:41 transparent ok
2011-04-03 05:27:41 smoothing ok
2011-04-03 05:27:41 createImageData() ok
2011-04-03 05:27:41 set _img
2011-04-03 05:27:41 createImage() ok
2011-04-03 05:27:41 retoggle() ok
2011-04-03 05:27:41 createMenuCardImage success
2011-04-03 05:27:41 append card initialize
2011-04-03 05:27:41 appendCard() success
-
reporter 原因箇所特定しました! まさかこんな所で落ちているとは……
CardWirthのカード名は、基本的にテキストのアンチエイリアス(というかスムージングというか、中間色を使って滑らかに見せる描画方法)を使わずに描画しているのですが、
- アンチエイリアスをOFFにする
- カード名を描画
- アンチエイリアスの設定を元に戻す ← ここで落ちる
という事になっているようです。
正直どうしてこういう事になるのか、どういう環境の違いがあるのかさっぱり分からないのですが(Gdipの勉強せんとなぁ)、ともあれ対策は打てそうです。
実際に打ってみたバージョンがこちら:
https://bitbucket.org/k4nagatsuki/cwxeditor/downloads/cwxeditor_debug4.zip
恐らく問題なく動くと思います。試していていただけないでしょうか(特にカード名がちゃんと表示されるかどうか)。問題が出ないようなら、これで一応問題解決としたいと思います。
-
Account Deleted 試させていただきました。
結果は カードは作成できる。 しかし、カード名がカード上に表示されない。
となりました。 ただし旧エディタで作成したシナリオを改造する場合は カードにカード名が表示されます。
あくまで新規作成の場合のみの不具合ぽいですね。
-
reporter むむむ……
カード名を描画する部分はどこで作成されたデータであろうと共通なので、どうもその辺りが解せないのです。
一度保存して再読込みした場合はどうなるでしょうか。
あと、cwxeditor_error.logには何か出力されていますか?
-
reporter あと、1つ思いついたことですが……
CardWirthPyに付属しているIPAフォントが現象の原因になっている可能性があります。
cwxeditorは、クラシックなシナリオを編集する際は、従来のCardWirthに合わせてMSゴシックなどのフォントを使用するようにしていますが、XML形式のシナリオの場合はCardWirthPyについてくるIPAフォントを使うようにしています。
もしかしたら今まで誤読していたのかもしれないのですが、旧エディタで作成したシナリオを改造する時には大丈夫、というのは、カードの新規作成も含めて大丈夫ということでしょうか。
逆に、CardWirthPyやcwxeditorでXML形式に変換したシナリオを読込んだ時は、問題が発生するのでしょうか。
また、CardWirthPyでシナリオをプレイしようとしたとき、カード名などが正しく表示されないなどの現象は発生しないでしょうか。
上記のようになるのであれば、IPAフォントが原因になっている、最悪ファイルが壊れている、という可能性が考えられます。
そうでないなら、IPAフォントと環境の兼ね合いで現象が発生している、という可能性もあります。
もしかすると、IPAフォントをWindowsのFontsフォルダにインストールするだけで解決したりするかもしれません。(cwxeditorとしては根本的解決になりませんが……)
-
Account Deleted お疲れ様です。 当方の検証結果となります。
あと、cwxeditor_error.logには何か出力されていますか?
>エリアのカード作成時には以下のような感じで座標らしきログしか残りません。
2011-04-04 19:08:30 No more handles, org\eclipse\swt\graphics\GC.d, 576
2011-04-04 19:10:12 No more handles, org\eclipse\swt\graphics\GC.d, 576
もしかしたら今まで誤読していたのかもしれないのですが、旧エディタで作成したシナリオを改造する時には大丈夫、 というのは、カードの新規作成も含めて大丈夫ということでしょうか。
>はい。改造時はエリア内や情報カードなどでもカードの新規作成が可能かつカード名が表示されます
>ただしこれを保存し、作成されたXMLのwsmファイル読み込むと,
>同現象が再現しカード名が表示されないカード作成しか行えません
>(それ以上にマズイ動作があることがわかりました下記にて記載)
逆に、CardWirthPyやcwxeditorでXML形式に変換したシナリオを読込んだ時は、問題が発生するのでしょうか。
>新規作成したものを保存して再読み込みしてもカード名は表示されません。
>さらに悪い話なのですが、
>旧エディタのシナリオを「名前を付けて保存」して、
>作成されたXMLのwsnファイルを読み込むと
>カード画像からBGMまで全ての外部素材の関連が外れていて、カードやエリアの画像情報が全て消えています。
>(デフォルトの画像すら関連ずけられていません)
>CardWirthPyでプレイするとデフォルト音声以外全てBGMなし、カード画像は一切表示されない状態になります。
また、CardWirthPyでシナリオをプレイしようとしたとき、カード名などが正しく表示されないなどの現象は発生しないでしょうか。
>ゴブリンの洞窟をXML変換したシナだとカード名は表示されます。
>ただし表示されるカード名は元々あったもののみで、
>こちらからカード名を改ざんしてもちゃんと保存されていないのか、改ざん前のカード名が表示されています
>またプレイ時は上記通りカード画像や使用されているBGMは表示されません。
>ただデフォルトの戦闘BGMは鳴りました
もしかすると、IPAフォントをWindowsのFontsフォルダにインストールするだけで解決したりするかもしれません。(cwxeditorとしては根本的解決になりませんが……)
>以下のサイトのIPAフォント4種類をインストール、再起動後にエディタ操作を行いましたが、同じくカード名が表示されません
>http://ossipedia.ipa.go.jp/ipafont/index.html
以上となります。よろしくお願い致します。
-
reporter これはひどい……いつの間にかwsn変換がバグってますね。これはフォント以前の問題で、こちらでも一部再現しました。即刻修正します。RC版(笑)
で、No more handlesのエラーなのですが、やはりフォント絡みのところで発生しているようです。となれば、IPAフォントを使わない設定を用意すればある程度解決するかもしれません。
試しにIPAフォントを一切使わないバージョンを作ってみました。これでカードを作成するとどうなるか教えていただけないでしょうか。(cwxeditor_no_ipafont.exe)
また、貼り紙等が問題なく編集できるということは、貼り紙のプレビューでは触っていないフォントのアンチエイリアス設定が最終的な原因になっているかもしれません。これを排除したバージョンも作ってみました。(cwxeditor_no_antialias.exe)
https://bitbucket.org/k4nagatsuki/cwxeditor/downloads/cwxeditor_debug5.zip
何度も何度も重いファイルを落とさせて動作検証をさせてしまい、まことに申し訳ありません。
-
Account Deleted お疲れ様です。
結果ですが、バグは再現されず、カード名が完全に表示されました。
エリア内のカード及び、キャストカードから情報カードまでOKです。
二つの実行ファイルで試しましたが、どちらもバグは出ませんね。
No more handlesのバグは解決したんじゃないでしょうか。ユーザレベルでは問題ないという認識です。
以上となります。
-
reporter - changed status to wontfix
IPAフォントとアンチエイリアス設定個別では何も起こらず、組み合わせると一部環境で問題が出るという事ですね。
グラフィックボードとかが関係あるのかもしれませんが突き詰めても手に負えないのは明白……!
とりあえずそちらの環境で問題が出なくなったのであれば、これで解決としてRC2.1辺りを出そうと思います。
ご協力本当にありがとうございました!
-
reporter おっと待ったwontfixじゃない。
-
reporter - changed status to resolved
-
reporter fixes
#1→ Wiki macro error: Changeset ab155e364439 not found.
- Log in to comment
TO:k4nagatsuki殿 FM:191
調べてみました。 使用ソフト(cwxeditor_debug.exe)
2番のあたりから動作が怪しいです。
1. カードのスムージングをOffにしてみても発生するか? >>エディタ設定の「カードのサイズ変更時にスムージングを行う」チェックを消して同手順を実行 >同現象が発生(以降の調査はチェック有りで実行)
2. 設定でCardWirthPy.exeの場所を空にしてみて、CardWirthとは無関係なフォルダで同じ操作をしても発生するか?(そのようにした場合、カードの台紙は元々表示されない) >>cwxeditor_debug.exe単体のみで起動し実施。 >バグ発生せず。カード作成時に、真っ白なカードが作成される >おまけ この後CardWirthPy.exeを指定すると同現象が発生 参考:指定した際のパス名「C:\CW\CardWirthPy\CardWirthPy.exe」
3. 貼り紙のタイトルを編集して表示イメージを見ると同じ問題が出るか? >問題なし。
4. これについてはすぐに確認する方法が無い。 5. 貼り紙の解説を編集して表示イメージを出したりOKを押したりしても同じ問題が出るのか? >張り紙の編集に問題なし。カードイメージも普通に表示される。
その他教えていただきたいのは:
以上です。よろしくお願いします。