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
|
Re: GraphFilterが働かない。 ( No.13 ) |
- 名前:うずら 日時:2014/08/24 12:20
ありがとうございます。使わさせていただきます。(*´▽`*)
|