iOS版 3DグラフィックスAPIをOpenGLからMetalに移行
フレームワークにMetalを追加してOpenGLを外す。
Targets/General/Frameworks, Libraries, and Embedded Content * Metal.framework 追加 * MetalKit.framework 追加 * OpenGLES.framework 削除
Deployment Targetを9.0から12.0に変更する。
PROJECT/ MIDITrail / Info / Deployment Target iOS Deployment Target: Default -> 12.0 TARGETS / MIDITrail / General Minimum Deployments: iOS 9.0 -> 12.0
手動による設定変更なし。
シェーダのデバッグ機能を利用するため設定を追加する。
Projects/Build Settings/Metal Compiler - Build Options Produce Debugging Information Debug : Yes, include source code Release : No
Xocdeがセーフエリアを考慮して勝手にレイアウトを破壊することを防ぐため、上下左右に配置していたガイド画像のView属性を変更する。
最背面に配置していた画像描画対象のVivewを削除する。MTKViewをコードで生成して制御するため。
設定画面でグループを識別しやすくするため、背景色を白から灰色に変更する。
ピアノキーボードの画面表示色をVer.1にできるだけ合わせようとしたが、影が黒くなりすぎる問題を解決できなかったため、 2個目のライトを追加して反対方向から照らすことにする。Piano Roll 3Dと同じ。
座標系が右手系から左手系に変わったため、視点パラメータZ,Phiのプラスマイナスが逆になった。 しかしVer.1で保存した視点と、Ver.2で保存した視点の互換性を維持するため、 Ver.2で視点を保存するときと、保存した視点を読み出すときに、パラメータZ,Phiのプラスマイナスを逆にする。
演奏時間経過に応じて、再生面とカメラをX軸方向に移動させる方式を取りやめ、 再生面とカメラは固定してノートボックスとグリッドボックスを移動させる方式に変更する。 演奏時間が長くなると、再生面とリップルのZファイティングが発生するようになったため。
---- [PianoKeyboard] 変更前 WhiteKeyColor=FFFFFFFF BlackKeyColor=FFFFFFFF 変更後 WhiteKeyColor=EEEEEEFF BlackKeyColor=EEEEEEFF
Appleは、2018年のmacOS 10.14 MojaveとiOS 12から、OpenGLを非推奨APIと宣言している。 MIDITrailは初回リリース時点からOpenGLを利用してきたが、iOS版の開発を継続するため、 OpenGLからMetalへの移行を実施する。
本修正を契機として、MIDITrailのメジャーバージョンをVer.1からVer.2に変更する。
MIDITrail Ver.1.3.6のサポート対象OSは、iOS 9以降である。 Metalが利用可能となったのは、Apple A7以降のiOSデバイスかつiOS 8以降である。 Apple A7を採用しているiOSデバイスはiPhone 5s、iPad Air第1世代、iPad mini第2世代、iPad mini 3である。 これらのiOSデバイスはiOS 12までサポートされていることから、MIDITrail Ver.2.0.0でのサポート対象OSはiOS 12以降に変更する。
以下のチケットをマージする。