トップページ > 記事閲覧
Dxアーカイブからフォントを読み込みたい
名前:にこよう 日時: 2019/09/08 19:51

今晩は、いつもお世話になっております。 Dxアーカイブからttfやotfファイルを読み込みたいのですが、 下のサイトを参考に(まるパクリして)みたのですがうまくいきませんでした(エラー処理に入ってしまう) 一度止めて変数を確認してみましたが、ぱっと見変数の数がおかしかったりはしていませんでした。 以前はAddFontResourceExを使っていたので、パスに間違いはないと思われます joynote.hatenadiary.org/entry/20100709/1278708168 推測できる原因、別のやり方等ありましたら教えていただけると嬉しいですm(__)m int FontFileSize = FileRead_size("Font\\aoyagireisyosimo_2_01.ttf"); // フォントファイルを開く int FontFileHandle = FileRead_open("Font\\aoyagireisyosimo_2_01.ttf"); // フォントデータ格納用のメモリ領域を確保 void* Buffer = new void*[FontFileSize]; // フォントファイルを丸ごとメモリに読み込む FileRead_read(Buffer, FontFileSize, FontFileHandle); // AddFontMemResourceEx引数用 DWORD font_num = 0; // メモリに読み込んだフォントデータをシステムに追加 if (AddFontMemResourceEx(Buffer, FontFileSize, NULL, &font_num) == 0) { ERR_GL("フォントデータの読み込みに失敗しました"); return; } FileRead_close(FontFileHandle); delete[] Buffer; (勝手にnewに書き換えたところは正しい書き方かわかりませんが、元のソースそのままでも結果は変わりませんでした)
メンテ

Page: 1 | 2 |

Re: Dxアーカイブからフォントを読み込みたい ( No.2 )
名前:管理人 日時:2019/09/08 23:33

> 推測できる原因、別のやり方等ありましたら教えていただけると嬉しいですm(__)m 載せていただいたプログラムを使ってDXアーカイブ内に入れた aoyagireisyosimo_ttf_2_01.ttf を 読み込んでみましたが AddFontMemResourceEx は成功しました DXアーカイブを使用しない方法では正常に動作しますでしょうか? あと、DXアーカイブは Ver3.20 で大きく仕様が変更されて、Ver3.20 より前のDXライブラリに 入っている DxaEncode.exe で作成されたDXアーカイブは最新版のDXライブラリでは読み込めませんので、 もし最新のDXライブラリをご使用でしたら、DxaEncode.exe も最新のものを使用しているかご確認ください m(_ _)m > DrawExtendGraph関数から-1が帰ってきた場合はどのような原因が考えられるのでしょうか? ・ウィンドウが最小化されているなどして、描画できない状態でDrawExtendGraphが実行された ・DrawExtendGraph( 0, 0, 0, 0, GrHandle, TRUE ); など、面積0の座標指定で関数が呼ばれた ・どこかでグラフィックハンドルを削除してしまっている などでしょうか…
メンテ
Re: Dxアーカイブからフォントを読み込みたい ( No.3 )
名前:にこよう 日時:2019/09/08 23:54

ご返信ありがとうございます >DXアーカイブを使用しない方法では正常に動作しますでしょうか? Dxアーカイブがなくても同じ挙動だと思うので、Dxアーカイブを使用せずに試していました。 >ウィンドウが最小化されているなどして、描画できない状態でDrawExtendGraphが実行された ウィンドウは手前で確認できる状態でした。 描画できていないのを確認したうえで画面に返り値を描画したりしていたので違うと思われます。 >DrawExtendGraph( 0, 0, 0, 0, GrHandle, TRUE ); など、面積0の座標指定で関数が呼ばれた 一時止めて確認してみましたが、問題ありませんでした (一応DrawBoxに同じ変数を渡して描画してみたところ描画されました) >どこかでグラフィックハンドルを削除してしまっている ゲーム内でグラフィックハンドルを削除する関数を使っているのは 分割画像を読み込んで一定時間がたったら分割したハンドルを一つずつ削除しているエフェクト用の関数のみで、 ゲーム内の画像を間違って消すことはないと思われます (分割読み込みを行った画像はどれか一つだけのハンドルしか削除してはいけないとかでなければ問題ないと思われます) すみません、もう少し原因を考えてみますm(__)m
メンテ
Re: Dxアーカイブからフォントを読み込みたい ( No.4 )
名前:にこよう 日時:2019/09/09 18:50

