トップページ > 過去ログ > 記事閲覧
2.19bとの違い
名前:mmx 日時: 2006/12/01 17:02

管理人さまこんにちは、以前にも質問をさせていただいたmmxです。 今回、安定バージョンの2.19bから最新版の2.22dに変えてみましたところ、 描画周りでおかしな現象がおきましたので質問をさせていただきます。 画像データのロードに失敗しているわけではないのですが、 ところどころ、表示されないという現象がおきてしまいます。 また、小さめのキャラクターをDrawRectGraphで描画したりすると、 ものによっては残像のように、横に数体同じ画像が並んで表示されたりもしてしまいます。 画像の使用数は、少々多めで 数十個の画像(大小問わず)をロードしています。 また、画像の形式は、pngとjpgです。 2.19bでは上記のような現象はおきておりません。 何か原因などがおわかりでしたら、教えていただけないでしょうか。 よろしくお願いします。

Page: 1 |

Re: 2.19bとの違い ( No.1 )
名前:mmx 日時:2006/12/01 18:31

少し進展がありました。 SetUse3DFlag( FALSE ) ; をすると、処理速度がすごく遅くなりますが 正常に描画されるようです。
Re: 2.19bとの違い ( No.2 )
名前:管理人 日時:2006/12/05 13:07

 mmxさん始めまして、DXライブラリの管理人です。  SetUse3DFlag 関数で正常に描画されるようになったとしますと 最新版で正常に表示されないのは恐らく mmxさんのPCに搭載 されているグラフィックチップに因るものだと思います。 (SetUse3DFlag( FALSE ); を使用した場合はグラフィックチップの 機能を極力使わなくなりますので)  2.19b と 2.22d の違いは、端的に言えば古いPC用に作られて いた部分をもう少し新しいPC用に作りなおした、という感じです。  例えば最高効率で描画処理が出来るようにすると 2.19b 版に比べて 2倍以上の速度が出せたりするのですが、そうしてしまうと 2.19b 版 では正常に表示されていたのに 2.22d 版では正常に表示されなくなった、 ということがあったりします。  ライブラリのプログラム中のどの点で正常に表示されなくなったのかが 分かれば対処が出来るのですが、手元にその環境が無い場合はなかなか そうすることは出来ません。  なので、2.19b までは「よく分からないけど今のコードだと古い PCでも正常に表示されるらしい、でも速度効率は悪い、でも古い PCで表示されなくなるよりは良いか」という状態でした。  何時までもそのままでも良いと言えば良いのですが、私が言う所の 「古いグラフィックチップ」を搭載したPCも、だんだん使われなく なってきた(と思った)ので。「そろそろ効率重視のコードに書き 直しても良いんじゃないか」、と思って効率重視のコードに書き 直したのが 2.22d 等の最近のバージョンということになります。  なので、速度が遅くても、より多くの環境で動作させたい ということでしたら、2.19b をお使いになって下さい。m(_ _)m (2.19b 以降に搭載された機能も殆どありませんし(^^; )
Re: 2.19bとの違い ( No.3 )
名前:mmx 日時:2006/12/12 17:48

管理人さま、ご返信ありがとうございます。 グラフィックチップですか・・・ なるべく依存しないように作っていくしかなさそうですね。 とりあえず上記の現象ですが、一応回避する方法が見つかりました。 DrawRectGraphを使って指定矩形部分の描画を行う際に、例えば200*200のグラフィックデータ だとすると、n*200(nは任意)で切り抜くと、このような現象が発生しやすいようです。 透過pngが透過されない、またTransFlagでの反転描画時に指定矩形描画がされないということです。 なので、縦をぴったりで切り抜かなければ発生しないような気がします。 ただ、他にも条件があるかもしれません。 一応我が家の3台のPCでは、これで回避することができましたのでご報告とします。
Re: 2.19bとの違い ( No.4 )
名前:管理人 日時:2006/12/15 13:22

 mmxさんどうも、DXライブラリの管理人です。  ご情報有難うございます。  幾つか確認したい点がありましたので、宜しければご返答下さい。m(_ _)m > DrawRectGraphを使って指定矩形部分の描画を行う際に、例えば200*200のグラフィックデータ > だとすると、n*200(nは任意)で切り抜くと、このような現象が発生しやすいようです。  元の画像はどのような大きさの場合でしょうか?   > 透過pngが透過されない  TransFlag を TRUE にしないと透過部分が透過されないのですが、TransFlag を TRUE にしても透過されないということでしょうか? > またTransFlagでの反転描画時に指定矩形描画がされないということです。  TransFlag ではなく TurnFlag の誤りでしょうか?
Re: 2.19bとの違い ( No.5 )
名前:mmx 日時:2006/12/17 13:41

管理人様こんにちは、mmxです。 質問に答えさせていただきます。 > 元の画像はどのような大きさの場合でしょうか?    420*50の画像を、60*50ずつに切り分けて描画していました。 > TransFlag を TRUE にしないと透過部分が透過されないのですが、TransFlag を TRUE にしても透過されないということでしょうか? 通常、黒塗り部分があるとそこを透過すると思うのですが、pngの透明部分が存在すると黒は無視して透明部分だけを透過するようですね。 その仕様を理解していませんでした。 > TransFlag ではなく TurnFlag の誤りでしょうか?  TurnFlagでした。すみません。 よろしくお願いします。
Re: 2.19bとの違い ( No.6 )
名前:管理人 日時:2006/12/18 15:56

 mmxさんどうも、DXライブラリの管理人です。  ご返答有難うございます。  とりあえず私の環境では 420x50 の画像を 60x50 の画像に分割 して描画した限りでは正常に表示されましたが、DXライブラリの プログラムに原因がある可能性もありますので、宜しければ mmxさんの 環境で100%正常に表示されないプログラムをプロジェクトごと 圧縮して BQE00322(アットマーク)nifty.com まで送って頂けないでしょうか?  DXライブラリが要求する機能は全て備えているはずの私の環境で 正常に表示が行われるかどうかを確認することで、DXライブラリの プログラムに原因があるかどうかを調べることが出来ますので・・・
Re: 2.19bとの違い ( No.7 )
名前:mmx 日時:2006/12/19 12:35

管理人様、こんにちは。 先ほどプロジェクトをメールにて送りましたので、ご確 認下さい。 よろしくお願いします。
Re: 2.19bとの違い ( No.8 )
名前:管理人 日時:2006/12/25 14:02

 mmxさんどうも、DXライブラリの管理人です。  メールを拝見致しました。  添付して頂いたプログラムを実行した所、私の環境でもスクリーンショット と同様の現象が発生しました。つまり、DXライブラリのプログラムに原因が ありました。m(_ _;m  残像の様に画像が表示されてしまうバグを修正したバージョンをアップしました ので、宜しければお試しになってみて下さい。m(_ _)m http://homepage2.nifty.com/natupaji/DxLib/DxLibVCTest.exe //VC用 http://homepage2.nifty.com/natupaji/DxLib/DxLibBCCTest.exe //BCC用 (中身を既存のファイルに上書きして、BCCをお使いの場合は『再構築』、 VCをお使いの場合は『リビルド』をして下さい)
Re: 2.19bとの違い ( No.9 )
名前:mmx 日時:2007/01/02 23:07

管理人様、こんばんは。 mmxです。 少々家を離れていたため、返事が遅くなってしまい申し訳ありません。 いただいたバージョンを試したところ、正常に動作することができました。 お手数をおかけすることになってしまいましたが、 対応してくださって感謝しています。 このたびは本当にありがとうございました。

Page: 1 |