トップページ > 記事閲覧
GraphFilterが働かない。
名前:うずら 日時: 2014/08/13 23:10

こんばんは。 タイトルの通りなんですが、GraphFilter関数が働きません。 使用したいのはガウスフィルターなんですが、 GraphFilter(Screen, DX_GRAPH_FILTER_GAUSS, 16, 1400); // Screen変数は仮想スクリーン このコードで動いてくれません。 GraphFilter( Handle, DX_GRAPH_FILTER_INVERT ) ; こっちなら正常に動いてくれるのでコードには問題がないと思います。 引数などの誤りやその他原因に心当たりがあればご教示ください
メンテ

Page: 1 |

Re: GraphFilterが働かない。 ( No.1 )
名前:管理人 日時:2014/08/16 18:38

すみません、ガウスフィルターと色相・彩度・明度フィルターが正常に動作しないようになっていました 修正版をアップしましたので、よろしければお試しください m(_ _;m http://homepage2.nifty.com/natupaji/DxLib/DxLibVCTest.exe // VisualC++ 用 http://homepage2.nifty.com/natupaji/DxLib/DxLibBCCTest.exe // BorlandC++ 用 http://homepage2.nifty.com/natupaji/DxLib/DxLibGCC_DevCppTest.exe // Dev-C++ 用 http://homepage2.nifty.com/natupaji/DxLib/DxLibGCC_MinGWTest.exe // MinGW 用 http://homepage2.nifty.com/natupaji/DxLib/DxLibDotNet.zip // .NET用 http://homepage2.nifty.com/natupaji/DxLib/DxLibMakeTest.exe // ソース (中身を既存のライブラリのファイルに上書きして、BCCをお使いの 場合は『再構築』を、VCをお使いの場合は『リビルド』を、 Dev-C++をお使いの方は「Rebuild All(Ctrl+F11)」をして下さい)
メンテ
Re: GraphFilterが働かない。 ( No.2 )
名前:うずら 日時:2014/08/16 21:17

正常に動作するようになりました。 ありがとうございます。
メンテ
Re: GraphFilterが働かない。 ( No.3 )
名前:うずら 日時:2014/08/17 19:26

しばらく使っていて、クラッシュが起こるようになりました。 Log.txt 1:設定されている画面設定 1366x768 32bit color 7:システムの情報を出力します 11: DXライブラリ Ver3.12d 15: 論理プロセッサの数 : 8 19: OS Windows8 ( Build 9200 ) 126: 現時点のCPU動作速度:大体2.39GHz 132: MMX命令を使用します 136: SSE命令が使用可能です 139: SSE2命令が使用可能です 143: CPUベンダ:GenuineIntel 161: CPU名:Intel(R) Core(TM) i7-4700MQ CPU @ 2.40GHz 164:COMの初期化... 成功しました 171:メモリ総量:8104.09MB 空きメモリ領域:5099.32MB 175:タイマーの精度を検査します 178:精度結果 更新回数 マルチメディアタイマー:0 パフォーマンスカウンター:60 182: パフォーマンスカウンターを使用します タイマー精度 : 2338.348000 KHz 189: ソフトの二重起動検査... 二重起動はされていませんでした 199:ウインドウクラスを登録します... 登録に成功しました 241:フルスクリーンモード用のウインドウを作成します 247:ウインドウの作成に成功しました 250:カーソルを不可視にしました 254:IMEを無効にしました 276:DirectInput関係初期化処理 283: XInput DLL の読み込み中... 成功 292: DirectInput7 の取得中... 成功 306: 引き続き初期化処理... 初期化成功 314: ジョイパッドの初期化... 321: ジョイパッドの初期化は正常に終了しました 325: マウスデバイスの初期化... 初期化成功 333: キーボードデバイスの初期化... 初期化成功 341:DirectInput 関連の初期化は正常に終了しました 346:XAudio2 の初期化を行います 350: XAudio2_8.dll を使用します 354: XAudio2 インターフェースの取得と初期化を行います.... 成功 Ver2.8 366: XAudio2MasteringVoiceの作成に失敗しました 371: DirectSound の初期化を行います 374: DirectSound インターフェースの取得を行います.... 成功 383: 引き続きインターフェースの初期化処理... 成功 400: DirectSound デバイスを列挙します 405: モジュール名: ドライバ記述:プライマリ サウンド ドライバー 409: モジュール名:{0.0.0.00000000}.{e2b1de52-f8b2-4927-9b33-4759cfdea183} ドライバ記述:スピーカー (Realtek High Definition Audio) 412: 最大サンプリングレート:200.00KHz 最小サンプリングレート:0.10KHz 416: 総サウンドメモリ領域:0.00KB 空きサウンドメモリ領域:0.00KB 419: 利用可能サンプリング精度 423: プライマリ 16bit = OK 8bit = OK 427: セカンダリ 16bit = OK 8bit = OK 430: 利用可能チャンネル 434: プライマリ MONO = OK STEREO = OK 437: セカンダリ MONO = OK STEREO = OK 441: DirectSound の初期化は正常に終了しました 446: DirectDraw オブジェクトの取得を行います.... 成功 455: 引き続き初期化処理... 初期化に成功しました 476: IDirect3D9Ex オブジェクトを取得します.... 成功 485: Desktop Window Manager を無効にしました 488: IDirect3DDevice9Ex オブジェクトを取得します.... ハードウエア頂点演算を使用します 805: 成功 815: Driver:igdumdim32.dll Description:Intel(R) HD Graphics 4600 818: 画面のフォーマットは D3DFMT_X8R8G8B8 です 822: 16bit Zバッファフォーマットは D3DFMT_D16 です 825: 24bit Zバッファフォーマットは D3DFMT_D24X8 です 829: 32bit Zバッファフォーマットは D3DFMT_D24X8 です 832: 16bit カラーフォーマットは D3DFMT_R5G6B5 です 836: 32bit カラーフォーマットは D3DFMT_X8R8G8B8 です 839: アルファ付き 16bit カラーフォーマットは D3DFMT_A4R4G4B4 です 842: アルファ付き 32bit カラーフォーマットは D3DFMT_A8R8G8B8 です 846: アルファテスト用 16bit カラーフォーマットは D3DFMT_A1R5G5B5 です 849: アルファテスト用 32bit カラーフォーマットは D3DFMT_A8R8G8B8 です 854: DXT1テクスチャフォーマットはD3DFMT_DXT1 です 857: DXT2テクスチャフォーマットはD3DFMT_DXT2 です 861: DXT3テクスチャフォーマットはD3DFMT_DXT3 です 864: DXT4テクスチャフォーマットはD3DFMT_DXT4 です 868: DXT5テクスチャフォーマットはD3DFMT_DXT5 です 871: 描画用 16bit カラーフォーマットは D3DFMT_R5G6B5 です 875: 描画用 32bit カラーフォーマットは D3DFMT_X8R8G8B8 です 878: 描画用アルファ付き 32bit カラーフォーマットは D3DFMT_A8R8G8B8 です 882: 描画用ABGR整数16ビット型カラーフォーマットは D3DFMT_A16B16G16R16 です 886: 描画用ABGR浮動小数点16ビット型カラーフォーマットは D3DFMT_A16B16G16R16F です 890: 描画用ABGR浮動小数点32ビット型カラーフォーマットは D3DFMT_A32B32G32R32F です 894: 描画用1チャンネル整数8ビット型カラーフォーマットは D3DFMT_A8R8G8B8 です 898: 描画用1チャンネル整数16ビット型カラーフォーマットは D3DFMT_G16R16 です 909: 描画用1チャンネル浮動小数点16ビット型カラーフォーマットは D3DFMT_R16F です 944: 描画用1チャンネル浮動小数点32ビット型カラーフォーマットは D3DFMT_R32F です 949: 描画用2チャンネル整数8ビット型カラーフォーマットは D3DFMT_A8B8G8R8 です 952: 描画用2チャンネル整数16ビット型カラーフォーマットは D3DFMT_G16R16 です 956: 描画用2チャンネル浮動小数点16ビット型カラーフォーマットは D3DFMT_G16R16F です 960: 描画用2チャンネル浮動小数点32ビット型カラーフォーマットは D3DFMT_G32R32F です 965: 一度に描画できるプリミティブの最大数:1048575 968: 対応している最大頂点インデックス:16777215 972: 同時にレンダリングできるバッファの数:4 976: 最大テクスチャサイズ 幅:8192 高さ:8192 980: テクスチャステージテンポラリレジスタ:使用可 984: 減算合成のハードウェア対応:ネイティブ 988: ハードウェア頂点シェーダーバージョンコード:300 991: エミュレーション頂点シェーダーバージョンコード:エミュレーション無し 995: ピクセルシェーダーバージョンコード:300 1015: バックバッファロック転送の時間:1172nsec 一時的な描画可能バッファを使用した転送の時間:2178nsec 1024: バックバッファロックを使用します 1028: Zバッファを作成します.... 成功 1197: プログラマブルシェーダーを使用します 1284: フォントの初期化を行います 1290: フォントの初期化は正常に終了しました 1310: 文字コードバッファの初期化を行います... 完了しました 1324: UserMes: Image::AutoRemake Start 1328: UserMes: Image::AutoRemake Result :ScreenX = 128 ScreenY = 128 MakeScreen Return:67305473 1616: mem alloc size: 0( 0.000kb) file:Main\DxFont.cpp line:1814 ID:582 addr:011b7bc8 data:<> ] 1685: mem free size: 0( 0.000kb) file:Main\DxFont.cpp line:1814 ID:582 addr:011b7bc8 data:<> ] 1715: mem alloc size: 0( 0.000kb) file:Main\DxFont.cpp line:1814 ID:777 addr:011b7bc8 data:<> ] 1727: mem free size: 0( 0.000kb) file:Main\DxFont.cpp line:1814 ID:777 addr:011b7bc8 data:<> ] 1758: mem alloc size: 0( 0.000kb) file:Main\DxFont.cpp line:1814 ID:972 addr:011b7bc8 data:<> ] 1769: mem free size: 0( 0.000kb) file:Main\DxFont.cpp line:1814 ID:972 addr:011b7bc8 data:<> ] 1800: mem alloc size: 0( 0.000kb) file:Main\DxFont.cpp line:1814 ID:1167 addr:011b7bc8 data:<> ] 1813: mem free size: 0( 0.000kb) file:Main\DxFont.cpp line:1814 ID:1167 addr:011b7bc8 data:<> ] 1846: mem alloc size: 0( 0.000kb) file:Main\DxFont.cpp line:1814 ID:1362 addr:011b7c98 data:<> ] 1863: mem free size: 0( 0.000kb) file:Main\DxFont.cpp line:1814 ID:1362 addr:011b7c98 data:<> ] 1896: mem alloc size: 0( 0.000kb) file:Main\DxFont.cpp line:1814 ID:1557 addr:011b7c98 data:<> ] 1908: mem free size: 0( 0.000kb) file:Main\DxFont.cpp line:1814 ID:1557 addr:011b7c98 data:<> ] 1942: mem alloc size: 0( 0.000kb) file:Main\DxFont.cpp line:1814 ID:1752 addr:011b7bc8 data:<> ] 1953: mem free size: 0( 0.000kb) file:Main\DxFont.cpp line:1814 ID:1752 addr:011b7bc8 data:<> ] 1986: mem alloc size: 0( 0.000kb) file:Main\DxFont.cpp line:1814 ID:1947 addr:011b7bc8 data:<> ] 1996: mem free size: 0( 0.000kb) file:Main\DxFont.cpp line:1814 ID:1947 addr:011b7bc8 data:<> ] 2003: UserMes: Image::AutoRemake Start 2006: UserMes: Image::AutoRemake Result :ScreenX = 540 ScreenY = 720 MakeScreen Return:79626424 Log終了。 VisualStudio2013のメッセージは以下のように出ます。 0xC0000005: 場所 0x006B6310 の読み取り中にアクセス違反が発生しました。 再現性が低く、ビルドするたびに出るようになったりならなかったりします。 適用先はMakeScreen(540, 720);で作成した仮想スクリーンです。 GraphFilter(Screen, DX_GRAPH_FILTER_GAUSS, 8, pParam); でフィルターをかけています(pParmは0〜500の値です。)
メンテ
Re: GraphFilterが働かない。 ( No.4 )
名前:うずら 日時:2014/08/17 22:25

