myou-engine/libs/glfm
Alberto Torres 9af1322937 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
..
src First commit. 2024-08-20 13:08:19 +02:00
glfm.nimble First commit. 2024-08-20 13:08:19 +02:00
nim.cfg First commit. 2024-08-20 13:08:19 +02:00
README.md First commit. 2024-08-20 13:08:19 +02:00

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 (OpenGL ES and input for iOS and Android) library for Nim.

GLFM very simple and is very simmilar to the GLFW wrapper for desktop apps. Together with GLFM + GLFW you can writes app for almost any platform.

example of what both apps look like

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

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