myou-engine/libs/glfm/README.md
Alberto Torres cea7df6947 First commit.
* Incomplete port of myou-engine-js to nimskull, after many months of work, and
  a few extra features that weren't exactly necessary for a "first commit" to
  work. Excuse the lack of commit history up to this point.
* Bare bones structure of the documentation and the process to update it.
* Restructure of the whole project to have a more sensible organization.
* Making submodules of forks of larger libraries.
* README, licenses, AUTHORS.md.
2024-08-20 13:08:19 +02:00

73 lines
2.5 KiB
Markdown

# 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)