Methane Kit v0.7.0
iOS and tvOS platforms support was added in this release. <img src=“https://github.com/MethanePowered/MethaneKit/blob/master/Apps/04-ShadowCube/Screenshots/ShadowCubeIOSMetal.jpg?raw=true” alt=“Methane Shadow Cube iOS Metal” align=“right” valign=“middle” width=“150”/>
Tutorials applications:
Customised default UI options to make HUD visible by default on iOS.
Added iOS screenshots for tutorials.
Added keyboards shortcuts for tutorials in README files.
Known issue: #101
Platform libraries:
Methane::Platform::AppIOS
implementation was added to support iOS and tvOS mobile platforms (closed #12).iOS Alert window implementation was added.
Limited input support was added for iOS to translate touches to mouse events (keyboard input is not supported).
Moved
RenderContext::GetContentScalingFactor
andRenderContext::GetFontResolutionDpi
methods toPlatform::IApp
interface with platform dependent implementations. Linux implementation for X11 was added.
Graphics libraries:
Manual memory management was removed from Objective-C Metal graphics implementation due to switching to ARC (automatic reference counting).
RenderCommandList::Draw
andDrawIndexed
calls implementation for Metal was changed to exclude using ofstart_vertex
andstart_instance
parameters for GPU Family <MTLGPUFamilyApple3
orMTLGPUFamilyMac2
, which is essential for working on iOS Simulators.Unsupported
Sampler
parameters were put under#ifdef APPLE_MACOS
to enable tvOS support.Fixed flipping camera projection up-side-down in portrait orientation.
Tests infrastructure:
- Add missing test targets to GCov coverage on Ubuntu.
Build infrastructure:
Added CI Build & Test system based on GitHub Actions, which is partially duplicating CI in Azure Pipelines, but enables CI in forked repositories.
- Fixed shaders code signing by DXC in GitHub agents environment by adding hardcoded path to DXIL.dll in DXC environment.
Added
Externals/iOS-Toolchain.cmake
file from iOS-CMake project to enable iOS & tvOS build configuration.Apple Clang is now used with ARC enabled (automatic reference counting) via
-fobjc-arc
option.Split MacOS and iOS application
.plist
configs generation viaCMake/MethaneApplication.cmake
Split
CMake/MethaneGlobalOptions.cmake
fromCMake/MethaneBuildOptions.cmake
to allow including it in the root CMakeLists of external projects to properly set global CMake options.Add support for Apple code signing via
APPLE_DEVELOPMENT_TEAM
cmake option.Extended
Build/Unix/Build.sh
script to support iOS / tvOS builds via new command-line arguments--apple-platform
,--apple-dev-team
and--apple-deploy-target
.Added iOS and tvOS configurations to
CMakePresets.json
.Added iOS and tvOS Simulator builds in Azure Pipelines.
Added CLion cmake configurations for iOS.
Added iOS and tvOS build instructions to
Build/README.md
.Fixed iOS app running natively on Mac with Apple Silicon, thanks to @andrejnau for solution of issue #101