トップページ > 記事閲覧
CreateDXFontData で作成したフォントハンドルが描画されない
名前:みこ 日時: 2022/07/16 01:41

度々失礼します。 表題の件、以下手順を試行したのですが文字が描画されません。 【試行内容】 ・以下コマンドでdftファイル作成   CreateDXFontData.exe /F"HG丸ゴシックM-PRO" /B4 /S100 /CUTF8 /O"HGMaruGothicMPRO_100.dft" ・以下コードを実行 ______________________________________ int fHandle; if(fHandle = LoadFontDataToHandle("HGMaruGothicMPRO_100.dft") != -1){ // 結果→ -1以外 DrawString(0, 0, "正常に読み込みました。", 0xffffff); // 結果→ 描画されます if(DrawStringToHandle(0,20, "FontHandleを描画", 0xffffff, fHandle) == -1){ // 結果→ -1(描画されません) DrawString(0, 20, "描画に失敗しました。", 0xff0000); } } ______________________________________ ・サンプルの "MS 明朝シフトJIS文字作成.bat"、"MS 明朝データ作成.bat" で出力したdtfファイルでも結果は変わらず ・Android 版で実行しても結果変わらず なお、Log.txtも含めエラーメッセージはありませんでした。 念の為私の環境で出力したdtfファイルを以下にアップしておきます。 w_w_w.dropbox.com/sh/wcti61kvryohl2n/AACi5kKwbylFpb6FaajV5hjna?dl=0 【環境】 DxLib 3.23b (念の為7/15に更新) Windows版、Android版 Visual Studio 2019 Community 16.11.16 Windows11 Home x64 22H2 22622.290 Beta 【フォントハンドル機能拡張の要望】 また、別件の書込で申し訳ないのですが要望があります。 読み込んだフォントハンドルの拡大縮小描画が可能な DrawExtendStringToHandle() 関数のように、 DrawKeyInputString() 関数もフォントハンドルの拡大縮小描画に対応して頂きたく存じ上げます。  ※急ぎでは無いので手が空いた時に、次回の更新時についでに実装して頂く形でも大丈夫です。 以上、お手数をお掛けしますが何卒宜しくお願い申し上げます。
メンテ

Page: 1 |

Re: CreateDXFontData で作成したフォントハンドルが描画されない ( No.1 )
名前:管理人 日時:2022/07/16 02:20

> if(fHandle = LoadFontDataToHandle("HGMaruGothicMPRO_100.dft") != -1){ // 結果→ -1以外 こちらのコードですと、fHandle には LoadFontDataToHandle("HGMaruGothicMPRO_100.dft") != -1 の計算結果( LoadFontDataToHandle の戻り値が -1 かどうかの結果 ( false(0) 又は true(1) ) )が代入されてしまい、 フォントハンドルが代入されませんので if((fHandle = LoadFontDataToHandle("HGMaruGothicMPRO_100.dft")) != -1){ // 結果→ -1以外 ↑ こちらのように LoadFontDataToHandle の戻り値を fHandle に代入する処理が先に行なわれるように 括弧を追加していただければ文字が描画されるようになると思います よろしければお試しください m(_ _)m > 読み込んだフォントハンドルの拡大縮小描画が可能な DrawExtendStringToHandle() 関数のように、 > DrawKeyInputString() 関数もフォントハンドルの拡大縮小描画に対応して頂きたく存じ上げます。 了解しました、実装完了後にこちらのスレッドにご連絡します
メンテ
Re: CreateDXFontData で作成したフォントハンドルが描画されない ( No.2 )
名前:みこ 日時:2022/07/16 20:42

お世話になっております。 ご回答ありがとうございます! 括弧を付けた所正常に動作しました。(お恥ずかしい凡ミスでした、、お騒がせしましたm(__)m) また、DrawKeyInputString() の拡大縮小機能をご対応の件、ありがとうございます! dftファイルを使用した文字列の出力機能を使い色々試しているのですが新たな問題が発覚しましたのでご連絡致します。 【内容】 LoadFontDataToHandle() で EdgeSizeを 5 以上に設定すると、描画関数内で例外が発生します。 0 〜 4 の場合は正常に動作します。 CreateFontToHandle() で読み込んだ フォントハンドルは正常に動作しました。 念の為様々なdftファイル(サンプル"MS 明朝シフトJIS文字作成.bat"等含む)でデバッグしましたが結果は同じでした。 また、詳細な例外メッセージが取得できないかと思い try{}catch(exception){} を使用してもキャッチ出来ませんでした。 ______________________________________ int createHandle = CreateFontToHandle("HG丸ゴシックM-PRO", 100, 1, DX_FONTTYPE_ANTIALIASING_EDGE_4X4, -1, 5); int fHandle = LoadFontDataToHandle("HGMaruGothicMPRO_100.dft", 5); // 結果→ -1以外 DrawStringToHandle(0, 0, "createHandle", 0xffffff, createHandle); // 正常 DrawStringToHandle(0, 20, "fHandle", 0xffffff, fHandle);     // 例外発生 ______________________________________ 0x00007FF66E83A640 で例外がスローされました (〜.exe 内): 0xC0000005: 場所 0x0000000000000000 の読み取り中にアクセス違反が発生しました ご確認の程宜しくお願い申し上げます。
メンテ
Re: CreateDXFontData で作成したフォントハンドルが描画されない ( No.3 )
名前:管理人 日時:2022/07/17 05:18

LoadFontDataToHandle による文字描画は正常に動作したようで何よりです > dftファイルを使用した文字列の出力機能を使い色々試しているのですが新たな問題が発覚しましたのでご連絡致します。 すみません、先日 EdgeSize を 5以上にした場合の処理を変更したのですが、 LoadFontDataToHandle でフォントハンドルを作成した際の処理に同変更を加えていませんでした orz LoadFontDataToHandle で EdgeSize を 5以上にしても例外が発生しないように 修正したバージョンをこちらにアップしましたので、よろしければお試し下さい 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.zip // Android版 https://dxlib.xsrv.jp/temp/DxLibMakeTest.zip // ソース (中身を既存のライブラリのファイルに上書きして『リビルド』をして下さい)
メンテ
Re: CreateDXFontData で作成したフォントハンドルが描画されない ( No.4 )
名前:みこ 日時:2022/07/18 07:50

修正ありがとうございます! ご提示頂いた "Windows版 VisualC++ 用" と "Android版" で正常に動作する事を確認致しました。 大半の問題は解決しましたが、 DrawKeyInputString() 関数の拡大縮小対応まで本スレッドは未解決として残しておきます。 お手数をお掛けしますが宜しくお願い申し上げます。m(__)m
メンテ
Re: CreateDXFontData で作成したフォントハンドルが描画されない ( No.5 )
名前:管理人 日時:2022/07/18 22:59

修正版で正常動作したようで何よりです DrawKeyInputString の拡大縮小対応版の追加が完了しましたので、何度も申し訳ありませんが よろしければこちらの暫定最新版をダウンロードしてください 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.zip // Android版 https://dxlib.xsrv.jp/temp/DxLibMakeTest.zip // ソース (中身を既存のライブラリのファイルに上書きして『リビルド』をして下さい) 以下の関数を追加しました // キー入力ハンドルの入力中情報の描画( 拡大率指定付き ) int DrawKeyInputExtendString( int x, int y, double ExRateX, double ExRateY, int InputHandle , int DrawCandidateList = TRUE ) ; DrawKeyInputString に引数 ExRateX と ExRateY が追加された関数となっています よろしければお試し下さい m(_ _)m
メンテ
Re: CreateDXFontData で作成したフォントハンドルが描画されない ( No.6 )
名前:みこ(解決済み) 日時:2022/07/19 01:48

お世話になっております。 ご対応ありがとうございます! 確認した所、DrawKeyInputExtendString() が正常に動作しましたのでご連絡致します。 また機会が御座いましたら宜しくお願い申し上げますm(__)m
メンテ

Page: 1 |

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

   クッキー保存