# Notes from fork for myou-engine

This library has been heavily modified while trying to make it work with myou-engine based projects. The main changes are:

* Updated C library to latest GLFM.
* Replaced use of deprecated ALooper_pollAll().
* Added GLFW compatibile key codes.
* Changed touch handling to avoid stuck touches.
* Updated nim wrapper code.
* Added `no_sanitize` to functions which were tripping the sanitizer for some reason.
* Tried to change to support iOS (but in the end we're not using for iOS).

You're free to take any change from this GLFM fork without attributing us.

# GLFM

Wrapper of [GLFM](https://github.com/brackeen/glfm) (OpenGL ES and input for iOS and Android) library for Nim.

[GLFM](https://github.com/brackeen/glfm) very simple and is very simmilar to the [GLFW](https://github.com/glfw/glfw) wrapper for desktop apps.
Together with [GLFM](https://github.com/brackeen/glfm) + [GLFW](https://github.com/glfw/glfw) you can writes app for almost any platform.

![example of what both apps look like](examples/screenshot.png)

Compiling Nim for mobile platforms is not simple. It requires having XCode and Android Studio which have very many steps and settings they perform.

In this repo I have included two projects for XCode and Android Studio which you should be able to just open and hit compile.

# Compiling for iOS:

Tested with:
  * MacOS Majave Version 10.14.6
  * XCode Version 10.3 (10G8)
  * Nim Compiler Version 0.20.99 [MacOSX: amd64]

```cp examples```

Compile everything for iOS:

```nim c -c --os:android main.nim```

(Yes saying android when compilng for iOS is very odd but its as close to mobile as you get)

Now copy the generated C files into the iOS project folder

```cp ~/.cache/nim/main_d/* ios_triangle/example/src/; cp ios_triangle/example/src/main.nim.c ios_triangle/example/src/main.c```

Then you go to XCode and hit compile:

![android stuido](examples/xcode.png)

# Compiling for Android

Tested with:
  * MacOS Majave Version 10.14.6
  * XCode Version 10.3 (10G8)
  * Android Studio 3.4.2
  * Nim Compiler Version 0.20.99 [MacOSX: amd64]

Go to the examples folder

```cp examples```

Compile everything for android running arm processor:

```nim c -c --cpu:arm --os:android main.nim```

Now copy the generated C files into the Android project folder

```cp ~/.cache/nim/main_d/* android_triangle/app/src/main/cpp/; cp android_triangle/app/src/main/cpp/main.nim.c android_triangle/app/src/main/cpp/main.c```

Then you go to Android Studio and hit compile:

![android stuido](examples/androidstudio.png)