「MonoGame 3.8.0以降でfxファイルをコンパイルする」の版間の差分

ページの作成:「2020年5月に発表されたMonoGame 3.8.0 (プレビュー版)から Windowsだけでなく、MacOSLinuxでもプログラマブルシェーダ…」
 
編集の要約なし
 
(同じ利用者による、間の6版が非表示)
5行目: 5行目:


== Macでの環境構築 ==
== Macでの環境構築 ==
[[homebrew]]を使った手順。
=== xquartzをインストールする ===
[[xquartz]]を[[インストール]]する。
[[xquartz]]を[[インストール]]する。
* https://www.xquartz.org/index.html
<source lang="bash">
brew install --cask xquartz
</source>


=== wineをインストールする ===
[[wine]]を[[インストール]]する。
[[wine]]を[[インストール]]する。
この際に「64 bit support」のチェックを必ずいれること。
wineパッケージはstable(安定版),devel(開発版),staging(突撃版)の3種類ある。
内部的にはwine64コマンドしか使わないので[[macOS 10.15 Catalina]]でも大丈夫。
* wine-stable = macOS Mojave 10.14まで、wine64を含まない
* https://dl.winehq.org/wine-builds/macosx/download.html
* wine-devel, wine-staging  = macOS Catalina 10.15以降にも対応、wine64を含む
このうちMonoGame 3.8で必須となる「wine64」はwine-develとwine-stagingにしか含まれていない。今回は無難に「wine-devel」を選ぶ。
<source lang="bash">
brew tap homebrew/cask-versions
brew install --cask --no-quarantine wine-devel
</source>


[[7z]]を[[インストール]]する。
=== p7zipをインストールする ===
[[p7zip]]を[[インストール]]する。
mgfxcコンパイラは[[7z]]形式で配布されているためだ。
<source lang="bash">
  brew install p7zip
  brew install p7zip
</source>


mgfxcコンパイラをインストールするスクリプトを実行する。
=== mgfxcをインストールする ===
mgfxcコンパイラの[[ダウンロード]]と[[インストール]]を全自動でやってくれるスクリプトを実行する。mgfxcコンパイラなどは「$HOME/.winemonogame」ディレクトリに格納される。
<source lang="bash">
<source lang="bash">
curl -O https://raw.githubusercontent.com/MonoGame/MonoGame/develop/Tools/MonoGame.Effect.Compiler/mgfxc_wine_setup.sh
curl -O https://raw.githubusercontent.com/MonoGame/MonoGame/develop/Tools/MonoGame.Effect.Compiler/mgfxc_wine_setup.sh
23行目: 39行目:
</source>
</source>


mgfxcコンパイラなどは「$HOME/.winemonogame」ディレクトリに格納される。
=== 環境変数を設定する ===
 
上記のスクリプトで[[環境変数]]が追加される。
環境変数を追加する。
<source lang="bash">
<source lang="bash">
  #bashの場合
  #bashの場合
37行目: 52行目:
</source>
</source>


一通り終わったらMacOSからログアウトする。
ただし.profileや.zprofileはターミナルから[[Visual Studio for Mac]]を起動した場合のみ適用され、[[macOS]]のDockまたはLaunchPadから起動した場合は適用されない。ターミナルから起動する奇特な人はあまりいないと思われる。
 
そこで[[launchd]]を使ってログイン時に環境変数を設定する。LaunchAgentsディレクトリにplistファイルを置けばログイン時に自動実行される。拡張子がplistならファイル名は何でもいいので今回はenvironment.plistとした。
mkdir ~/Library/LaunchAgents/
vi ~/Library/LaunchAgents/environment.plist
 
中身はこんな感じ。
<source lang="xml>
<!DOCTYPE plist PUBLIC “-//Apple//DTD PLIST 1.0//EN” “https://www.apple.com/DTDs/PropertyList-1.0.dtd”>
<plist version=“1.0”>
    <dict>
        <key>Label</key>
        <string>my.startup</string>
 
        <key>ProgramArguments</key>
        <array>
            <string>bash</string>
            <string>-c</string>
            <string>
launchctl setenv MGFXC_WINE_PATH "$HOME/.winemonogame"
            </string>
        </array>
       
        <key>RunAtLoad</key>
        <true/>
    </dict>
</plist>
</source>
 
 
一通り終わったら[[macOS]]から[[ログアウト]]する。
再起動でもいいぞ。
再起動でもいいぞ。


== 関連項目 ==
== 関連項目 ==
* [[MonoGameでプログラマブルシェーダーを使う]]
* [[MonoGameでプログラマブルシェーダーを使う]]
; fxファイルのコンパイル
: fxファイルのコンパイル
* [[MonoGame 3.8.0以降でfxファイルをコンパイルする]]
* [[MonoGame 3.8.0以降でfxファイルをコンパイルする]]
* [[MonoGame 3.7.1以前でfxファイルをコンパイルする]]
* [[MonoGame 3.7.1以前でfxファイルをコンパイルする]]