Re: 全てのDXライブラリのソースコードでUTF-8とBOMサポート ( No.1 ) |
- 名前:管理人 日時:2023/05/17 00:33
すみません、DXライブラリがサポートしている環境の中には UTF-8 に対応していないものがあるので
DXライブラリのソースを UTF-8 にすることはできません m(_ _;m
ただ、配布するソースファイルは UTF-8 にするというのは検討してみます
ご提案ありがとうございます m(_ _)m
|
Re: 全てのDXライブラリのソースコードでUTF-8とBOMサポート ( No.2 ) |
- 名前:LegendGuard 日時:2023/05/17 16:42
管理人様ありがとうございます。
私はDXライブラリの開発チームに私の提案を通知または報告する方法がわかりません。
これが適切な場所かどうかもわかりません。
ところで、DXライブラリのソースコードは一般公開されていますか?
もしかしたら私が間違っているかもしれません。
|
Re: 全てのDXライブラリのソースコードでUTF-8とBOMサポート ( No.3 ) |
- 名前:管理人 日時:2023/05/18 01:13
> 私はDXライブラリの開発チームに私の提案を通知または報告する方法がわかりません。
DXライブラリの開発は私一人で行っています
> ところで、DXライブラリのソースコードは一般公開されていますか?
はい、こちらのダウンロードページの
<DXライブラリのダウンロード>
https://dxlib.xsrv.jp/dxdload.html
一番下の『DXライブラリ(Ver3.24b)のプロジェクトをダウンロードする(zip圧縮形式(約5.64MB))』をクリックすると
ソースコードをダウンロードできます
|
Re: 全てのDXライブラリのソースコードでUTF-8とBOMサポート ( No.4 ) |
- 名前:LegendGuard 日時:2023/05/18 18:57
返信いただきありがとうございます。m(_ _)m
まだ試していないので、ソースコードに対して何ができるか確認してみます。
Shift-JISからUTF-8にエンコーディングを変更し、CRLFからLFに変更してLinuxや他のシステムとの互換性を高めた上で、
すべてのソースコードをコンパイルできるか確認します。
そして、コンパイルされたリソースをテストします。
また、C++のバージョンは何ですか?
私はUTF-8やUnicodeについて話しているスレッドを見ました。
また、投稿で詳細を伝えていなかったことをお詫び申し上げますが、
実験で言及したゲームプロジェクトはWindows用に作成されたVisual Studioのソリューションを使用しています。
そのため、UTF-8エンコードされた文字列を普遍的にサポートするプロジェクトを行っていました。
貢献することは可能でしょうか?それについては十分な情報を持っていません。
他に関与している人がいるかどうかもわかりませんし、見つけたソースコードに言及している人は次のリンクです:
http s://dxlib.xsrv.jp/cgi/patiobbs/patio.cgi?mode=view&no=3738
DXライブラリのソースコードはSVNやGitHub、バージョン管理環境には存在しないようです。
迷惑をかけたくないのですし、それは開発者次第であり、自身の方法で行うことができます。
ご存じのように、バージョン管理環境ではソースコードの変更や発生したすべてのことを見ることができます。
また、GitHubに関しては、プロジェクトのためのワークフローを使用してコンパイルし、
コンパイルされたリソースをそこから取得することができます。
それによって、コンパイルが成功したかどうかをチェックできます。
|
Re: 全てのDXライブラリのソースコードでUTF-8とBOMサポート ( No.5 ) |
- 名前:管理人 日時:2023/05/18 22:37
> Shift-JISからUTF-8にエンコーディングを変更し、CRLFからLFに変更してLinuxや他のシステムとの互換性を高めた上で、
> すべてのソースコードをコンパイルできるか確認します。
Visual C++ 6.0 や Borland C++ Compiler 5.5 や MinGW 4.5.2 では UTF-8 に対応していないことを確認しています
> また、C++のバージョンは何ですか?
C++ のバージョンは分かりませんが、使用しているコンパイル環境は以下の通りです
Visual C++ 6.0
Visual Studio 2008
Visual Studio 2012
Visual Studio 2013
Visual Studio 2015
Borland C++ Compiler 5.5
C++ Builder 10.4
MinGW 4.5.2
MinGW 4.7.2
MinGW 4.8.1
MinGW 4.9.2
MinGW 5.2.0
MinGW 5.3.0
MinGW 6.3.0
MinGW 7.3.0
MinGW 8.1.0
MinGW 8.2.0
MinGW 10.3.0
MinGW 12.1.0
MinGW 12.2.0
Android Studio 2022.2.1 Patch 1
Xcode 14.3
PS Vita SDK
PS4 SDK
Nintendo Switch SDK
> 貢献することは可能でしょうか?それについては十分な情報を持っていません。
事情があって Shift-JIS を使用していますので、LegendGuardさんに貢献していただけることは無いです
> DXライブラリのソースコードはSVNやGitHub、バージョン管理環境には存在しないようです。
> 迷惑をかけたくないのですし、それは開発者次第であり、自身の方法で行うことができます。
SVN を使用してバージョン管理を行っています
|
Re: 全てのDXライブラリのソースコードでUTF-8とBOMサポート ( No.6 ) |
- 名前:LegendGuard 日時:2023/05/20 00:13
情報をありがとうございます。わかりました。
> SVNを使用してバージョン管理を行っています。
SVNは公開されており、見ることができますか?ただし、誰も変更できない場合でも。
|
Re: 全てのDXライブラリのソースコードでUTF-8とBOMサポート ( No.7 ) |
- 名前:管理人 日時:2023/05/21 00:24
> SVNは公開されており、見ることができますか?ただし、誰も変更できない場合でも。
いえ、非公開です
私以外は見ることはできません
|
Re: 全てのDXライブラリのソースコードでUTF-8とBOMサポート ( No.8 ) |
- 名前:LegendGuard 日時:2023/05/21 07:58
了解しました。返信を親切にしていただき、ありがとうございます。m(_ _)m
DXライブラリがUTF-8をサポートしていないのは残念ですね...
ところで、Linuxの部分を見てみました:http s://github.com/dragoon2014/dxlib-for-linux
おそらくそれはMinGWにも関連しているのかもしれません。
LinuxでDXライブラリのゲームをプレイしているのを見たことがありません。
Linuxにはサポートがないのでしょうか?また、現在開発中ですか(まだ安定版ではありませんか)?
DXライブラリはWindowsのみをサポートしているDirectXではなく、Linux向けのグラフィックスライブラリが必要だと思います。
OpenGLやVulkanなどはいかがでしょうか?
これは別のトピックですので、新しいスレッドを作成して話す必要があるかもしれませんね。
このスレッドをこのまま終了し、このトピックを新しいスレッドに移すことができると思います。
それが私ならやることです。
|
Re: 全てのDXライブラリのソースコードでUTF-8とBOMサポート ( No.9 ) |
- 名前:管理人 日時:2023/05/23 00:07
> ところで、Linuxの部分を見てみました:http s://github.com/dragoon2014/dxlib-for-linux
> Linuxにはサポートがないのでしょうか?また、現在開発中ですか(まだ安定版ではありませんか)?
こちらは dragoon2014さんが開発・管理されているDXライブラリ Linux版となっています
( 私は Linux版の開発には関わっていません )
> DXライブラリはWindowsのみをサポートしているDirectXではなく、Linux向けのグラフィックスライブラリが必要だと思います。
> OpenGLやVulkanなどはいかがでしょうか?
Windowsでは DirectX を使いたいので、Windows版は現在のまま DirectX を使用します
Android版 と iOS版では OpenGL を使用しています
Linux版も OpenGL が使用されています
|
Re: 全てのDXライブラリのソースコードでUTF-8とBOMサポート ( No.10 ) |
- 名前:dra 日時:2023/05/23 00:37
横からですが
非公式にDxLibのLinux版を作ってる者です。
> DXライブラリがUTF-8をサポートしていないのは残念ですね...
何を持って「UTF-8のサポート」かは不明ですが
UTF-8なゲームのソースからDxLib.hを読んで使う場合は
SetUseCharCodeFormat(DX_CHARCODEFORMAT_UTF8);
を使えばDxLibのソース自体の文字コードは気にしないでよいはずです。
ヘッダー自体もUTF-8で統一したうえで自分のリポジトリに取り込んで管理したければ
後述のようなコードで変換することもできます。
> ところで、Linuxの部分を見てみました
ダウンロードページにあるリンクは以前ここの掲示板に紹介した際に
管理人さんのご厚意で載せてもらったもので開発者間の直接の関係はありません。
オリジナルのDxLibはLinuxに対応していないので
必要な処理を追加した上で描画部分はAndroid/iOSのGLESのコードを流用してます。
文字コードについてはDxLibソースのzipを展開したあとで
以下のようなコードを通してLF、UTF-8に統一して扱ってます。
要LinuxですがWSL上でも動作すると思います。
(BOMは使ってないので入れてないですが、知見はお持ちのようなので少し直せばBOM付きにもできるかと思います。
ところで最近のVisual Studioって未だにBOMなしUTF-8なコードはうまく扱えないんですかね)
find DxLibMake -type f | while read f; do cat "$f" | tr -d '\r' > tmp; \
(iconv -f utf-8 -t utf-8 tmp -o "$f" 2>/dev/null) \
|| (iconv -f cp932 -t utf-8 tmp -o "$f"); rm -f tmp; done
実際の使用例
github.com/dragoon2014/dxlib-for-linux/blob/24fd73e/Makefile#L232-L234
> MinGWにも関連しているのかもしれません。
ちょうど言及があったのでついでに
実は上のMakefileを少しいじるとMinGWでWindows向けビルドにも使えます
(記事を書こう書こうと思って放置してしまっている、
とはいえ本題から大分逸れちゃいそうなのでここでは深くは書かないです)
|
Re: 全てのDXライブラリのソースコードでUTF-8とBOMサポート ( No.11 ) |
- 名前:LegendGuard 日時:2023/05/26 16:13
皆さん、返信ありがとうございます。m(_ _)m
> UTF-8なゲームのソースからDxLib.hを読んで使う場合は、
SetUseCharCodeFormat(DX_CHARCODEFORMAT_UTF8);
を使えば、DxLibのソース自体の文字コードは気にしないでよいはずです。
最初の投稿でそのことを述べました。
> (BOMは使ってないので入れてないですが、知見はお持ちのようなので少し直せばBOM付きにもできるかと思います。
ところで最近のVisual Studioって未だにBOMなしUTF-8なコードはうまく扱えないんですかね)
最初の投稿で言った通り、私も確認しました。
ソースファイルがUTF-8でBOMとLFを持つ場合、コンパイルに問題はないと思います。
互換性と移植性の観点から、一部のシステムがCRLFに対応していないため、CRLFの代わりにLFを使用することをおすすめします。
DXライブラリを使用してテキストファイルを読み取るプログラムで作成されたサンプルプロジェクトを示す必要があります。
(すべてのソースコードはUTF-8でBOMとLFを使用しています)
表示するテキストファイルはUTF-8とLFを使用しています。
(BOMを使用すると、読み取りが異なり、先頭に四角形が表示されることがあります)
Visual Studioのソリューションでテストされました。
できるだけ早く、可能な方法でコードをアップロードします(おそらく、次の投稿でここにアップロードします)
MinGWに関しては、それに使用したことはありませんが、
DXライブラリ以外のプロジェクトで「MSYS2-MINGW64」ツール(http s://msys2.org)を使用しています。
「Cygwin」(http s://cygwin.com)は、いくつかの不便さがあるため、私にとっておすすめされるものではないかもしれません。
すみません、draさん(誰か、または私に答えてくれる方)、Linuxでコンパイルされて動作するプロジェクトはありますか?
言い訳のように聞こえるかもしれませんが、私はLinuxで動作するゲームやプロジェクトを見たことがありません。
それに関する証拠が見つかりません。
|
Re: 全てのDXライブラリのソースコードでUTF-8とBOMサポート ( No.12 ) |
- 名前:dra 日時:2023/05/25 22:26
> Linuxでコンパイルされて動作するプロジェクトはありますか?
dxlib-for-linuxプロジェクト自体がライブラリの作成と
実行可能なサンプルバイナリを生成する機能を持っています。
適当なLinux(Ubuntuとか)か、最近のWindowsならWSL上でもビルド・実行できます。
sudo apt install git g++ unzip make wget libtiff-dev libopenal-dev libvorbis-dev libopusfile-dev libtheora-dev libpng-dev libegl-dev libgles-dev
git clone github.com/dragoon2014/dxlib-for-linux
cd dxlib-for-linux
make patch
make -j4
samples以下にサンプルバイナリが生成されます。
動作イメージ
qiita.com/dragoon2014/items/7ab2b3695933b7430d53#%E3%81%8A%E3%81%BE%E3%81%912dxlib-for-linux-on-windows-subsystem-for-linux
dxlib-for-linuxを使用することを前提とした独立したプロジェクトは見たことないです。
|
Re: 全てのDXライブラリのソースコードでUTF-8とBOMサポート ( No.13 ) |
- 名前:LegendGuard 日時:2023/05/26 16:50
> dxlib-for-linuxを使用することを前提とした独立したプロジェクトは見たことないです。
ビルド手順と情報をありがとうございます、draさん。m(_ _)m
面白いですね。
ゲームプロジェクトの一つでテストしてみます。
サポートがうまく機能することを期待しています。
> DXライブラリを使用してテキストファイルを読み取るプログラムで作成されたサンプルプロジェクトを示す必要があります。
(すべてのソースコードはUTF-8でBOMとLFを使用しています)
表示するテキストファイルはUTF-8とLFを使用しています。
(BOMを使用すると、読み取りが異なり、先頭に四角形が表示されることがあります)
Visual Studioのソリューションでテストされました。
できるだけ早く、可能な方法でコードをアップロードします(おそらく、次の投稿でここにアップロードします)
以下に共有したい例があります。
これはVisual Studio Community 2022を使用して作成されたプロジェクトです。
このプロジェクトでは、ソースコードをUTF-8 BOMでコンパイルしています。
そして、コンパイルされたプログラムはUTF-8でエンコードされたテキストファイルを読み込みます(改行コードもLFとしてエンコードされています)
http s://github.com/LegendaryGuard/DXLibReadUTF8FileTest
また、GitHub上でリポジトリをコンパイルできるようにワークフローも作成し、正常に動作しています。
http s://github.com/LegendaryGuard/DXLibReadUTF8FileTest/blob/main/.github/workflows/build.yml
以下はGitHub Actionsの一部であり、Artifactsにはワークフローの一部としてコンパイルされたコンテンツがダウンロード可能です。
http s://github.com/LegendaryGuard/DXLibReadUTF8FileTest/actions/runs/5085825087
もし、誰かがGitHub Actionsからダウンロードしたコンパイル済みプログラムを彼らのシステムが不審と検知すると言われた場合、それは誤検知です。
なぜそうなるのかはわかりませんが、もし問題がある場合は、プロジェクトを使って好きなようにコンパイルしてみてください。
それが私が示したかったことです。
|