Skip to content

Methane Kit v0.7.0

Compare
Choose a tag to compare
@egorodet egorodet released this 07 Sep 13:35
· 598 commits to master since this release
618fdd2

iOS and tvOS platforms support was added in this release. Methane Shadow Cube iOS Metal

  • 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 and RenderContext::GetFontResolutionDpi methods to Platform::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 and DrawIndexed calls implementation for Metal was changed to exclude using of start_vertex and start_instance parameters for GPU Family < MTLGPUFamilyApple3 or MTLGPUFamilyMac2, 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 via CMake/MethaneApplication.cmake
    • Split CMake/MethaneGlobalOptions.cmake from CMake/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