DrawExtendGraphは、画像を読み込む際に範囲指定が1ピクセルずれていたのが原因で正常に描画できていませんでした お手間をおかけしました 今回の件で思ったのですが、画像を分割して読み込む際に分割後の一つの画像サイズを元画像より大きく指定してしまっていた場合、 左上の方(サイズ的に分割可能な部分)の画像を分割して描画できるようにするか、 ハンドルとして-1を格納するようににしたほうが分かりやすいのではないでしょうか? スレッドに関係ない提案で申し訳ないですm(__)m
メンテ
Re: Dxアーカイブからフォントを読み込みたい ( No.5 )
名前:管理人 日時:2019/09/09 23:16

> 今回の件で思ったのですが、画像を分割して読み込む際に分割後の一つの画像サイズを元画像より大きく指定してしまっていた場合、 > 左上の方(サイズ的に分割可能な部分)の画像を分割して描画できるようにするか、 > ハンドルとして-1を格納するようににしたほうが分かりやすいのではないでしょうか? すみません、『画像を分割して読み込む』というのは LoadDivGraph や CreateDivGraphFromMem などの Div系の関数のことでしょうか? それとも DerivationGraph などの具体的な抜き出し範囲を指定する関数のことでしょうか?
メンテ
Re: Dxアーカイブからフォントを読み込みたい ( No.6 )
名前:にこよう 日時:2019/09/10 00:23

>すみません、『画像を分割して読み込む』というのは LoadDivGraph や CreateDivGraphFromMem などの Div系の関数のことでしょうか? LoadDivGraph関数です
メンテ
Re: Dxアーカイブからフォントを読み込みたい ( No.7 )
名前:管理人 日時:2019/09/11 00:22