追記です。〜〜は動作を停止しました。の追加情報です。 問題の署名: 問題イベント名: APPCRASH アプリケーション名: Game.exe アプリケーションのバージョン: 1.0.0.0 アプリケーションのタイムスタンプ: 53f0acc4 障害モジュールの名前: Game.exe 障害モジュールのバージョン: 1.0.0.0 障害モジュールのタイムスタンプ: 53f0acc4 例外コード: c0000005 例外オフセット: 00057fc7 OS バージョン: 6.3.9600.2.0.0.768.101 ロケール ID: 1041 追加情報 1: 5861 追加情報 2: 5861822e1919d7c014bbb064c64908b2 追加情報 3: d1d9 追加情報 4: d1d94a13d3609d6b740644c12508f581
メンテ
Re: GraphFilterが働かない。 ( No.5 )
名前:管理人 日時:2014/08/19 00:50

すみません、一つご質問させてください GraphFilter を呼んだ際にクラッシュしたのでしょうか?
メンテ
Re: GraphFilterが働かない。 ( No.6 )
名前:うずら 日時:2014/08/19 12:27

はい、そうです。 このようなコードになっています。 { const int gaussValue = 500; if (ToGame) { Cv.VScreenGraphFilterGauss8(gaussValue - Scale1XI(stPause::ToGame, lcCntMax, gaussValue)); } else { Cv.VScreenGraphFilterGauss8(Scale1XI(stPause::lcCnt, lcCntMax, gaussValue)); // ( ゚Д゚) } } // コードここまで。ポーズ画面でのぼかし処理に使用してます。 Cv.VScreenGraphFilterGauss8 は、自作の描画クラスでパックした関数で void Image::VScreenGraphFilterGauss8(int pParam) { if (pParam < 0) { pParam = 1; } GraphFilter(Screen, DX_GRAPH_FILTER_GAUSS, 8, pParam); } ガウスフィルターを仮想スクリーンに掛けるだけの関数です。ピクセル幅は8固定です。 渡してるパラメータで使用してる関数は double Scale1(double pvalue, double pMax) { if (pvalue >= pMax) { return 1; } if (pvalue <= 0) { return 0; } return pvalue / pMax; } int Scale1XI(double pvalue, double pMax, double pOutMax) { return int(Scale1(pvalue, pMax) * pOutMax); } 必ず値は正の値になるようにしたのですがそれでも落ちます。 ビルドによって、落ちるときと落ちない時があり、落ちるビルドだと必ず落ちます。 落ちないビルドだと何度やっても落ちません。 仮想スクリーンが2のn乗サイズじゃないのがいけないんでしょうか?
メンテ
Re: GraphFilterが働かない。 ( No.7 )
名前:うずら 日時:2014/08/19 12:49

デバッグログ主力をしてみました。落ちた場所はGraphFilter直後でした。 // DXライブラリのフィルターを呼ぶ関数 void Image::VScreenGraphFilterGauss8(int pParam) { AppLogAdd("UserMes: Function,VScreenGraphFilterGauss8 Start pParm = %d\n", pParam); if (pParam < 0) { pParam = 1; } GraphFilter(Screen, DX_GRAPH_FILTER_GAUSS, 8, pParam); AppLogAdd("UserMes: Function,VScreenGraphFilterGauss8 End\n", pParam); } // 上の関数を呼び出すポーズ画面状態の描画関数の一部 { const int gaussValue = 500; AppLogAdd("UserMes: Function,PauseDraw Point0\n"); if (ToGame) { Cv.VScreenGraphFilterGauss8(gaussValue - Scale1XI(stPause::ToGame, lcCntMax, gaussValue)); } else { Cv.VScreenGraphFilterGauss8(Scale1XI(stPause::lcCnt, lcCntMax, gaussValue)); // ( ゚Д゚) } AppLogAdd("UserMes: Function,PauseDraw Point1\n"); } Cv.DrawStrC(GameVScreenX / 2, 250, "Return Game", 3); Cv.DrawStrC(GameVScreenX / 2, 280, "Return Title", 3); Cv.DrawStrC(GameVScreenX / 2, 310, "Restart Game", 3); AppLogAdd("UserMes: Function,PauseDraw Point2\n"); 1:設定されている画面設定 1366x768 32bit color 8:システムの情報を出力します 12: DXライブラリ Ver3.12d 16: 論理プロセッサの数 : 8 20: OS Windows8 ( Build 9200 ) 128: 現時点のCPU動作速度:大体2.38GHz 139: MMX命令を使用します 143: SSE命令が使用可能です 148: SSE2命令が使用可能です 152: CPUベンダ:GenuineIntel 208: CPU名:Intel(R) Core(TM) i7-4700MQ CPU @ 2.40GHz 214:COMの初期化... 成功しました 227:メモリ総量:8104.09MB 空きメモリ領域:5109.03MB 232:タイマーの精度を検査します 238:精度結果 更新回数 マルチメディアタイマー:0 パフォーマンスカウンター:60 243: パフォーマンスカウンターを使用します タイマー精度 : 2338.349000 KHz 254: ソフトの二重起動検査... 二重起動はされていませんでした 270:ウインドウクラスを登録します... 登録に成功しました 281:フルスクリーンモード用のウインドウを作成します 290:ウインドウの作成に成功しました 296:カーソルを不可視にしました 301:IMEを無効にしました 329:DirectInput関係初期化処理 340: XInput DLL の読み込み中... 成功 353: DirectInput7 の取得中... 成功 390: 引き続き初期化処理... 初期化成功 401: ジョイパッドの初期化... 413: ジョイパッドの初期化は正常に終了しました 417: マウスデバイスの初期化... 初期化成功 427: キーボードデバイスの初期化... 初期化成功 437:DirectInput 関連の初期化は正常に終了しました 441:XAudio2 の初期化を行います 446: XAudio2_8.dll を使用します 451: XAudio2 インターフェースの取得と初期化を行います.... 成功 Ver2.8 466:XAudio2 の初期化は正常に終了しました 473:DirectDraw オブジェクトの取得を行います.... 成功 482:引き続き初期化処理... 初期化に成功しました 505:IDirect3D9Ex オブジェクトを取得します.... 成功 515:Desktop Window Manager を無効にしました 519:IDirect3DDevice9Ex オブジェクトを取得します.... ハードウエア頂点演算を使用します 1958:成功 1961:Driver:igdumdim32.dll Description:Intel(R) HD Graphics 4600 1965:画面のフォーマットは D3DFMT_X8R8G8B8 です 1970:16bit Zバッファフォーマットは D3DFMT_D16 です 1973:24bit Zバッファフォーマットは D3DFMT_D24X8 です 1978:32bit Zバッファフォーマットは D3DFMT_D24X8 です 1981:16bit カラーフォーマットは D3DFMT_R5G6B5 です 1986:32bit カラーフォーマットは D3DFMT_X8R8G8B8 です 1989:アルファ付き 16bit カラーフォーマットは D3DFMT_A4R4G4B4 です 1993:アルファ付き 32bit カラーフォーマットは D3DFMT_A8R8G8B8 です 1998:アルファテスト用 16bit カラーフォーマットは D3DFMT_A1R5G5B5 です 2002:アルファテスト用 32bit カラーフォーマットは D3DFMT_A8R8G8B8 です 2006:DXT1テクスチャフォーマットはD3DFMT_DXT1 です 2009:DXT2テクスチャフォーマットはD3DFMT_DXT2 です 2013:DXT3テクスチャフォーマットはD3DFMT_DXT3 です 2017:DXT4テクスチャフォーマットはD3DFMT_DXT4 です 2021:DXT5テクスチャフォーマットはD3DFMT_DXT5 です 2025:描画用 16bit カラーフォーマットは D3DFMT_R5G6B5 です 2029:描画用 32bit カラーフォーマットは D3DFMT_X8R8G8B8 です 2033:描画用アルファ付き 32bit カラーフォーマットは D3DFMT_A8R8G8B8 です 2037:描画用ABGR整数16ビット型カラーフォーマットは D3DFMT_A16B16G16R16 です 2041:描画用ABGR浮動小数点16ビット型カラーフォーマットは D3DFMT_A16B16G16R16F です 2045:描画用ABGR浮動小数点32ビット型カラーフォーマットは D3DFMT_A32B32G32R32F です 2049:描画用1チャンネル整数8ビット型カラーフォーマットは D3DFMT_A8R8G8B8 です 2053:描画用1チャンネル整数16ビット型カラーフォーマットは D3DFMT_G16R16 です 2057:描画用1チャンネル浮動小数点16ビット型カラーフォーマットは D3DFMT_R16F です 2061:描画用1チャンネル浮動小数点32ビット型カラーフォーマットは D3DFMT_R32F です 2067:描画用2チャンネル整数8ビット型カラーフォーマットは D3DFMT_A8B8G8R8 です 2070:描画用2チャンネル整数16ビット型カラーフォーマットは D3DFMT_G16R16 です 2110:描画用2チャンネル浮動小数点16ビット型カラーフォーマットは D3DFMT_G16R16F です 2114:描画用2チャンネル浮動小数点32ビット型カラーフォーマットは D3DFMT_G32R32F です 2118:一度に描画できるプリミティブの最大数:1048575 2122:対応している最大頂点インデックス:16777215 2126:同時にレンダリングできるバッファの数:4 2130:最大テクスチャサイズ 幅:8192 高さ:8192 2134:テクスチャステージテンポラリレジスタ:使用可 2138:減算合成のハードウェア対応:ネイティブ 2141:ハードウェア頂点シェーダーバージョンコード:300 2154:エミュレーション頂点シェーダーバージョンコード:エミュレーション無し 2163:ピクセルシェーダーバージョンコード:300 2181:バックバッファロック転送の時間:1209nsec 一時的な描画可能バッファを使用した転送の時間:1775nsec 2184:バックバッファロックを使用します 2187:Zバッファを作成します.... 成功 2359:プログラマブルシェーダーを使用します 2439:フォントの初期化を行います 2445:フォントの初期化は正常に終了しました 2470:文字コードバッファの初期化を行います... 完了しました 2483:UserMes: Image::AutoRemake Start 2487:UserMes: Image::AutoRemake Result :ScreenX = 128 ScreenY = 128 MakeScreen Return:67305473 2793:mem alloc size: 0( 0.000kb) file:Main\DxFont.cpp line:1814 ID:584 addr:01337bc8 data:<> ] 2800:mem free size: 0( 0.000kb) file:Main\DxFont.cpp line:1814 ID:584 addr:01337bc8 data:<> ] 2831:mem alloc size: 0( 0.000kb) file:Main\DxFont.cpp line:1814 ID:779 addr:01337bc8 data:<> ] 2838:mem free size: 0( 0.000kb) file:Main\DxFont.cpp line:1814 ID:779 addr:01337bc8 data:<> ] 2870:mem alloc size: 0( 0.000kb) file:Main\DxFont.cpp line:1814 ID:974 addr:01337bc8 data:<> ] 2878:mem free size: 0( 0.000kb) file:Main\DxFont.cpp line:1814 ID:974 addr:01337bc8 data:<> ] 2908:mem alloc size: 0( 0.000kb) file:Main\DxFont.cpp line:1814 ID:1169 addr:01337bc8 data:<> ] 2916:mem free size: 0( 0.000kb) file:Main\DxFont.cpp line:1814 ID:1169 addr:01337bc8 data:<> ] 2949:mem alloc size: 0( 0.000kb) file:Main\DxFont.cpp line:1814 ID:1364 addr:01337bc8 data:<> ] 2957:mem free size: 0( 0.000kb) file:Main\DxFont.cpp line:1814 ID:1364 addr:01337bc8 data:<> ] 2991:mem alloc size: 0( 0.000kb) file:Main\DxFont.cpp line:1814 ID:1559 addr:01337bc8 data:<> ] 2999:mem free size: 0( 0.000kb) file:Main\DxFont.cpp line:1814 ID:1559 addr:01337bc8 data:<> ] 3032:mem alloc size: 0( 0.000kb) file:Main\DxFont.cpp line:1814 ID:1754 addr:01337bc8 data:<> ] 3042:mem free size: 0( 0.000kb) file:Main\DxFont.cpp line:1814 ID:1754 addr:01337bc8 data:<> ] 3077:mem alloc size: 0( 0.000kb) file:Main\DxFont.cpp line:1814 ID:1949 addr:01337bc8 data:<> ] 3086:mem free size: 0( 0.000kb) file:Main\DxFont.cpp line:1814 ID:1949 addr:01337bc8 data:<> ] 3094:UserMes: Image::AutoRemake Start 3097:UserMes: Image::AutoRemake Result :ScreenX = 540 ScreenY = 720 MakeScreen Return:79626424 6412:UserMes: Function,PauseDraw Point0 6423:UserMes: Function,VScreenGraphFilterGauss8 Start pParm = 33
メンテ
Re: GraphFilterが働かない。 ( No.8 )
名前:管理人 日時:2014/08/22 01:19

仮想スクリーンが2のn乗サイズ以外でも問題ありません 手元で以下の様なテストプログラムを組んでみたのですが、クラッシュは発生しませんでした #include "DxLib.h" int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow ) { int Screen ; int Handle ; int Param ; ChangeWindowMode( TRUE ) ; if( DxLib_Init() < 0 ) { return -1 ; } Handle = LoadGraph( "Src1.bmp" ) ; Screen = MakeScreen( 540, 720 ) ; Param = 800 ; while( ProcessMessage() == 0 ) { // パラメータ操作 if( CheckHitKey( KEY_INPUT_DOWN ) ) { Param -= 10 ; if( Param < 0 ) { Param = 0 ; } } if( CheckHitKey( KEY_INPUT_UP ) ) { Param += 10 ; } // 仮画面へ Src1.bmp を描画 SetDrawScreen( Screen ) ; ClearDrawScreen() ; DrawGraph( 0, 0, Handle, FALSE ) ; // ガウスフィルタ GraphFilter( Screen, DX_GRAPH_FILTER_GAUSS, 8, Param ) ; // 裏画面に描画 SetDrawScreen( DX_SCREEN_BACK ) ; ClearDrawScreen() ; DrawGraph( 0, 0, Screen, FALSE ) ; // パラメータ描画 DrawFormatString( 0, 0 + 256, GetColor( 255,255,255 ), "Param:%d", Param ) ; // 裏画面の内容を表画面に反映 ScreenFlip() ; } DxLib_End() ; return 0 ; } よろしければうずらさんの環境でも上記サンプルではクラッシュが発生しないか 試してみて頂けないでしょうか?
メンテ
Re: GraphFilterが働かない。 ( No.9 )
名前:うずら 日時:2014/08/22 12:44

サンプルありがとうございます。コードを一切書き換えていませんが発生しました。 数回リビルドした後で発生しました。 実行の様子をキャプチャしてみましたので確認お願いします。 発生した場合としなかった場合の様子が録画されています。 前に発生するビルドだと必ず発生する、と書きましたが同じビルドで発生しました。以下URLです。 fast-uploader.com/file/6964234469906/ Log.txtはこのようになっています。 1:システムの情報を出力します 7: DXライブラリ Ver3.12d 55: 論理プロセッサの数 : 8 59: OS Windows8 ( Build 9200 ) 168: 現時点のCPU動作速度:大体2.38GHz 172: MMX命令を使用します 175: SSE命令が使用可能です 192: SSE2命令が使用可能です 197: CPUベンダ:GenuineIntel 230: CPU名:Intel(R) Core(TM) i7-4700MQ CPU @ 2.40GHz 247:COMの初期化... 成功しました 259:メモリ総量:8104.09MB 空きメモリ領域:5280.30MB 276:タイマーの精度を検査します 282:精度結果 更新回数 マルチメディアタイマー:0 パフォーマンスカウンター:60 287: パフォーマンスカウンターを使用します タイマー精度 : 2338.345000 KHz 294: ソフトの二重起動検査... 二重起動はされていませんでした 320:ウインドウクラスを登録します... 登録に成功しました 342:ウインドウモード起動用のウインドウを作成します 351:ウインドウの作成に成功しました 355:ウインドウを表示します 369:IMEを無効にしました 374:ウインドウスタイルをウインドウモード用に変更します... 完了 400:DirectInput関係初期化処理 405: XInput DLL の読み込み中... 成功 415: DirectInput7 の取得中... 成功 439: 引き続き初期化処理... 初期化成功 448: ジョイパッドの初期化... 456: ジョイパッドの初期化は正常に終了しました 460: マウスデバイスの初期化... 初期化成功 467: キーボードデバイスの初期化... 初期化成功 475:DirectInput 関連の初期化は正常に終了しました 479:XAudio2 の初期化を行います 487: XAudio2_8.dll を使用します 492: XAudio2 インターフェースの取得と初期化を行います.... 成功 Ver2.8 511:XAudio2 の初期化は正常に終了しました 517:DirectDraw オブジェクトの取得を行います.... 成功 526:引き続き初期化処理... 初期化に成功しました 547:IDirect3D9Ex オブジェクトを取得します.... 成功 567:IDirect3DDevice9Ex オブジェクトを取得します.... ハードウエア頂点演算を使用します 848:成功 852:Driver:igdumdim32.dll Description:Intel(R) HD Graphics 4600 856:画面のフォーマットは D3DFMT_X8R8G8B8 です 860:16bit Zバッファフォーマットは D3DFMT_D16 です 865:24bit Zバッファフォーマットは D3DFMT_D24X8 です 868:32bit Zバッファフォーマットは D3DFMT_D24X8 です 872:16bit カラーフォーマットは D3DFMT_R5G6B5 です 876:32bit カラーフォーマットは D3DFMT_X8R8G8B8 です 879:アルファ付き 16bit カラーフォーマットは D3DFMT_A4R4G4B4 です 882:アルファ付き 32bit カラーフォーマットは D3DFMT_A8R8G8B8 です 886:アルファテスト用 16bit カラーフォーマットは D3DFMT_A1R5G5B5 です 889:アルファテスト用 32bit カラーフォーマットは D3DFMT_A8R8G8B8 です 893:DXT1テクスチャフォーマットはD3DFMT_DXT1 です 897:DXT2テクスチャフォーマットはD3DFMT_DXT2 です 900:DXT3テクスチャフォーマットはD3DFMT_DXT3 です 904:DXT4テクスチャフォーマットはD3DFMT_DXT4 です 908:DXT5テクスチャフォーマットはD3DFMT_DXT5 です 952:描画用 16bit カラーフォーマットは D3DFMT_R5G6B5 です 956:描画用 32bit カラーフォーマットは D3DFMT_X8R8G8B8 です 960:描画用アルファ付き 32bit カラーフォーマットは D3DFMT_A8R8G8B8 です 965:描画用ABGR整数16ビット型カラーフォーマットは D3DFMT_A16B16G16R16 です 968:描画用ABGR浮動小数点16ビット型カラーフォーマットは D3DFMT_A16B16G16R16F です 972:描画用ABGR浮動小数点32ビット型カラーフォーマットは D3DFMT_A32B32G32R32F です 976:描画用1チャンネル整数8ビット型カラーフォーマットは D3DFMT_A8R8G8B8 です 979:描画用1チャンネル整数16ビット型カラーフォーマットは D3DFMT_G16R16 です 983:描画用1チャンネル浮動小数点16ビット型カラーフォーマットは D3DFMT_R16F です 987:描画用1チャンネル浮動小数点32ビット型カラーフォーマットは D3DFMT_R32F です 991:描画用2チャンネル整数8ビット型カラーフォーマットは D3DFMT_A8B8G8R8 です 995:描画用2チャンネル整数16ビット型カラーフォーマットは D3DFMT_G16R16 です 998:描画用2チャンネル浮動小数点16ビット型カラーフォーマットは D3DFMT_G16R16F です 1002:描画用2チャンネル浮動小数点32ビット型カラーフォーマットは D3DFMT_G32R32F です 1007:一度に描画できるプリミティブの最大数:1048575 1011:対応している最大頂点インデックス:16777215 1014:同時にレンダリングできるバッファの数:4 1018:最大テクスチャサイズ 幅:8192 高さ:8192 1022:テクスチャステージテンポラリレジスタ:使用可 1025:減算合成のハードウェア対応:ネイティブ 1029:ハードウェア頂点シェーダーバージョンコード:300 1033:エミュレーション頂点シェーダーバージョンコード:エミュレーション無し 1045:ピクセルシェーダーバージョンコード:300 1071:バックバッファロック転送の時間:3100nsec 一時的な描画可能バッファを使用した転送の時間:7916nsec 1075:バックバッファロックを使用します 1078:Zバッファを作成します.... 成功 1359:プログラマブルシェーダーを使用します 1450:フォントの初期化を行います 1455:フォントの初期化は正常に終了しました 1470:文字コードバッファの初期化を行います... 完了しました
メンテ
Re: GraphFilterが働かない。 ( No.10 )
名前:管理人 日時:2014/08/23 19:05

お試しいただき+録画動画のアップありがとうございます アップしていただいた動画を拝見していて気が付いたのですが、私の環境でも Releaseビルドで実行すると現象が再現しました 原因は配列のサイズ以上の箇所を指定していたことによるメモリの不正なアクセスでした 何年も前から変更していない箇所だったので、今までは偶々アクセスしていたメモリ領域が 別の用途で使用されていたのかもしれません・・・ 修正版をアップしましたので、よろしければお試しください m(_ _;m http://homepage2.nifty.com/natupaji/DxLib/DxLibVCTest.exe // VisualC++ 用 http://homepage2.nifty.com/natupaji/DxLib/DxLibBCCTest.exe // BorlandC++ 用 http://homepage2.nifty.com/natupaji/DxLib/DxLibGCC_DevCppTest.exe // Dev-C++ 用 http://homepage2.nifty.com/natupaji/DxLib/DxLibGCC_MinGWTest.exe // MinGW 用 http://homepage2.nifty.com/natupaji/DxLib/DxLibDotNet.zip // .NET用 http://homepage2.nifty.com/natupaji/DxLib/DxLibMakeTest.exe // ソース (中身を既存のライブラリのファイルに上書きして、BCCをお使いの 場合は『再構築』を、VCをお使いの場合は『リビルド』を、 Dev-C++をお使いの方は「Rebuild All(Ctrl+F11)」をして下さい)
メンテ
Re: GraphFilterが働かない。 ( No.11 )
名前:うずら 日時:2014/08/23 19:23

ありがとうございます。助かります。(*´▽`*) 追記:完全に個人的なお願いなんですが、 今制作中のプログラムをコンテストに出す予定で製作しています。 提出は9月の5日あたりにする予定なんですが、 その際に軽量版パッケージを使用したいので近いうちに正式版をリリースしていただけないでしょうか。
メンテ
Re: GraphFilterが働かない。 ( No.12 )
名前:管理人 日時:2014/08/24 11:51

Ver3.12cは大きなバグが何個も見つかってしまったので私も早めに次バージョンを リリースしたいと思っていますが、直ぐにリリースできるかどうか分からないのでとりあえず DxLibVCTest.exe のような暫定の最新版軽量版パッケージを作成しました https://dxlib.xsrv.jp/temp/DxLibNoneSoftDrawCode_VC_Test.exe よろしければお使いください m(_ _)m
メンテ
Re: GraphFilterが働かない。 ( No.13 )
名前:うずら 日時:2014/08/24 12:20

ありがとうございます。使わさせていただきます。(*´▽`*)
メンテ

Page: 1 |

題名
名前
コメント
パスワード (記事メンテ時に使用)

   クッキー保存