ご返答ありがとうございます 改めまして > 今回の件で思ったのですが、画像を分割して読み込む際に分割後の一つの画像サイズを元画像より大きく指定してしまっていた場合、 > 左上の方(サイズ的に分割可能な部分)の画像を分割して描画できるようにするか、 > ハンドルとして-1を格納するようににしたほうが分かりやすいのではないでしょうか? ご提案ありがとうございます、確かに普通のハンドル値が代入されていて 一見成功してしまっているようになっていますね… 『エラーが発生した場合はハンドルの配列に-1を格納する』の処理を行うようにしましたので よろしければお試しください m(_ _;m https://dxlib.xsrv.jp/temp/DxLibVCTest.zip // Windows版 VisualC++ 用 https://dxlib.xsrv.jp/temp/DxLibBCCTest.zip // Windows版 BorlandC++ 用 https://dxlib.xsrv.jp/temp/DxLibBCC2Test.zip // Windows版 C++ Builder 10.3 用 https://dxlib.xsrv.jp/temp/DxLibGCC_MinGWTest.zip // Windows版 MinGW 用 https://dxlib.xsrv.jp/temp/DxLibDotNet.zip // Windows版 .NET用 https://dxlib.xsrv.jp/temp/DxLibAndroidTest_ARM.zip // Android版 ARM用 https://dxlib.xsrv.jp/temp/DxLibAndroidTest_ARM64.zip // Android版 ARM64用 https://dxlib.xsrv.jp/temp/DxLibAndroidTest_x86.zip // Android版 x86用 https://dxlib.xsrv.jp/temp/DxLibAndroidTest_x64.zip // Android版 x64用 https://dxlib.xsrv.jp/temp/DxLibiOSTest.zip // iOS版 https://dxlib.xsrv.jp/temp/DxLibMakeTest.zip // ソース (中身を既存のライブラリのファイルに上書きして『リビルド』をして下さい)
メンテ
Re: Dxアーカイブからフォントを読み込みたい ( No.8 )
名前:にこよう 日時:2019/09/12 20:18

色々試してみたのですが、-1を格納することができませんでした。 お手数ですが、ライブラリの確認をお願いしたいですm(__)m
メンテ
Re: Dxアーカイブからフォントを読み込みたい ( No.9 )
名前:管理人 日時:2019/09/12 23:45

手元で int GrHandle[ 10 ] ; LoadDivGraph( "test2.bmp", 10 , 4 , 3 , 64 , 64 , GrHandle ) ; というプログラムを実行してみたところ、GrHandle 配列の各要素に -1 が代入されました ( 第5,第6引数は正しくは 48, 56 で、64, 64 では画像サイズが足りない為エラーになり、 配列の各要素には -1 が代入され、戻り値も -1 になります ) にこようさんの環境では上記のようなプログラムを実行しても配列の各要素に -1 が代入 されないのでしょうか?
メンテ
Re: Dxアーカイブからフォントを読み込みたい ( No.10 )
名前:にこよう 日時:2019/09/14 00:02

>にこようさんの環境では上記のようなプログラムを実行しても配列の各要素に -1 が代入されないのでしょうか? すみません、非同期読み込みの存在を完全に忘れておりました 同期読み込みの状態で読み込めば正常に-が格納されるのを確認しましたm(__)m Dxlibを使用する場合は非同期読み込みを使用することが多いと思うのですが、非同期読み込み時に-1を格納するのは難しいでしょうか? また、これのお陰様で気が付くことが出来たのですが、フォントの読み込みエラーが発生していたのも非同期読み込み中に読み込んでいたからでした (読み込み関連を一つの関数にまとめていたため非同期読み込みが解除される前に一番上のスレッドのコードを実行していました) フォントを関連付ける?みたいな役割の関数はDXライブラリの関数ではないと思うのですが、何故ライブラリ内の同期読み込み設定が影響するのでしょうか? (非同期読み込みはファイルの読み込みも順次行われて行くのでしょうか?)
メンテ
Re: Dxアーカイブからフォントを読み込みたい ( No.11 )
名前:管理人 日時:2019/09/14 22:03

> Dxlibを使用する場合は非同期読み込みを使用することが多いと思うのですが、非同期読み込み時に-1を格納するのは難しいでしょうか? すみません、確かに非同期読み込みの場合は -1 が格納されないですね… 非同期読み込みでも -1 が格納されるようにしてみましたので、よろしければお試しください m(_ _;m https://dxlib.xsrv.jp/temp/DxLibVCTest.zip // Windows版 VisualC++ 用 https://dxlib.xsrv.jp/temp/DxLibBCCTest.zip // Windows版 BorlandC++ 用 https://dxlib.xsrv.jp/temp/DxLibBCC2Test.zip // Windows版 C++ Builder 10.3 用 https://dxlib.xsrv.jp/temp/DxLibGCC_MinGWTest.zip // Windows版 MinGW 用 https://dxlib.xsrv.jp/temp/DxLibDotNet.zip // Windows版 .NET用 https://dxlib.xsrv.jp/temp/DxLibAndroidTest_ARM.zip // Android版 ARM用 https://dxlib.xsrv.jp/temp/DxLibAndroidTest_ARM64.zip // Android版 ARM64用 https://dxlib.xsrv.jp/temp/DxLibAndroidTest_x86.zip // Android版 x86用 https://dxlib.xsrv.jp/temp/DxLibAndroidTest_x64.zip // Android版 x64用 https://dxlib.xsrv.jp/temp/DxLibiOSTest.zip // iOS版 https://dxlib.xsrv.jp/temp/DxLibMakeTest.zip // ソース (中身を既存のライブラリのファイルに上書きして『リビルド』をして下さい) > フォントを関連付ける?みたいな役割の関数はDXライブラリの関数ではないと思うのですが、何故ライブラリ内の同期読み込み設定が影響するのでしょうか? 非同期読み込みが有効になっていると FileRead_open や FileRead_read も非同期処理になるので、 スレッドの最初のコードのように FileRead_open の直後に FileRead_read を実行すると、 まだファイルのオープンが完了しておらず FileRead_read が失敗する可能性があります ( 仮に FileRead_read を実行する時点で FileRead_open が完了していて FileRead_read が成功しても、 直後の AddFontMemResourceEx を実行する時点で FileRead_read が完了していなければ、 AddFontMemResourceEx が失敗します ) FileRead_open を実行する前に SetUseASyncLoadFlag( FALSE ); を実行して、非同期読み込みを OFF にすれば成功すると思いますので、よろしければお試しください m(_ _)m
メンテ
Re: Dxアーカイブからフォントを読み込みたい ( No.12 )
名前:にこよう 日時:2019/09/15 12:10

>非同期読み込みでも -1 が格納されるようにしてみましたので、よろしければお試しください m(_ _;m 実装ありがとうございます しかし、確認するために新しいDxライブラリを使用して(以前のDxライブラリを使用していた時と同じコードで) リビルドして実行してみたところ、画像等のローディング中に停止してしまいました 一度以前のDxに戻してリビルドしてみたところ正常に読み込めたのですが、再度、新しいDxライブラリを使用してみたところ、 やはりロードの途中で止まってしまいました >まだファイルのオープンが完了しておらず FileRead_read が失敗する可能性があります そうだったんですね、知りませんでした ご丁寧に教えていただいてありがとうございます 無事正常に読み込むことに成功したので、一応パスを渡すだけで読み込める関数を貼っておきます // Dxアーカイブやディレクトリから、フォントファイルを読み込む int AddDxArchiveFontResource(LPCSTR FontPath) { int async_flag = GetUseASyncLoadFlag(); if (async_flag) SetUseASyncLoadFlag(FALSE); // もし非同期読み込み状態なら無効にする int font_file_size = static_cast<int>(FileRead_size(FontPath)); // ファイルのサイズを得る void* buffer = new void* [font_file_size]; // フォントデータ格納用のメモリ領域を確保 int font_file_handle = FileRead_open(FontPath); // フォントファイルを開く if (font_file_handle == -1) // 失敗すれば { if (async_flag) SetUseASyncLoadFlag(TRUE); // 非同期読み込みを有効にする return -1; } FileRead_read(buffer, font_file_size, font_file_handle); // フォントファイルを丸ごとメモリに読み込む FileRead_close(font_file_handle); // ファイルを閉じる DWORD font_num = 0; // AddFontMemResourceEx引数用 if (AddFontMemResourceEx(buffer, font_file_size, NULL, &font_num) == 0) // メモリに読み込んだフォントデータをシステムに追加 { //ERR_GL("フォントデータの読み込みに失敗しました"); if (async_flag) SetUseASyncLoadFlag(TRUE); // 非同期読み込みを有効にする return -1; } delete[] buffer; // メモリを開放する if (async_flag) SetUseASyncLoadFlag(TRUE); // 非同期読み込みを有効にする return 0; }
メンテ
Re: Dxアーカイブからフォントを読み込みたい ( No.13 )
名前:管理人 日時:2019/09/15 12:50

> しかし、確認するために新しいDxライブラリを使用して(以前のDxライブラリを使用していた時と同じコードで) > リビルドして実行してみたところ、画像等のローディング中に停止してしまいました 非同期読み込みを使わなくても停止してしまいますでしょうか? あと、今回非同期読み込みに失敗していたら -1 を代入するようにするために、LoadDivGraph で渡した 『グラフィックハンドルを格納する配列のアドレス』を非同期読み込み中ずっと使用するようにしています なので、非同期読み込みの関数呼び出しにローカル変数を使うと恐らく正常に動作しません // 今までは大丈夫で、今回から駄目になった書き方 int GlobalGrHandle[ 10 ]; void LoadImage( void ) { int LocalGrHandle[ 10 ]; // 非同期読み込みON SetUseASyncLoadFlag( TRUE ); // とりあえずローカル変数にハンドルを入れる LoadDivGraph( "test2.bmp" , 10 , 4 , 3 , 48 , 56 , LocalGrHandle ) ; // ローカル変数に格納されたハンドルをグローバル変数にハンドルを入れる for( int i = 0; i < 10; i++ ) GlobalGrHandle[ i ] = LocalGrHandle[ i ]; // 関数から出ると LocalGrHandle が無効になってしまうので× // ( 非同期読み込み処理は LocalGrHandle の中の数値を使うため ) } ↑こちらのような例はありませんでしょうか? > 無事正常に読み込むことに成功したので、一応パスを渡すだけで読み込める関数を貼っておきます ありがとうございます 解決したようで何よりです
メンテ
Re: Dxアーカイブからフォントを読み込みたい ( No.14 )
名前:にこよう 日時:2019/09/15 14:13

>↑こちらのような例はありませんでしょうか? 正にそのような書き方をしておりました 画像分割数のポインターを渡し、一部不要な画像を除き、順番を変更して別の構造体に格納し直すということをやっております -1を格納するためにはこのような処理になってしまうのですね... これを変更して対処することは出来るのですが、Dxライブラリのアップデートとして変更してしまうのは、 少し問題があるように感じます 元の使用に戻してしまうか、パスを渡した時点で、大きさのエラーチェックだけを行ってしまうかしたほうが良いのではないでしょうか? (実装していただいたうえで初心者の意見ですみません)
メンテ
Re: Dxアーカイブからフォントを読み込みたい ( No.15 )
名前:管理人 日時:2019/09/16 03:26

> これを変更して対処することは出来るのですが、Dxライブラリのアップデートとして変更してしまうのは、 > 少し問題があるように感じます うーん、薄々そのように思っていましたが、早速問題が発生してしまいましたね… 確かに元の仕様に戻した方が良さそうです > 元の使用に戻してしまうか、パスを渡した時点で、大きさのエラーチェックだけを行ってしまうかしたほうが良いのではないでしょうか? > (実装していただいたうえで初心者の意見ですみません) 大きさを取得するには画像ファイルを読み込む必要があり、非同期処理ではなくなってしまうのでできません なので元の仕様に戻して、エラーについては大きさを間違えないようにしていただくしか無さそうです…
メンテ
Re: Dxアーカイブからフォントを読み込みたい ( No.16 )
名前:にこよう 日時:2019/09/16 11:38

>大きさを取得するには画像ファイルを読み込む必要があり、非同期処理ではなくなってしまうのでできません >なので元の仕様に戻して、エラーについては大きさを間違えないようにしていただくしか無さそうです… そうなんですね、せっかく実装していただいたのに申し訳ないですm(__)m エラーログに表示されるメッセージを(パスやファイル名を表示するなどして)詳しくする、などは難しいでしょうか? また、一つ気になっていることがあるのですが、非同期読み込み時のログにおいて、同じフォルダ内で複数のファイルが見つから語った場合、 基本的に代表の?どれか一つがログに書き出されますが、まれに、フォルダ内の見つからないものすべてが出力されていたり、 全く出力されなかったりしますが、これは何故変化するのでしょうか...?
メンテ
Re: Dxアーカイブからフォントを読み込みたい ( No.17 )
名前:管理人 日時:2019/09/17 06:01

とりあえず -1 を代入する仕様については、非同期読み込み時はエラーになっても -1 が 代入されないという、以前の仕様に戻しました > エラーログに表示されるメッセージを(パスやファイル名を表示するなどして)詳しくする、などは難しいでしょうか? いえ、簡単です 分割元の画像の読み込みに失敗した際は表示していたのですが、サイズ指定の関係で分割に失敗した際は 画像ファイル名等を出力していませんでした… エラーログを追加しましたので、よろしければお試しください m(_ _)m https://dxlib.xsrv.jp/temp/DxLibVCTest.zip // Windows版 VisualC++ 用 https://dxlib.xsrv.jp/temp/DxLibBCCTest.zip // Windows版 BorlandC++ 用 https://dxlib.xsrv.jp/temp/DxLibBCC2Test.zip // Windows版 C++ Builder 10.3 用 https://dxlib.xsrv.jp/temp/DxLibGCC_MinGWTest.zip // Windows版 MinGW 用 https://dxlib.xsrv.jp/temp/DxLibDotNet.zip // Windows版 .NET用 https://dxlib.xsrv.jp/temp/DxLibAndroidTest_ARM.zip // Android版 ARM用 https://dxlib.xsrv.jp/temp/DxLibAndroidTest_ARM64.zip // Android版 ARM64用 https://dxlib.xsrv.jp/temp/DxLibAndroidTest_x86.zip // Android版 x86用 https://dxlib.xsrv.jp/temp/DxLibAndroidTest_x64.zip // Android版 x64用 https://dxlib.xsrv.jp/temp/DxLibiOSTest.zip // iOS版 https://dxlib.xsrv.jp/temp/DxLibMakeTest.zip // ソース (中身を既存のライブラリのファイルに上書きして『リビルド』をして下さい) > また、一つ気になっていることがあるのですが、非同期読み込み時のログにおいて、同じフォルダ内で複数のファイルが見つから語った場合、 > 基本的に代表の?どれか一つがログに書き出されますが、まれに、フォルダ内の見つからないものすべてが出力されていたり、 > 全く出力されなかったりしますが、これは何故変化するのでしょうか...? 恐らく複数のスレッドが同時に Log.txt にログを書き出そうとして衝突してしまい 一部のログしか出力できていないのだと思います 今回のバージョンで Log.txt のオープンに失敗した場合は最大 5 秒間ファイルオープンをトライし続ける ようにしてみましたので、よろしければすべてのログが出力されるようになったかご確認ください m(_ _)m
メンテ
Re: Dxアーカイブからフォントを読み込みたい ( No.18 )
名前:にこよう 日時:2019/09/18 02:06

>エラーログを追加しましたので、よろしければお試しください m(_ _)m ありがとうございます ファイルパスが出力されることを確認しました ただ、ソースコードや画像をいじらずにDxライブラリをアップデートしたところ、今まで描画できていた分割画像が、 突然描画できなくなってしまいました 画像は30x43で16x43の2分割を指定していたため、読み込めないのが正常なのですが、今まで何故か読み込めていたようです >今回のバージョンで Log.txt のオープンに失敗した場合は最大 5 秒間ファイルオープンをトライし続ける >ようにしてみましたので、よろしければすべてのログが出力されるようになったかご確認ください m(_ _)m 400個ほどの(存在しない)音声ファイルと画像ファイルを読み込もうとしてみたのですが、一部しかログに出力されませんでした また、ログに謎の空行が出来ているため一応ログファイルを貼り付けておきますm(__)m 1572:DXライブラリの初期化処理終了 1592:画像ファイル C:\Users\nicoyou\source\repos\th_act_remake\th_act_remake\data\gamelib\circle_bar.png がありません 1859:画像ファイル C:\Users\nicoyou\source\repos\th_act_remake\th_act_remake\data\image\logo.png がありません 1865:画像ファイル C:\Users\nicoyou\source\repos\th_act_remake\th_act_remake\data\image\back\logo.png がありません 1870:画像ファイル C:\Users\nicoyou\source\repos\th_act_remake\th_act_remake\data\image\back\difficulty.png がありません 1878:画像ファイル C:\Users\nicoyou\source\repos\th_act_remake\th_act_remake\data\image\chip\block\bamboo_chip_04.png がありません 1885:画像ファイル C:\Users\nicoyou\source\repos\th_act_remake\th_act_remake\data\image\chip\block\bamboo_chip_022.png がありません 1893:画像ファイル C:\Users\nicoyou\source\repos\th_act_remake\th_act_remake\data\image\chip\block\stone3.png がありません 1901:画像ファイル C:\Users\nicoyou\source\repos\th_act_remake\th_act_remake\data\image\chip\back\chip3_003.png がありません 1910:画像ファイル C:\Users\nicoyou\source\repos\th_act_remake\th_act_remake\data\image\chip\back\bamboo_chip_back1.png がありません 1919:画像ファイル C:\Users\nicoyou\source\repos\th_act_remake\th_act_remake\data\image\chip\back\mapchip05.png がありません 1927:画像ファイル C:\Users\nicoyou\source\repos\th_act_remake\th_act_remake\data\image\item\cerulean0.png がありません 1935:画像ファイル C:\Users\nicoyou\source\repos\th_act_remake\th_act_remake\data\image\item\s_exp4.png がありません 1943:画像ファイル C:\Users\nicoyou\source\repos\th_act_remake\th_act_remake\data\image\bullet\b6.png のロードに失敗しました 1952:画像ファイル C:\Users\nicoyou\source\repos\th_act_remake\th_act_remake\data\image\chara\c4_1.png がありません 1961:画像ファイル C:\Users\nicoyou\source\repos\th_act_remake\th_act_remake\data\image\chara\c1_c.png がありません 1969:画像ファイル C:\Users\nicoyou\source\repos\th_act_remake\th_act_remake\data\image\chara\player0.png のロードに失敗しました 1978:画像ファイル C:\Users\nicoyou\source\repos\th_act_remake\th_act_remake\data\image\back\event_back1.png がありません 1988:画像ファイル C:\Users\nicoyou\source\repos\th_act_remake\th_act_remake\data\image\enemy\back5.png がありません 1996:画像ファイル C:\Users\nicoyou\source\repos\th_act_remake\th_act_remake\data\image\enemy\mini_dragon.png のロードに失敗しました 2004:画像ファイル C:\Users\nicoyou\source\repos\th_act_remake\th_act_remake\data\image\chip\breakable\box.png がありません 2012:画像ファイル C:\Users\nicoyou\source\repos\th_act_remake\th_act_remake\data\image\chip\up\bamboo_chip_193.png がありません 2020:画像ファイル C:\Users\nicoyou\source\repos\th_act_remake\th_act_remake\data\image\chip\block\chip4_0_1.png のロードに失敗しました 2029:画像ファイル C:\Users\nicoyou\source\repos\th_act_remake\th_act_remake\data\image\chip\block\chip3_088.png がありません 2037:画像ファイル C:\Users\nicoyou\source\repos\th_act_remake\th_act_remake\data\image\chip\block\chip2_087.png がありません 2046:画像ファイル C:\Users\nicoyou\source\repos\th_act_remake\th_act_remake\data\image\chip\block\chip1_2_2.png がありません 2053:File Open Error : C:\Users\nicoyou\source\repos\th_act_remake\th_act_remake\data\se\bom_item.mp3 2063:Sound File Load Error : C:\Users\nicoyou\source\repos\th_act_remake\th_act_remake\data\se\bom_item.mp3 2071:File Open Error : C:\Users\nicoyou\source\repos\th_act_remake\th_act_remake\data\se\enemy_end0.mp3 2082:Sound File Load Error : C:\Users\nicoyou\source\repos\th_act_remake\th_act_remake\data\se\enemy_end0.mp3 2094:画像ファイル C:\Users\nicoyou\source\repos\th_act_remake\th_act_remake\data\image\effect\jump.png のロードに失敗しました 2104:画像ファイル C:\Users\nicoyou\source\repos\th_act_remake\th_act_remake\data\image\bullet\laser2.png がありません 2114:Sound File Open Error : C:\Users\nicoyou\source\repos\th_act_remake\th_act_remake\data\bgm\title.mp3 2125:File Open Error : C:\Users\nicoyou\source\repos\th_act_remake\th_act_remake\data\se\block.mp3 2134:Sound File Load Error : C:\Users\nicoyou\source\repos\th_act_remake\th_act_remake\data\se\block.mp3 9567:ウインドウを閉じようとしています
メンテ
Re: Dxアーカイブからフォントを読み込みたい ( No.19 )
名前:管理人 日時:2019/09/18 23:58

> ただ、ソースコードや画像をいじらずにDxライブラリをアップデートしたところ、今まで描画できていた分割画像が、 > 突然描画できなくなってしまいました > 画像は30x43で16x43の2分割を指定していたため、読み込めないのが正常なのですが、今まで何故か読み込めていたようです はい、今回サイズチェックを厳密にしましたので、その関係だと思います ( これまでは内部で作成されているテクスチャのサイズを超えていなければ分割が成功していました ) > 400個ほどの(存在しない)音声ファイルと画像ファイルを読み込もうとしてみたのですが、一部しかログに出力されませんでした > また、ログに謎の空行が出来ているため一応ログファイルを貼り付けておきますm(__)m ログファイルの貼り付けありがとうございます すみません、ログファイルを他のスレッドが使用していたらファイルが開けないはず、と考えてそれに対応する処理を 書いたのですがそれでは駄目だったようです 根本的な対処としてにどれかのスレッドがログ出力処理をしていたら、他のスレッドはログ出力処理が終わるまで 待たせるようにしました 手元で試した限りではわざと失敗する非同期読み込みを何百と実行しても全ての読み込み失敗ログが出力されるように なりましたので、よろしければお試しください m(_ _;m https://dxlib.xsrv.jp/temp/DxLibVCTest.zip // Windows版 VisualC++ 用 https://dxlib.xsrv.jp/temp/DxLibBCCTest.zip // Windows版 BorlandC++ 用 https://dxlib.xsrv.jp/temp/DxLibBCC2Test.zip // Windows版 C++ Builder 10.3 用 https://dxlib.xsrv.jp/temp/DxLibGCC_MinGWTest.zip // Windows版 MinGW 用 https://dxlib.xsrv.jp/temp/DxLibDotNet.zip // Windows版 .NET用 https://dxlib.xsrv.jp/temp/DxLibAndroidTest_ARM.zip // Android版 ARM用 https://dxlib.xsrv.jp/temp/DxLibAndroidTest_ARM64.zip // Android版 ARM64用 https://dxlib.xsrv.jp/temp/DxLibAndroidTest_x86.zip // Android版 x86用 https://dxlib.xsrv.jp/temp/DxLibAndroidTest_x64.zip // Android版 x64用 https://dxlib.xsrv.jp/temp/DxLibiOSTest.zip // iOS版 https://dxlib.xsrv.jp/temp/DxLibMakeTest.zip // ソース (中身を既存のライブラリのファイルに上書きして『リビルド』をして下さい)
メンテ
Re: Dxアーカイブからフォントを読み込みたい ( No.20 )
名前:にこよう 日時:2019/09/19 02:11

>根本的な対処としてにどれかのスレッドがログ出力処理をしていたら、他のスレッドはログ出力処理が終わるまで >待たせるようにしました 対応ありがとうございます 正常にすべての読み込みエラーが出力されていることを確認しましたm(__)m Dxライブラリを使用するうえでは全く支障はないのですが、謎の空行が出来るようです (Log出力の処理を書いた覚えはないのですが、もしかしたら自分で書いたコードのせいかもしれません...) 6318:画像ファイル C:\Users\nicoyou\source\repos\th_act_remake\th_act_remake\data\image\enemy\dragon2.png のロードに失敗しました 6325:画像ファイル C:\Users\nicoyou\source\repos\th_act_remake\th_act_remake\data\image\enemy\dragon1.png のロードに失敗しました 6332:画像ファイル C:\Users\nicoyou\source\repos\th_act_remake\th_act_remake\data\image\enemy\dragon0.png のロードに失敗しました 6340:画像ファイル C:\Users\nicoyou\source\repos\th_act_remake\th_act_remake\data\image\enemy\hebimusume2.png のロードに失敗しました 6348:画像ファイル C:\Users\nicoyou\source\repos\th_act_remake\th_act_remake\data\image\enemy\hebimusume1.png のロードに失敗しました 6356:画像ファイル C:\Users\nicoyou\source\repos\th_act_remake\th_act_remake\data\image\enemy\kimaira.png のロードに失敗しました 6363:画像ファイル C:\Users\nicoyou\source\repos\th_act_remake\th_act_remake\data\image\enemy\mini_dragon.png のロードに失敗しました 6373:画像ファイル C:\Users\nicoyou\source\repos\th_act_remake\th_act_remake\data\image\enemy\golem.png のロードに失敗しました 6380:Sound File Open Error : C:\Users\nicoyou\source\repos\th_act_remake\th_act_remake\data\bgm\map_edit.mp3 6389:Sound File Open Error : C:\Users\nicoyou\source\repos\th_act_remake\th_act_remake\data\bgm\boss03.ogg 6397:Sound File Open Error : C:\Users\nicoyou\source\repos\th_act_remake\th_act_remake\data\bgm\boss02.ogg 6405:Sound File Open Error : C:\Users\nicoyou\source\repos\th_act_remake\th_act_remake\data\bgm\stage02.mp3 6416:Sound File Open Error : C:\Users\nicoyou\source\repos\th_act_remake\th_act_remake\data\bgm\boss01.mp3 6427:Sound File Open Error : C:\Users\nicoyou\source\repos\th_act_remake\th_act_remake\data\bgm\stage01.mp3 6438:Sound File Open Error : C:\Users\nicoyou\source\repos\th_act_remake\th_act_remake\data\bgm\title.mp3 6448:File Open Error : C:\Users\nicoyou\source\repos\th_act_remake\th_act_remake\data\se\break.wav 6460:File Open Error : C:\Users\nicoyou\source\repos\th_act_remake\th_act_remake\data\se\player\water2.mp3 6468:Sound File Load Error : C:\Users\nicoyou\source\repos\th_act_remake\th_act_remake\data\se\player\water2.mp3 6477:File Open Error : C:\Users\nicoyou\source\repos\th_act_remake\th_act_remake\data\se\edadan.mp3 6486:Sound File Load Error : C:\Users\nicoyou\source\repos\th_act_remake\th_act_remake\data\se\edadan.mp3 6494:File Open Error : C:\Users\nicoyou\source\repos\th_act_remake\th_act_remake\data\se\boss_timeout2.wav 6505:Sound File Load Error : C:\Users\nicoyou\source\repos\th_act_remake\th_act_remake\data\se\boss_timeout2.wav
メンテ
Re: Dxアーカイブからフォントを読み込みたい ( No.21 )
名前:管理人 日時:2019/09/22 02:45

正常にすべてのエラーが出力されたようで何よりです > Dxライブラリを使用するうえでは全く支障はないのですが、謎の空行が出来るようです > (Log出力の処理を書いた覚えはないのですが、もしかしたら自分で書いたコードのせいかもしれません...) すみません、確認したところエラーログ出力に不要な改行文字がありました 修正版をアップしましたので、よろしければお試しください m(_ _;m https://dxlib.xsrv.jp/temp/DxLibVCTest.zip // Windows版 VisualC++ 用 https://dxlib.xsrv.jp/temp/DxLibBCCTest.zip // Windows版 BorlandC++ 用 https://dxlib.xsrv.jp/temp/DxLibBCC2Test.zip // Windows版 C++ Builder 10.3 用 https://dxlib.xsrv.jp/temp/DxLibGCC_MinGWTest.zip // Windows版 MinGW 用 https://dxlib.xsrv.jp/temp/DxLibDotNet.zip // Windows版 .NET用 https://dxlib.xsrv.jp/temp/DxLibAndroidTest_ARM.zip // Android版 ARM用 https://dxlib.xsrv.jp/temp/DxLibAndroidTest_ARM64.zip // Android版 ARM64用 https://dxlib.xsrv.jp/temp/DxLibAndroidTest_x86.zip // Android版 x86用 https://dxlib.xsrv.jp/temp/DxLibAndroidTest_x64.zip // Android版 x64用 https://dxlib.xsrv.jp/temp/DxLibiOSTest.zip // iOS版 https://dxlib.xsrv.jp/temp/DxLibMakeTest.zip // ソース (中身を既存のライブラリのファイルに上書きして『リビルド』をして下さい)
メンテ

Page: 1 | 2 |

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

   クッキー保存